内容


使用 InfoSphere Information Server 集成 Teradata 数据

Comments

简介

IBM InfoSphere Information Server 是一个统一、综合的信息集成平台。它可以剖析、清理和转换来自全异数据源的数据,以交付一致准确的业务数据。IBM Information Server 是集成和同步 Teradata 数据与其他 ERP 系统及企业应用程序的理想解决方案。

本文将演示和比较 IBM InfoSphere Information Server 提供的若干种处理 Teradata 数据的集成方法。它将通过一些示例来演示业务集成场景。这些示例将指导您解决 Teradata 数据库中的典型数据集成问题。

产品前提条件及概述

如图 1 所示,可以认为 IBM InfoSphere Information 有四个逻辑层:

  • 客户机
  • 引擎
  • 元数据存储库
  • 服务
图 1. IBM InfoSphere Information Server 逻辑层
InfoSphere Information Server 的四个逻辑层概述。
InfoSphere Information Server 的四个逻辑层概述。

每个逻辑层都定义了一组软件模块,它们可以映射到硬件的物理部分。这些逻辑层可以单独安装在不同的计算机上,或者一起安装在相同的计算机上。Information Server 支持将引擎层部署在对称多处理 (SMP) 计算平台,或者部署在大规模并行处理 (MPP) 计算平台上,以实现高伸缩性和高性能。

InfoSphere Information Server 要求以下组件支持与 Teradata 数据库之间的数据集成:

  • DataStage Connectivity for Teradata — 此组件包括 Teradata Connector 和所有其他的 Teradata 早期工作台。作为一个单独的解决方案,Teradata 连接器旨在替代所有的早期工作台。Teradata 连接器安装在引擎层上。但是,Teradata 早期工作台包括客户机层的客户机安装和引擎层的服务器安装。
  • Teradata Tools and Utilities (TTU) — 此组件包括许多与 Teradata 数据库协作的产品。TTU 是引擎层上所必需的,并且如果在 ETL 作业中使用了 Teradta 早期工作台,那么还必须安装在客户机层上。TTU 依赖于以下包:
    • Teradata Generic Security Services (TeraGSS) 客户机包
    • Teradata Shared Component for Internationalization (tdicu)
    • Teradata Call-Level Interface (CLIv2)
    • Teradata Named Pipes Access Module
    • Teradata FastExport Utility
    • Teradata FastLoad Utility
    • Teradata MultiLoad Utility
    • Teradata TPump Utility
    • Teradata Parallel Transporter Interface

Teradata Connector 利用了一些全新的 Teradata 特性。它可以在立即访问模式下运行,也可以在批量模式下运行:

  • 立即访问模式 — 在此模式中,连接器将数据库 SQL 语句发送给 Teradata DBC/SQL 分区并立即从 Teradata 获得实时响应。Tradata DBC/SQL 分区负责处理 SQL 请求。立即模式和 DBC/SQL 分区适合支持低容量数据处理。
  • 批量模式 — 此模式适合大批量数据处理。在批量模式中,连接器将利用 Teradata 并行传输接口以及在 SMP 和 MPP 中定义的多个计算节点来执行并行数据加载和数据导出操作。Teradata 并行传输接口是一个支持并行的编程接口,可以使用多个计算平台上的多个进程运行批量操作。Teradata 连接器支持 Teradata 并行传输接口中指定的四个驱动程序:
    • 加载驱动程序 — 使用 FastLoad 协议对空表执行并行加载。
    • 更新驱动程序 — 使用 Multiload 协议并支持对新表或已有表执行并行插入/更新/删除/更新插入操作。
    • 流驱动程序 — 使用 TPump 协议对表执行并行实时 DML 操作。流驱动程序将使用低级锁。它允许应用程序在后台对表执行恒定数据加载操作,同时可以执行交互式读取和写入操作。
    • 导出驱动程序 — 使用 FastExport 协议执行并行数据导入。

Teradata Connector 在 IBM InfoSphere Information Server Version 8.0.1 及更高版本上可用。它的作用是替代所有 Teradata 早期工作台。

Teradata 早期工作台包括:

  • Teradata Enterprise 工作台 — 使用多个 FastLoad 和 FastExport 会话的并行批量数据加载和导出解决方案。
  • Teradata Multiload 工作台 — 使用 Teradata MultiLoad、TPump 和 FastExport 实用工具的批量数据加载和导出解决方案。
  • Teradata API 工作台 — 基于 SQL 语句对 Teradata 数据库提供行到行的读取和写入权限。
  • Teradata Load 工作台 — 提供了一个使用 Teradata FastLoad 实用工具的批量数据加载解决方案。

Teradata 早期工作台在 Information Server Version 及更新版本中可用。

本文并不会详细讨论存储过程 (STP) 和 Open Database Connectivity (ODBC) 工作台。IBM InfoSphere Information Server 使用以下工作台提供对多种数据库类型的支持:

  • STP 工作台允许从 DataStage 作业调用 DB2、Oracle、Teradata、Sybase 和 SQL 服务器中的存储过程。它支持带输入和/或输出参数的存储过程。STP 工作台是用于调用 Teradata 宏、存储过程、纯量函数和表函数的建议解决方案。
  • ODBC 工作台允许使用 ODBC 驱动程序访问各种数据库系统,包括 Teradata。

表 1 显示了根据用例进行选择的建议选项。稀疏和普通查找的概念请阅读 查找 Teradata 数据小节。

表 1. Teradata 集成选项
用例建议解决方案早期选项限制
低容量 Teradata 数据读取 Teradata Connector:立即模式、SQL Teradata API 工作台
低容量
数据插入/更新/更新插入/删除
Teradata Connector:
立即模式、SQL
批量模式、流驱动程序
Teradata API 工作台

Teradata Multiload 工作台
实时数据插入/更新/更新插入/删除 Teradata Connector、
立即模式、SQL
批量模式、流驱动程序
Teradata API 工作台

Teradata Multiload 工作台
针对空表的批量数据加载 Teradata Connector:
批量模式、加载驱动程序
Teradata Enterprise 工作台

Teradata Load 工作台
目标表:

没有二级索引
没有参考完整性
没有触发器
没有多集
批量加载/更新已有表

针对没有唯一二级索引的空表的批量数据加载
Teradata Connector
批量模式、更改驱动程序

Teradata Multiload 工作台 目标表:

没有唯一的二级索引
没有参考完整性
没有触发器
批量数据导出 Teradata Connector
批量模式、导出驱动程序
Teradata Enterprise 工作台

Teradata Multiload 工作台
普通查找 Teradata Connector
批量模式、导出驱动程序
立即模式、SQL
Teradata Enterprise 工作台

Teradata Multiload 工作台

Teradata API 工作台
稀疏查找 Teradata Connector
立即模式、SQL
Teradata API 工作台
多个输入链接和事务支持 Teradata Connector
立即模式
调用 Teradata 存储过程、宏、纯量函数和表函数 Stored Procedure 工作台 (STP)

使用 Teradata Connector 加载数据

本文将使用一个示例 ETL 作业来演示通过 Teradata 连接器将数据加载到空 Teradata 表中的步骤。图 2 展示了示例作业。作业将从一个平面文件中读取订单。它转换源数据并将其传递给 Teradata 连接器 LoadDataUsingBulkLoad。连接器使用 Teradata 并行传输加载驱动程序将数据加载到一个空的 Orders 表中。违反数据库约束的数据记录将被连接器拒绝并被转发到一个平面文件中。

图 2. 将数据加载到 Teradata Orders 表中
上述文本描述的加载数据作业的范例图。
上述文本描述的加载数据作业的范例图。

图 3 显示了示例源数据。

图 3. 示例源数据(5,000 行)
 Orders 表的示例源数据的 5,000 行中的前 24 条记录
Orders 表的示例源数据的 5,000 行中的前 24 条记录

(查看图 3 的 大图版本。)

清单 1 显示了用于创建 Teradata 数据库 Orders 表的 SQL。

清单 1. 用于创建 Orders 表的 SQL
CREATE SET TABLE Orders ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT
     (
      OrderID INTEGER NOT NULL,
      CustomerID VARCHAR(5) CHARACTER SET LATIN CASESPECIFIC,
      EmployeeID INTEGER,
      OrderDate TIMESTAMP(0),
      RequiredDate TIMESTAMP(0),
      ShippedDate TIMESTAMP(0),
      ShipVia INTEGER,
      ShipAddress VARCHAR(60) CHARACTER SET LATIN CASESPECIFIC,
      ShipCity VARCHAR(15) CHARACTER SET LATIN CASESPECIFIC,
      ShipRegion VARCHAR(15) CHARACTER SET LATIN CASESPECIFIC,
      ShipPostalCode VARCHAR(10) CHARACTER SET LATIN CASESPECIFIC,
      ShipCountry VARCHAR(15) CHARACTER SET LATIN CASESPECIFIC)
UNIQUE PRIMARY INDEX ( OrderID );

为批量数据加载操作设置 LoadDataUsingBulkLoad Teradata 连接器需要两个主要步骤:

  1. 启动连接器导入向导,如图所示,并导入 Orders 表的定义。
    图 4. 启动 Connector Import Wizard
    从 DataStage Designer 打开 Connector Import Wizard 的选择路径。
    从 DataStage Designer 打开 Connector Import Wizard 的选择路径。
  2. 打开连接器的 Properties 选项卡,如图 5 所示,并设置 Teradata 数据操作。
    图 5. Teradata Connector 属性编辑器
    Teradata Connector 的 Properties 选项卡
    Teradata Connector 的 Properties 选项卡

导入 Teradata 表定义

本节中的屏幕快照将演示导入 Orders 数据库表定义的步骤。

  1. 如图 6 所示,选择 Teradata Connector 导入 Teradata 表模式。Teradata connector variant 8.1 支持 Teradata TTU 8.1 和 8.2。variant 12 支持 Teradata TTU 12 和 13。本示例将使用 TTU 8.2。如图 5 和图 6 所示,这些示例作业将选择 Teradata connector variant 8.1。
    图 6. 选择 Teradata 连接器进行 Metadata 导入
    使用所选 Teradata Connector 进行 Connector 元数据导入。
    使用所选 Teradata Connector 进行 Connector 元数据导入。
  2. 如图 7 所示,指定 Teradata Director Program ID (TDPID)、用户名和密码,以便导入向导可以连接到 Teradata 数据库。Teradata 客户机应用程序将使用 TDPID 别名连接到 Teradata 数据库。TDPID 参数定义在机器主机文件中(在 UNIX® 中为 /etc/hosts,在 Windows® 中为 \windows\system32\drivers\etc\hosts)。
    图 7. 输入连接详细信息
    输入了连接详细信息的 Connector 元数据导入向导。
    输入了连接详细信息的 Connector 元数据导入向导。
  3. 如图 8 所示,指定从何处导入表。此信息主要供 DataStage 用于跟踪表定义的原始源。
    图 8. 输入位置详细信息
    输入了位置详细信息的 Connector 元数据导入向导。
    输入了位置详细信息的 Connector 元数据导入向导。
  4. 如图 9 所示,提供筛选器缩小表搜索结果范围。
    图 9. 按数据库和表名筛选表列表
    Connector 元数据导入向导的筛选器屏幕,其中输入了值,它将筛选名称包含 'Orders' 的条目。
    Connector 元数据导入向导的筛选器屏幕,其中输入了值,它将筛选名称包含 'Orders' 的条目。
  5. 如图 10 所示,与图 9 中设定的筛选条件匹配的所有表都将返回。选择要进行导入操作的 Orders 表。
    图 10. 选择一个 Teradata 表
    Connector 元数据导入向导的选择屏幕,从筛选的项目中选择了 'Orders'。
    Connector 元数据导入向导的选择屏幕,从筛选的项目中选择了 'Orders'。
  6. 图 11 显示了导入操作的确认屏幕。单击 Import 按钮开始导入操作。在本例中,根据 Orders 表的数据库表模式在 DataStage 存储库中创建一个名称为 test.Orders 的 DataStage 表定义。
    图 11. 确认导入操作
    Connector 元数据导入向导的确认屏幕是开始导入流程之前的最后一个屏幕。
    Connector 元数据导入向导的确认屏幕是开始导入流程之前的最后一个屏幕。

在 Property Editor 上设置批量加载操作

本节中的屏幕快照将演示使用 Teradata Parallel Transport 加载驱动程序定义批量加载操作的步骤。

  1. 如图 12 所示,打开连接器的 Columns 选项卡,选择 OrderID 列作为键并单击 Load 按钮将 test.Orders 表定义从 DataStage 存储库加载到 LoadDataUsingBulkLoad 连接器。
    图 12. 加载 Columns 定义
    选择 OrderID 作为键的 Teradata Connector 的 Columns 选项卡。
    选择 OrderID 作为键的 Teradata Connector 的 Columns 选项卡。
  2. 如图 13 所示,返回连接器的 Properties 选项卡并为 Terdata 加载操作指定以下参数:
    • 连接详细信息:Teradata Program Director ID (TPDID)、用户名、密码和数据库。
    • 用于与 Teradata 服务器通信的 Teradata 客户机字符集。
    • 目标数据库表名、自动生成 SQL 和表操作。连接器将根据 Orders 的目标表名以及图 12 中所选择的列定义创建插入 SQL 语句。在数据加载操作开始之前,选择 Truncate 表操作删除 Orders 表中的所有已有行。
    • 批量访问方法和驱动程序。选择加载驱动程序将数据加载到空 Orders 表中。
    • 睡眠和韧度设置。 Teradata 数据库将限制可并发运行的 FastLoad、MultiLoad 和 FastExport 任务的数量。这将由 MaxLoadTasks 和 MaxLoadAWT DBS 控件字段控制。通常,其限制是从 5 到 15。睡眠和韧度设置将影响超过限制时连接器重新尝试连接到数据库的方式。睡眠值将指定重试之间的时间间隔(分钟)。韧度值将指定登录重试的超时时间(小时)。
    图 13. 输入连接详细信息并设置批量加载操作
    Teradata Connector 的 Properties 选项卡中已设置了上述条目。
    Teradata Connector 的 Properties 选项卡中已设置了上述条目。
  3. 如图 14 所示,在连接器的 Properties 中继续为 Teradata 加载操作定义参数值:
    • Record Count 用于设置检查点。连接器支持 Teradata 并行传输中的检查点和重启特性。检查点定义数据库在加载流程中成功处理指定数量的记录时的时间点。如果在检查点后出现了任何错误,则可以从检查点后的行重新启动加载流程。本示例每隔 1,000 行设定一个检查点。
    • Sync 表和操作。 连接器支持使用在多个计算节点中运行的多个进程来执行数据加载操作。连接器依赖于 Teradata 并行传输接口,它要求在加载流程的各点同步多个进程。本例指定连接器将创建并使用 jli_sync_table 表进行进程同步。
    • 最多会话和最多分区会话。 这两个参数指定用于数据加载操作的最大会话数量,以及各加载进程所使用的最大会话数量。本例运行于两个计算节点之上,并且目标 Teradata 数据库有两个 AMP。图 14 中的值指定两个进程使用两个会话将数据加载到数据库表中。
    • 数组大小。 此参数指定在将数据发送给加载驱动程序之前应该缓存多少行。加载驱动程序将使用连接器中的数据并构建 64k 缓冲以便发送给 Teradata 数据库。
    图 14. 重新启动、并行加载和同步等
    Teradata Connector 的 Properties 选项卡中已设置了上述条目。
    Teradata Connector 的 Properties 选项卡中已设置了上述条目。
  4. 打开 Rejects 选项卡,指定如何处理错误情况。如图 15 所示,指定以下项目:
    • 选择 Duplicate keySQL errors,将导致这些错误的记录发送给拒绝链接。
    • 选择 ERRORCODEERRORTEXT 将这些列添加到各个被拒绝的数据记录,表明记录被拒绝的原因。其他选择不适用于加载驱动程序。

    本例中未使用的一种特殊的筛选条件是 Success 条件。Success 筛选器的作用是将成功处理的记录转发给下一个工作台进行处理。

    图 15. 设置拒绝链接
    Teradata Connector 的 Reject 选项卡中设置了上述条目。
    Teradata Connector 的 Reject 选项卡中设置了上述条目。
  5. 如图 16 所示,两个示例记录中的批量加载操作结果被发送给拒绝链接,因为它们违反唯一的主键约束。
    图 16. 被拒绝的记录
    示例数据中的两个主键相同的记录
    示例数据中的两个主键相同的记录

    (查看图 16 的 大图版本。)

使用 Teradata Connector 提取数据

本节将使用一个示例 ETL 作业来演示从名称为 Orders 的 Teradata 表中提取数据的步骤。图 17 展示了示例作业,它使用立即访问模式。作业使用名为 ExtractOrders 的 Teradata 连接器从 Orders 数据库读取订单。作业将转换提取的数据并将其传送到名为 SaveExtractedData 的序列文件工作台。

ExtractOrders 连接器将使用相同的表定义,如 图 12 所示, 以及相同的连接详细信息,如 图 13 所示。

图 17. 从 Teradata Orders 表提取数据
上面描述的提取数据作业。
上面描述的提取数据作业。

如图 18 所示,为数据提取操作指定以下参数:

  • 通过 Teradata DBC/SQL 分区运行 SQL 的立即访问方法。此作业只能在 DataStage 指导者节点上以序列模式运行,并且它适合于小量数据提取。要支持并行提取大容量数据,需要配置指导者使用批量访问方法和 Teradata Parallel Transporter 导出驱动程序。
  • 选择语句。 指导者可以使用如 图 13 所示的表名和列定义生成 SQL。在本例中,SQL 语句将手动输入。
  • 记录计数。 记录计数通常与 End of Wave 特性结合使用。您可以使用 End of Wave 特性将输入/输出记录划分为许多小事务,或者工作单元。本例未使用 End of Wave 特性,并且记录计数不会影响数据提取操作。
  • 数组大小。 数组大小主要用于为连接器缓存输入记录,以便于立即和批量加载操作。它不会对此数据提取操作造成影响。连接器将 Teradata 数据库与连接之间通信的最大包大小设置为 64k 或者 1MB(如果 Teradata 数据库服务器通过四字节替代包报头 (APH) 支持 1MB 大小的包)。
图 18. 设置数据提取操作
Teradata 数据提取的 Properties 选项卡中已设置了上述条目。
Teradata 数据提取的 Properties 选项卡中已设置了上述条目。

查找 Teradata 数据

本节将使用两个 ETL 作业演示根据输入记录查找 Teradata 数据的步骤。这些示例将根据输入订单 ID 查询订单详细信息。以下小节将讨论 DataStage 支持的两种查找方法:普通查找和稀疏查找。

普通查找

对于普通查找来说,所有引用的数据都将从目标数据库中检索一次,并缓存在缓存或磁盘中。对于各输入记录,缓存引用数据将通过交叉检查来查找结果。

图 19 展示了某示例作业的查找工作台和 Teradata 连接器,可用于执行普通查找。Teradata 连接器对 Orders 表执行完整的表查询,并将查询结果发送给名为 NormalLookup 的查找工作台。查找 工作台将缓存查询结果并根据 OrderID 输入链接中的订单 ID 对缓存的订单详细信息执行查找操作。结果将发送给输出链接 OrderDetails。此作业要求一次完整的表数据库查询。

图 19. 用于执行普通查找的 DataStage 作业
上面描述的用于普通查找的 DataStage 作业。
上面描述的用于普通查找的 DataStage 作业。

执行普通查找需要两个主要步骤:

  1. 如图 20 所示,设置用于执行普通查找的查找工作台。
    图 20. 设置用于执行普通查找的查找工作台
    针对普通查找配置的查找工作台。
    针对普通查找配置的查找工作台。
  2. 如图 21 所示,指定以下参数针对普通查找设置 Teradata 连接器:
    • 普通查找类型。
    • 立即访问方法。 批量访问方法也可以在普通查找中使用。
    • Orders 目录表和自动生成 SQL。连接器将根据目标表和列定义在运行时生成查询 SQL。
    图 21. 针对普通查找设置 Teradata 连接器
     Teradata Connector 的 Properties 选项卡设置了上述条目。
    Teradata Connector 的 Properties 选项卡设置了上述条目。

稀疏查找

对于稀疏查找来说,它将根据每条输入记录来生成数据库查询,并且查询将被发送给目标数据库以获取结果。

图 22 展示的示例作业的查找工作台和 Teradata 连接器可用于执行稀疏查找。对于各订单 ID,SparseLookup 查找工作台会将订单 ID 发送给名为 GetOrderByID 的 Teradata 连接器。连接器将根据订单 ID 查询订单详细信息并将查询结果返回给查找工作台。查找工作台将查询结果转发给输出链接 OrderDetails。作业对各订单 ID 执行一次数据库查询。由于有四个订单 ID,因此作业执行了四次数据库查询。

图 22. 用于执行稀疏查找的 DataStage 作业
用于执行稀疏查找的 DataStage 作业。
用于执行稀疏查找的 DataStage 作业。

执行稀疏查找需要两个主要步骤:

  1. 如图 23 所示,设置查找工作台执行稀疏查找。
    图 23. 针对稀疏查找设置查找工作台
    针对稀疏查找配置的查找工作台。
    针对稀疏查找配置的查找工作台。
  2. 如图 24 所示,指定以下参数设置用于稀疏查找的 Teradata 连接器:
    • 稀疏查找类型。
    • 立即访问方法。不可以在稀疏查找中使用批量访问方法。
    • Orders 目标表和自动生成 SQL。 连接器将根据目标表和列定义在运行时生成查询 SQL。
    图 24. 针对稀疏查找设置查找工作台
    Teradata Connector 的 Properties 选项卡设置了上述条目。
    Teradata Connector 的 Properties 选项卡设置了上述条目。

早期 Teradata Enterprise 工作台

Teradata Enterprise Stage (TDEE) 是自 DataStage Version 7.x. 之后可用的一种早期 Teradata 工作台。 TDEE 是一种本机 PX-operator,它提供了以下特性:

  • 它是用于加载和导出大量数据的高性能解决方案。Teradata 通过批量模式选项中的加载和导出驱动程序提供等价的功能。
  • 它使用 Teradata 调用杠接口 CLIv2 和 FastLoad/FastExport 协议。
  • 它支持 Teradata 客户机版本 8.x、12.x 和 13.x。
  • 它不支持更新、更改插入或稀疏查找操作。
  • 它不支持 End of Wave 和拒绝链接特性。

图 25 所示的示例 ETL 作业演示了 TDEE 数据提取和加载特性。TDEE_Extract 将从一个 Teradata 数据库中导出数据。 TDEE 支持从表导出数据或者使用用户定义的 SQL。 TDEE_Load 可将数据加载到 Teradata 表中。 TDEE 只支持将数据加载到表中。用户定义的 SQL 不可用于数据加载操作。

图 25. 使用 TDEE 加载和提取数据
上面描述的数据提取和加载
上面描述的数据提取和加载

图 26 演示了如何设置 TDEE_LOAD 工作台。 TDEE 可以根据写入模式选择执行以下预加载操作:

  • 创建 — 创建新表
  • 替换 — 放弃已有表并创建一个新表
  • 截去 — 删除已有表中的记录
图 26. 设置 TDEE 数据加载操作
Input 选项卡下的 Properties 子选项卡用于定义 TDEE 数据加载。
Input 选项卡下的 Properties 子选项卡用于定义 TDEE 数据加载。

Teradata Enterprise 工作台使用 FastLoad 协议将数据加载到表中。FastLoad 协议仅支持加入空表。选择 Append 写模式后,工作台将使用 FastLoad 协议将数据插入到临时工作表中。完成数据加载操作之后,工作台将使用以下 SQL 将数据插入到目标表:

 insert into <target table> select * from <temporary work table>

Teradata Enterprise 工作台将在并发模式下运行。它支持为创建加载或导出操作创建多个在多个计算机节点上运行的进程。 如果定义了 requestedsessions/sessionsperplayer 属性,则它们将控制为数据操作生成的播放器进程的数量。否则,为数据操作生成的播放器进程的数量的默认值将设置为 Teradata Access Module 处理器数量的一半。

需要在数据操作的各时间点同步多个加载进程。同步需要创建并使用一个 terasync 数据库表。对于运行中的各个作业,表中都会插入一个相应行。各播放器进程将更新表中的行以指示其当前状态。如果不能在超时时间内(默认为 20 秒)同步所有播放器进程,则作业将中断。您可以更改默认值,方法是在数据加载定义中指定 synctimeout=<specified_value> 作为一个 Additional Connection Option 选项(参见图 26)。

早期 Teradata Multiload 工作台

Teradata MultiLoad (TDMLoad) 工作台最初是针对 DataStage 服务器设计的。TDMLoad 工作台支持数据加载和导出。它在内部使用 Teradata FastExport 实用工具进行导出。它使用 Teradata MultiLoad 或 TPump 实用工具进行加载。TDMLoad 工作台还可以在 DataStage PX 上运行。但是,与 Teradata 连接器不同,它只在序列模式下运行。以并行模式运行 TDMLoad 不受支持。

在 Teradata 连接器可用之前,主要推荐使用 TDMLoad 工作台来支持数据库更新和更新插入操作。Teradata 连接器的批量模式中的更新和流驱动程序提供了与之等价的特性。

图 27 所示的示例 ETL 作业演示了 TDMLOAD 数据导出和加载特性。 TDMLOAD_Export 从 Teradata 数据库导出数据。 TDMLOAD_Load_Update 将数据加载到 Teradata 表中。

图 27. 使用 TDMLOAD 提取和加载数据
上面描述的数据提取和加载。
上面描述的数据提取和加载。

图 28 展示了如何设置 TDMLOAD 数据导出操作。以下内容将描述 TDMLoad 工作台如何实现数据导出操作:

  • 工作台通过特定的 SQL 语句调用 Teradata FastExport 实用工具。
  • FastExport 实用工具从 Teradata 读取 Teradata 格式的数据,并将数据写入到管道或数据文件。
  • 工作台将从管道或数据文件读取数据,并将数据写入到输出链接。
图 28. 设置 TDMLOAD 数据导出
Output 选项卡下的快速导出子选项卡,用于定义 TDMLOAD 数据导出。
Output 选项卡下的快速导出子选项卡,用于定义 TDMLOAD 数据导出。

图 29 展示了如何设置 TDMLOAD 数据加载操作。以下内容描述了 TDMLoad 工作台如何实现数据加载操作:

  • 工作台从 DataStage 输入链接读取数据。
  • 工作台将数据转换为 Teradata 格式并将数据写入到数据文件或管道。
  • 工作台将生成一个 Teradata 加载实用工具脚本,然后根据用户选择调用 Teradata MultiLoad 或者 TPump 实用工具。
  • 所选 Teradata 实用工具将使用生成的脚本作为输入,并将输出写入到报表文件。
图 29. 设置 TDMLOAD 数据加载
Input 选项卡下的 MultiLoad/Tpump 子选项卡,用于定义 TDMLOAD 数据加载。
Input 选项卡下的 MultiLoad/Tpump 子选项卡,用于定义 TDMLOAD 数据加载。

TDMLoad 工作台提供了使用 Teradata FastLoad 或 VarText 格式将 DataStage 数据写入到数据文件中选项。您随后可以使用 Teradata 加载实用工具加载 the DataStage 外部的数据文件。Teradata 连接器不支持此特性。

其他早期 Teradata 工作台

Teradata API (TDAPI) 工作台专为 DataStage 服务器设计。 它提供了通过 Teradata DBC/SQL 分区执行 SQL select/insert/update/upsert/delete 语句的功能。它支持以序列模式在 DataStage PX 上运行。以并行模式运行工作台不受支持。

Teradata API 工作台一次处理一个数据记录。它没有利用 Teradata DML 数组操作特性。数组操作一次会向服务器发送许多行数据。建议使用该工作台处理少量记录。 Teradata 连接器的立即访问模式支持通过 DBC/SQL 分区执行 SQL。连接器还允许用户指定数组大小使用 Teradata 数组操作特性。

图 30 展示了用于插入或更新数据库表的 Teradata API 的工作台定义。

图 30. Teradata API 工作台定义
Input 选项卡下用于定义 Teradata API 工作台的 General 子选项卡。
Input 选项卡下用于定义 Teradata API 工作台的 General 子选项卡。

Teradata Load (terabulk) 工作台也是专为 DataStage 服务器设计的。它使用 FastLoad 实用工具并提供了将批量数据加载到空数据库表中的功能。它支持以序列模式在 DataStage PX 中运行。以并行模式运行 Teradata 加载工作台是不受支持的。Teradata 连接器通过批量模式选项中的加载驱动程序提供了等价的加载功能。

Teradata Load 工作台提供了使用 Teradata FastLoad 或 VarTex 格式将 DataStage 数据写入到数据文件中的选项。Teradata 连接器不支持此特性。

图 31 展示了 Teradata Load 工作台用于将数据加载到数据库表中时的工作台定义。

图 31. Teradata Load 工作台定义
Input 选项卡下的 Files 子选项卡,用于定义 Teradata Load 工作台。
Input 选项卡下的 Files 子选项卡,用于定义 Teradata Load 工作台。

早期元数据导入服务

如图 32 所示,您可以通过以下菜单项调用早期元数据导入服务:

  • Orchestrate Schema Definitions
  • Plug-in Meta Data Definitions
图 32. 早期元数据导入选项
Data Stage Designer 的屏幕截图高亮显示了上面描述的菜单栏中的选择。
Data Stage Designer 的屏幕截图高亮显示了上面描述的菜单栏中的选择。

选择 Orchestrate Schema Definitions 菜单项将开始使用 PX 运算符导入文件定义或数据库表模式。选择 Teradata 数据库类型之后,流程将调用 Teradata enterprise stage (TDEE) 导入所选 Teradata 表模式。

选择e Plug-in Meta Data Definitions 菜单项半开始使用 DataStage 插件工作台导入数据库表模式。选择 Teradata 数据库类型之后,流程将调用 Teradata API 工作台导入所选 Teradata 表模式。

结束语

本文演示了如何在 IBM InfoSphere Information Server 中使用 Teradata 连接解决方案集成 Teradata 数据与其他数据源。它介绍了 Teradata 连接器的数据加载、数据提取和查找特性。此处,还讨论了 Teradata 早期工作台的主要特性。Teradata 连接器提供了一个可替换所有早期工作台的解决方案。文章通过许多示例演示了详细的设计流程。

IBM InfoSphere Information Server 提供了许多领先的技术和集成解决方案,旨在触发许多关键集成问题,包括:

  • 数据质量。构建数据仓库的数据通常来自各种数据源。早期数据的结构经常没有任何记录,并且数据质量也较差。InfoSphere Information Analyzer 将分析您的数据并确保数据结构和质量。它将帮助您理解您的数据。InfoSphere QualityStage 解决方案将标准化并匹配任意类型的信息以创建高质量的数据。
  • 数据量。数据仓库环境通常要定期处理大量数据。有时,数据量的增长会超过预期。这一问题通过借助可伸缩的 ETL 架构来解决。IBM InfoSphere Information Server 将利用管道和分区技术来支持高数据吞吐量。可以将它部署在对称多处理(Symmetric Multiprocessing,SMP)和大规模并行处理(Massively Parallel Processing,MMP)计算机系统中来最大限度提高可伸缩性。

致谢

作者感谢 Tom O’Shea 和 Stewart Hanna 对文本的审查,以及 Ravi Nandibhatla、Srinivas Mudigonda 和 Vikram Vangari 就 STP 和 ODBC 工作台展开的讨论。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=469752
ArticleTitle=使用 InfoSphere Information Server 集成 Teradata 数据
publish-date=02252010