Teradata和亚马逊网络服务(AWS)

连接Teradata 有利的与AWS Glue

2021年11月7日 8分钟阅读

许多Teradata客户对集成Teradata 有利的亚马逊网络服务(AWS)的第一方服务很感兴趣. 本指南将帮助您连接Teradata 有利的到AWS Glue.

本指南中提供的过程已经由Teradata实现和测试. 然而,它是在现有基础上提供的. Amazon没有使用AWS Glue提供Teradata 有利的的验证.

十大电子游艺平台首选鼓励您的反馈. 十大电子游艺平台首选希望了解您认为有用的内容,以及十大电子游艺平台首选如何改进本指南. 请将您的反馈发送到 Shamira.Joshua@carlforcongress.com蕴结.Tehan@carlforcongress.com.

本指南包括来自Amazon和Teradata产品文档的内容.

概述

本指南描述了将数据从Teradata 有利的迁移到Amazon S3和从Amazon S3迁移到Teradata 有利的的过程.

关于AWS胶

AWS Glue是无服务器的, 并提供了一个完全托管的ETL (extract, 变换, load)服务,让客户可以很容易地准备和加载数据进行分析. AWS Glue由一个称为AWS Glue数据目录的中央元数据存储库组成, 自动生成Python或Sala代码的ETL引擎, 还有一个灵活的调度程序来处理依赖关系解析, 作业监视和重试. 十大电子游艺平台首选将在本文中研究ETL功能.

AWS Glue本身支持Amazon红移和Amazon RDS (Amazon Aurora, MariaDB, Microsoft SQL Server, MySEL, 甲骨文和PostgreSQL). Teradata 有利的不是AWS Glue原生支持的, 但是仍然可以使用定制的数据库连接器将数据导入Amazon S3. 下图显示了Teradata 有利的和Amazon S3之间的数据流.

Picture1.jpg

对Teradata有利

有利的是统一数据仓库的现代云平台, 数据的湖泊, 并分析成一个连接的生态系统.

优势结合描述性, 预测, 规范的分析, 自主决策, 毫升功能, 和可视化工具融为一体, 集成平台,揭示实时商业智能的规模, 无论数据驻留在哪里.

有利的使公司能够启动小型和弹性规模的计算或存储, 只为他们使用的东西付费, 利用低成本的对象存储并整合分析工作负载.

有利的支持R、Python、Teradata Studio和任何其他基于sql的工具. 您可以跨公共云部署有利的, 本地, 优化或商品基础设施, 或作为服务.

看到 文档 了解更多关于Teradata 有利的的信息.

先决条件

您应该熟悉AWS概念和Teradata 有利的.
 
您将需要以下账户和系统:
  • AWS帐户(您可以创建一个免费帐户)
  • 允许Glue访问Teradata 有利的的安全组
  • JDBC驱动程序的S3位置(i.e. tdjdbc)
  • S3位置存储粘合作业脚本(i.e. tdglue /脚本)
  • 临时目录的S3位置(i.e. tdglue / temp)
  • S3位置存储输入数据(i.e. tdglue /输入)
  • S3位置存储输出数据(i.e. tdglue /输出)
  • S3 VPC的endpoint(从VPC中访问S3). 看到 Amazon VPC Amazon S3的endpoint 的更多信息.
  • Teradata 有利的的高级SQL引擎17.0或更高

过程

这些是连接Teradata 有利的到AWS Glue的步骤.
  • 下载Teradata 有利的驱动程序
  • 设置权限
  • 作者胶水工作(从有利的到S3)
  • 作者的粘合工作(从S3到有利的)

下载Teradata 有利的 Driver

下载最新的Teradata JDBC驱动程序 在这里. 有了JDBC驱动程序文件后,解压缩jar文件并将其上传到AWS S3存储桶中(i.e. Tdjdbc)使用步骤 在这里.

设置权限

这一步创建AWS IAM角色,AWS Glue中的ETL作业将使用这个角色.
 

创建IAM角色

从AWS管理控制台,搜索IAM.
在IAM console的左侧导航区中选择“角色”.
选择“创建角色”. 受信任实体的角色类型为“AWS服务”.
点击“胶”.

Picture1 (27).png

选择“下一个:权限”.

搜索“AWSGlueServiceRole”策略,并选择它.

Picture1 (28).png

再次搜索“AmazonS3FullAccess”策略,并选择它.

Picture1 (29).png

搜索“SecretsManagerReadWrite”策略,并选择它.

Picture1 - (30).png
此策略是可选的. 只有在使用“机密管理器”时才需要此策略(参见下一节).

  • 选择“下一步:标签”,如果应用,添加标签的键值对.
选择“下一个:审查”.

给你的角色一个名字(i.e. GluePermissions),并确认您选择的所有策略都在那里.
选择“创建角色”.
 

设置秘密管理器(可选)

机密管理器可用于在安全存储库中存储凭据. 在这种情况下,可以使用Secrets Manager存储数据库信息. 这一步是可选的.

打开控制台,搜索“秘密管理器”.

在AWS秘密管理器控制台中,选择“存储一个新秘密”.

在“选择秘密类型”下,选择“其他类型的秘密”.

在“Secret key/value”中,设置如下参数各一行:
  • db_name
  • db_username
  • db_password
  • db_url (jdbc:Teradata:// i.e. jdbc: teradata: / / 172.31.10.10)
  • db_table
  • driver_name (com.teradata.jdbc.TeraDriver)
  • output_bucket:.e. s3: / / tdglue /输出)
选择“下一步”.

对于秘密名,使用“TD_有利的_Connection_Info”.

选择“下一步”.

保持“禁用自动旋转”复选框选中.

选择“下一步”.

选择“存储”.
 
 

作者胶水工作(有利的 to S3)

在这一步中,十大电子游艺平台首选将把数据从Teradata 有利的复制到Amazon S3桶中.
 

添加JDBC连接

登录到AWS管理控制台并打开AWS Glue控制台 http://console.aws.amazon.com/glue.

在导航窗格下 数据库,选择 连接.

选择 添加连接 然后完成向导.

输入 连接名 (i.e. tdConnection).

选择JDBC的连接类型. 单击下一个.

进入 JDBC URL 格式为 jdbc:协议:/ /主持人:端口/数据库名. For example: jdbc:teradata://<有利的 Instance Private IP>:1025/testDB.

进入 用户名密码 你的有利的数据库.

选择 VPC, 子网安全组 你的有利的实例,点击 下一个.

查看信息并单击 完成
 

创建工作

在AWS管理控制台中,搜索“AWS Glue”.
Picture1 (31).png
在左侧的导航窗格中,选择“ETL”下的“Jobs”.

选择“添加工作”.
Picture1 - (32).png
给工作起个名字.e. td2s3).

选择您在前面创建的IAM角色(i.e. GluePermissions).

对于“Type”和“Glue version”,使用“Spark”和最新的Spark和Python版本.

对于“此作业正在运行”,选择“您要编写的新脚本”.

对于“脚本存放的S3路径”和“临时目录”, 选择您在先决条件步骤(i.e. tdglue /脚本和tdglue / temp).
Picture1 (33).png

在“安全配置”中, 脚本库和作业参数”部分, 选择JDBC驱动程序的位置(terajdbc4.为“依赖jar”路径.
Picture1 - (34).png
选择“下一步”.

在连接页面上,单击前面创建的连接上的Select (i.e. tdConnection).

选择“保存作业并编辑脚本”. 这将创建作业并打开脚本编辑器.

Picture1 (35).png在编辑器中,用以下脚本替换现有的代码. 注意: region_name 在脚本中,应该替换为您使用秘密管理器创建秘密的区域.

屏幕-射- 2021 - 02 - 10 - 11 - 57 - 34点.png
屏幕-射- 2021 - 02 - 10 - 11 - 58 - 14点.png 
点击“保存”然后点击“运行作业”.

作业状态可以从Glue控制台监控. 一旦作业完成,“运行状态”将被标记为“成功”。.
Picture1 (36).png
输出文件将保存在您之前设置的S3输出桶中.
Picture1 - (37).png

作者胶水工作(S3到有利的)

在这个步骤中,十大电子游艺平台首选将把数据从Amazon S3桶复制到Teradata 有利的.
 

准备数据

在这一步中,十大电子游艺平台首选将使用Crawler创建一个Glue表.
将数据文件上传到S3存储桶中.e. tdglue /输入).
 
在AWS管理控制台中,搜索“AWS Glue”.

Picture1 - (38).png
在左侧的导航窗格中,选择“数据库”.

点击“添加数据库”,给它一个名字,然后点击“创建”.

点击左侧导航面板中“数据库”下的“表”.

点击“添加表”旁边的向下箭头,然后选择“使用爬虫添加表”。.

Picture1 (39).png在“添加你的爬虫信息”窗口,给爬虫一个名字,然后点击“下一步”.

在“指定爬虫源类型”窗口,选择“数据存储”,然后单击“下一步”.

在“添加数据存储”窗口, “选择数据存储”使用“S3”, 然后输入数据文件所在的路径, 然后点击“下一步”.
Picture1 - (40).png
对于“添加另一个数据存储”选择“No”,然后选择“下一个”.

在“选择IAM角色”窗口, 选择“选择一个已有的IAM角色”, 使用在“创建IAM角色”步骤中创建的角色.e. GluePermissions),点击“下一步”.
Picture1 (41).png

使用“按需运行”作为 频率 在“为这个爬虫程序创建一个时间表”窗口中,单击“下一步”。.

在“配置爬虫的输出”窗口, 选择您之前创建的数据库,然后单击“下一个”.

Picture1 (42).png
在下一个窗口,查看信息,然后点击“完成”.

在“爬虫”窗口, click on “现在运行它” to the question “Crawler was created to run on dem和. 现在运行它?”.

如果没有看到问题,选择刚才创建的爬虫程序,然后单击“运行爬虫程序”.

Picture1 - (43).png

一旦爬虫完成,爬虫的状态变为“Ready”,并将创建一个表. 可以通过在前面创建的“数据库”下的左面板中选择“Tables”来查看. 

添加一个工作

如果您正在使用机密管理器, 回到秘密管理器控制台, 点击“TD_Vanatage_Connection_info”, 选择“secret value”下的“Retrieve secret value”, 然后点击“编辑”. 再添加两个键:s3_database和s3_table. 这两个键包含使用爬行器创建的数据库和表名.

如果您不使用机密管理器,请跳过此步骤.

在左侧的导航窗格中,选择“ETL”下的“Jobs”.

选择“添加工作”.
Picture1 (44).png

给工作起个名字.e. s32td).

选择您在前面创建的IAM角色(i.e. GluePermissions).

对于“Type”和“Glue version”,使用“Spark”和最新的Spark和Python版本.

对于“此作业正在运行”,选择“您要编写的新脚本”.

对于“脚本存放的S3路径”和“临时目录”, 选择您在“先决条件”步骤(i.e. tdglue /脚本和tdglue / temp).

Picture1 - (45).png展开“Security configuration”, 脚本库和作业参数”部分, 选择JDBC驱动程序的位置(terajdbc4.为“依赖jar”路径.
Picture1 - (46).png

注:为了更好的性能,改变 工作类型 G.1X(用于内存密集型作业),或G.2X(对于ML变换),并增加 工人数量.

选择下一个.

在“连接”页面,单击 Select 在您前面创建的连接上(i.e. tdConnction). 选择“保存作业并编辑脚本”. 这将创建作业并打开脚本编辑器.
Picture1 (47).png

在编辑器中,用以下脚本替换现有的代码. 注意: region_name 在脚本中,应该替换为您使用秘密管理器创建秘密的区域.
屏幕-射- 2021 - 11 - 08 - 10 - 36 - 38点.png屏幕-射- 2021 - 11 - 08 - - 10 - 35 - 27点.png
点击“保存”然后点击“运行作业”.

注:connection_options”batchSize”和“类型“是可选的. 在这个例子中"类型的定义为FASTLOAD”. 这意味着使用JDBC FastLoad来提高性能. FASTLOAD只能在加载到空表时使用. 

作业状态可以从Glue控制台监控. 一旦作业完成,“运行状态”将被标记为“成功”。.

Picture1 (48).png
 

主题:

关于凯文Bogusch

凯文Bogusch是十大电子游艺网站云产品营销经理. Kevin在IT行业工作了25年,从编程到系统和数据库管理, 从教学到销售和解决方案架构. 他拥有计算机工程学士学位, 计算机信息系统硕士学位, 以及运营管理的MBA学位. 他是认证Teradata 有利的 Master和认证AWS专业解决方案架构师.
 
 

通过以下方式查看所有帖子 凯文Bogusch

关于蕴结 Tehan

文杰,技术咨询经理,目前就职于Teradata全球联盟团队. 
 
在IT行业工作超过20年, 文杰担任开发人员, 测试人员, 业务分析师, 解决方案设计师和项目经理. 这种角色的广度使她非常适合目前的角色, 了解业务如何需要数据,以及如何管理这些数据以满足这些业务需求.  
 
文杰毕业于加州大学圣地亚哥分校,获得计算机科学学士学位, 康奈尔大学计算机工程硕士. 文杰还获得了Teradata和AWS的认证. 通过以下方式查看所有帖子 蕴结 Tehan

保持了解

订阅十大电子游艺网站博客,以获得每周的见解



我同意Teradata公司, 作为本网站的供应商, 可能会偶尔向我发送关于产品的Teradata营销通信邮件, 数据分析, 还有活动和网络会议邀请. 我明白,我可以在任何时候通过跟踪我收到的任何电子邮件底部的取消订阅链接来取消订阅.

你的隐私很重要. 您的个人信息将根据本条例收集、存储和处理 Teradata全球隐私政策.

详见Teradata