使用 AWS Glue 中的内置 Teradata Vantage 连接器将 Amazon S3 数据加载到 Teradata
主要要点
在这篇文章中,我们将探讨如何使用 AWS Glue 的内置 Teradata Vantage 连接器来简化数据集成,释放数据的全部潜能。使用 AWS Glue,企业能够无缝整合来自各种数据源的数据,充分发挥 Teradata 的分析能力,专注于从数据中提取有意义的见解,而不是处理数据集成的细节。
在这篇文章中,我们将学习以下内容: 如何设置和配置 Amazon S3 来存储数据。 如何使用 AWS Glue 创建 ETL 流程,将数据载入 Teradata。 将 AWS Glue 与 Teradata 进行连接的步骤。
引言
企业通常依赖 Amazon Simple Storage ServiceAmazon S3以经济安全的方式存储来自各种数据源的大量数据。对于进行数据分析的用户,通过 AWS Glue 的内置 Teradata Vantage 连接器进行集成,将开启新的可能性。AWS Glue 增强了数据管理的灵活性和高效性,使公司能够无缝集成地理位置不同的数据,并充分利用 Teradata 的分析能力。这个新连接器消除了与配置、安全和管理相关的技术障碍,使企业能够轻松地将数据集导出或导入到 Teradata Vantage。因此,企业可以更多地专注于从数据中提取有意义的见解,而不是处理数据集成的复杂性。
AWS Glue 是一个无伺服器的数据集成服务,使分析用户能够轻松发现、准备、转移和整合来自多个来源的数据,以进行分析、机器学习ML和应用开发。使用 AWS Glue,您可以发现并连接超过 100 个不同的数据源,并在集中式数据目录中管理数据。您可以直观地创建、运行和监控提取、转换和加载ETL管道,将数据加载到数据湖中。
Teradata 是一家领先的多云数据平台,专注于帮助企业全方位利用其数据。作为 AWS 数据与分析能力合作伙伴,Teradata 提供全面的云分析和数据平台,包括机器学习解决方案。
AWS Glue 的 Teradata Vantage 连接器介绍
AWS Glue 提供对 Teradata 的支持,通过 AWS Glue Studio 和 AWS Glue ETL 脚本均可访问。有了 AWS Glue Studio,您可以利用可视化界面简化与 Teradata 的连接过程,并编写、运行和监控 AWS Glue ETL 作业。对于数据开发者,这项支持扩展到 AWS Glue ETL 脚本,您可以使用 Python 或 Scala 创建和管理更具体的数据集成和转换任务。
AWS Glue 的 Teradata Vantage 内置连接器使您能够高效地读取和写入 Teradata 数据,而无需安装或管理任何连接器库。您可以在 AWS Glue Studio 的无代码拖放可视化界面中将 Teradata 作为来源和目标,或直接在 AWS Glue ETL 脚本作业中使用该连接器。

解决方案概述
在这个示例中,您将使用 AWS Glue Studio 丰富并上传存储在 Amazon S3 的数据到 Teradata Vantage。首先,您将从 TICKIT 数据集中连接 Event 和 Venue 文件。接下来,您将结果过滤到特定地理区域。最后,您将上传精炼的数据到 Teradata Vantage。
TICKIT 数据集记录了虚构的 TICKIT 网站的销售活动,该网站允许用户在线购买和销售体育比赛、表演和音乐会的门票。在此数据集中,分析师可以识别门票随时间的流动情况、销售者的成功率以及最畅销的事件、场地和季节。
对于这个示例,您将使用 AWS Glue Studio 开发可视化 ETL 管道。该管道将从 Amazon S3 读取数据,进行转换,然后将转换后的数据加载到 Teradata。以下图示显示了这种架构。
在文章结尾,您的可视化 ETL 作业将类似于以下截图。
先决条件
在这个示例中,您应该有权访问一个现有的 Teradata 数据库端点,并且从 AWS 可以达到的方法、权限需要创建表格以及加载和查询数据。
AWS Glue 需要对 Teradata 进行网络访问,以读取或写入数据。如何进行配置取决于您的 Teradata 部署位置和具体网络配置。对于在 AWS 上部署的 Teradata,您可能需要配置 VPC 互连 或 AWS PrivateLink,安全组和网络访问控制列表NACL,以允许 AWS Glue 通过 TCP 与 Teradata 通信。如果 Teradata 位于 AWS 之外,则可能需要使用 AWS SitetoSite VPN 或 AWS Direct Connect。出于安全原因,不建议使用公共互联网访问。如果选择公共访问,则在 VPC 中运行 AWS Glue 作业并使用 NAT 网关 更为安全。这种方法使您可以在网络防火墙上仅允许一个IP地址的传入流量。更多信息,请参见 AWS Glue 的基础设施安全性。
设置 Amazon S3
每个 Amazon S3 中的对象都存储在一个桶中。在您可以将数据存储到 Amazon S3 之前,必须 创建一个 S3 桶 来存储结果。完成以下步骤:
在 Amazon S3 控制台上,选择导航窗格中的 Buckets。点击 Create bucket。在 Name 中,输入一个全球唯一名称,例如:tickit8530923。点击 Create bucket。下载 TICKIT 数据集并解压缩。在您的 S3 桶中创建文件夹 tickit,并上传 alleventspipetxt 和 venuepipetxt 文件。配置 Teradata 连接
要从 AWS Glue 连接到 Teradata,请参考 配置 Teradata 连接。
您必须在 AWS Secrets Manager 中创建并存储 Teradata 凭证,然后将该秘密与 Teradata AWS Glue 连接关联。我们在后面的文章中详细讨论这两个步骤。
飞驰加速器官网为 AWS Glue ETL 作业创建 IAM 角色
创建 AWS Glue ETL 作业时,您必须指定 AWS 身份和访问管理IAM角色供该作业使用。该角色必须授予对作业使用的所有资源的访问权限,包括 Amazon S3针对任何源、目标、脚本、驱动程序文件和临时目录和 Secrets Manager。请参见 为您的 ETL 作业配置 IAM 角色 以获取说明。
在 Teradata 中创建表
使用您首选的数据库工具登录到 Teradata。运行以下代码以创建将加载数据的 Teradata 表:
sqlCREATE MULTISET TABLE testtickit FALLBACK (venueid varchar(25) venuename varchar(100) venuecity varchar(100) venuestate varchar(25) venueseats varchar(25) eventid varchar(25) catid varchar(25) dateid varchar(25) eventname varchar(100) starttime varchar(100)) NO PRIMARY INDEX
存储 Teradata 登录凭证
AWS Glue 连接 是一种数据目录物件,用于存储登录凭证、URI 字串等。Teradata 连接器需要使用 Secrets Manager 存储您用于连接到 Teradata 的用户名和密码。
要在 Secrets Manager 中存储 Teradata 用户名和密码,请完成以下步骤:
在 Secrets Manager 控制台,选择导航窗格中的 Secrets。选择 Store a new secret。选择 Other type of secret。输入键/值 USER 和 teradatauser,然后选择 Add row。输入键/值 PASSWORD 和 teradatauserpassword,然后选择 Next。在 Secret name 中,输入一个描述性的名称,然后选择 Next。点击 Next 进入审核步骤,然后点击 Store。在 AWS Glue 中创建 Teradata 连接
现在,您准备好在 AWS Glue 中创建与 Teradata 的连接。请完成以下步骤:
在 AWS Glue 控制台,选择导航窗格中的 Connections 下的 Data Catalog。选择 Create connection。在 Name 中,输入一个名称例如,teradataconnection。对于 Connection type,选择 Teradata。在 Teradata URL 中,输入 jdbcteradata//urlofteradata/database=nameofyourdatabase。对于 AWS Secret,选择您之前创建的包含 Teradata 凭证的秘密。创建 AWS Glue 可视化 ETL 作业以转换并加载数据到 Teradata
完成以下步骤来创建您的 AWS Glue ETL 作业:
在 AWS Glue 控制台的导航窗格中,选择 ETL Jobs 下的 Visual ETL。选择 Visual ETL。选择铅笔图标为您的作业输入名称。接下来,我们将 venuepipetxt 作为第一个数据集添加。
选择 Add nodes,然后在 Sources 标签中选择 Amazon S3。输入以下数据源属性:在 Name 中,输入 Venue。对于 S3 source type,选择 S3 location。在 S3 URL 中,输入 venuepipetxt 的 S3 路径。在 Data format 中,选择 CSV。在 Delimiter 中,选择 Pipe。取消选中 First line of source file contains column headers。现在我们将 alleventspipetxt 添加为第二个数据集。
选择 Add nodes,然后在 Sources 标签中选择 Amazon S3。输入以下数据源属性:在 Name 中,输入 Event。对于 S3 source type,选择 S3 location。在 S3 URL 中,输入 alleventspipetxt 的 S3 路径。在 Data format 中,选择 CSV。在 Delimiter 中,选择 Pipe。取消选中 First line of source file contains column headers。接下来,我们将 Venue 数据集的列重命名。
选择 Add nodes,然后在 Transforms 标签中选择 Change Schema。输入以下转换属性:在 Name 中,输入 Rename Venue data。对于 Node parents,选择 Venue。在 Change Schema 部分,将源键映射到目标键:col0 venueidcol1 venuenamecol2 venuecitycol3 venuestatecol4 venueseats[![重命名 Venue 数据 ETL
发表评论