DataStage 初学者教程: IBM ETL工具
⚡ 智能摘要
来自 DataStage IBM InfoSphere 前身tracts 可大规模转换和加载企业数据。本页将通过一个实际的 DB2 零售示例,解释其架构、组件、并行处理、SQL 复制设置、项目创建、作业编译和集成测试。

什么是 DataStage?
数据阶段 是一款用于提取、转换和加载 (ETL) 数据的 ETL 工具。tracDataStage 负责将数据从源端转换并加载到目标位置。数据源可能包括顺序文件、索引文件、关系数据库、外部数据源、归档文件、企业应用程序等。DataStage 通过提供高质量数据来帮助企业获取商业智能,从而促进业务分析。
DataStage ETL 工具在大型组织中被用作不同系统之间的接口。它负责处理各种数据。trac数据从源到目标的转换、转换和加载。它最初由 VMark 于 90 年代中期推出。 IBM 2005 年收购 DataStage,更名为 IBM WebSphere DataStage 及更高版本 IBM 信息圈。
目前市场上有各种版本的DataStage,包括企业版(PX)、服务器版、MVS版、DataStage for PeopleSoft等。最新版本是 IBM InfoSphere DataStage。
IBM 信息服务器包括以下产品,
- IBM InfoSphere 数据阶段
- IBM InfoSphere QualityStage
- IBM InfoSphere 信息服务总监
- IBM InfoSphere 信息分析器
- IBM 快速信息服务器Track
- IBM InfoSphere 业务词汇表
定义确定后,下一节将探讨该产品在实际应用中能够实现哪些功能。 数据仓库 环境。
DataStage 概述
Datastage 具有以下功能。
- 它可以集成来自最广泛的企业和外部数据源的数据
- 实施数据验证规则
- 它有助于处理和转换大量数据
- 它使用可扩展的并行处理方法
- 它可以处理复杂的转换并管理多个集成过程
- 利用与企业应用程序的直接连接作为源或目标
- 利用元数据进行分析和维护
- Opera以批量、实时或 Web 服务形式进行测试
在本 DataStage 教程的以下部分中,我们简要描述了以下方面 IBM InfoSphere DataStage:
- 数据转换
- 工作机会
- 并行处理
InfoSphere DataStage 和 QualityStage 可以访问企业应用程序和数据源中的数据,例如:
- 关系数据库
- 大型机数据库
- 商业和分析应用程序
- 企业资源计划 (ERP) 或客户关系管理 (CRM) 数据库
- 联机分析处理 (OLAP) 或绩效管理数据库
处理阶段类型
IBM infosphere 作业由相互链接的各个阶段组成。它描述了数据从数据源到数据目标的流动。通常,一个阶段至少有一个数据输入和/或一个数据输出。但是,某些阶段可以接受多个数据输入并输出到多个阶段。
在工作设计中,你可以使用以下各个阶段:
- 转型阶段
- 过滤级
- 聚合器阶段
- 删除重复项阶段
- 加入阶段
- Lookup 阶段
- 复制阶段
- 排序阶段
- 集装箱
为什么选择 DataStage 进行数据集成?
了解功能列表是一回事,了解工具何时才能物有所值又是另一回事。DataStage 适用于那些数据量庞大、治理复杂且数据源异构的工作负载,这些工作负载使得手动编写脚本难以管理。
最直接的原因在于吞吐量。由于引擎会将数据分区到各个节点,并同时在不同阶段之间传输记录,因此增加硬件几乎可以线性地提高吞吐量。在双节点开发环境中设计的作业,无需任何修改即可在八节点生产集群上运行。
其他原因则更多是组织方面的,而非技术方面的:
- 共享元数据: 表定义、连接和业务术语在存储库中存储一次,并被每个作业重复使用,从而消除了每个开发人员独立定义源时出现的偏差。
- 内置数据质量: QualityStage 在 ETL 流程旁边运行调查、标准化、匹配和生存分析,因此清理不需要第二个产品。
- 广泛的连接性: 原生连接器支持 DB2, OracleTeradata、大型机VSAM、 SAP无需自定义代码即可使用 Salesforce 和云对象存储。
- Opera国家控制: Director 提供运行历史记录、行数、警告和重启点,审计人员将其视为受控数据管道的证据。
- 可重用性: 共享容器和参数集允许一个经过测试的转换服务于多个作业,而不是被复制到每个作业中。
这些优势直接取决于产品的组装方式,下一节将对此进行解释。
DataStage 组件和 Archi质地
DataStage 有四个主要组件,即:
- 管理员: 它用于执行管理任务。包括设置 DataStage 用户、设置清除条件以及创建和移动项目。
- 经理: 这是 ETL DataStage 的 Repository 的主要界面。它用于存储和管理可重用的元数据。通过 DataStage 管理器,可以查看和编辑 Repository 的内容。
- 设计师: 用于创建 DataStage 应用程序或作业的设计接口。它指定数据源、所需的转换和数据目标。作业被编译以创建可执行文件,由 Director 调度并由 Server 运行
- 理事: 它用于验证、安排、执行和监控 DataStage 服务器作业和并行作业。

上图解释了如何 IBM Infosphere DataStage 与 IBM Information Server 平台。DataStage 分为两个部分, 共享组件和运行时 Archi质地下表详细说明了这两个部分各自的贡献。
|
共享 |
统一用户界面 |
|
|
共同服务 |
|
|
|
常见的并行处理 |
|
|
|
运行时 Archi质地 |
OSH 脚本 |
|
DataStage 中的并行处理工作原理
上面的架构表将通用并行处理列为共享服务。本节将解释该服务如何实际执行作业,因为概述中提到了这一概念,而且它决定了作业的完成速度。
并行作业同时使用两种机制,这两种机制都在运行时自动应用,而不是手动编写代码。
1. 流水线并行。 作业中的每个阶段都会立即启动,而不是等待前一个阶段完成。源阶段开始读取数据行并将其推送到内存流水线。转换器在第一批数据行到达后立即启动,并将其输出推送到第二个流水线。目标连接器紧随其后开始写入。由于没有写入中间目标文件,因此三阶段作业的读取、转换和写入操作是重叠进行的,而不是按顺序执行的。
2. 分区并行性。 这些行被分成多个分区,每个分区在其自身的节点上运行完整的阶段逻辑副本。八个分区意味着八个同时运行的 Transformer 实例。流程结束时,所有分区的数据会被重新收集成一个单一的数据流,供目标服务器使用。
选择合适的分区方法是开发人员需要做的主要调优决策:
- 自动: 默认设置。引擎会根据舞台的需要选择一种方法。
- 哈希: 将具有相同键值的行发送到同一节点。此操作必须在执行连接、聚合和删除重复项之前执行,以确保匹配的键能够匹配到一起。
- 循环赛: 按行均匀处理。最适合加载带有关键组的平面文件。ping 没关系。
- 全部的: 将整个数据集复制到每个节点。用于查找阶段的小型引用表。
- 相同的: 保持现有分区不变,避免在两个阶段之间进行不必要的重新分区。
- 范围和模数: 当需要均匀分布时,可按值范围或数字键余数对行进行分布。
配置文件(APT_CONFIG_FILE)声明了节点的数量。由于节点数量位于作业外部,因此同一个编译后的作业无需更改设计即可从笔记本电脑扩展到生产环境。
在进行任何尝试之前,必须先具备相应的环境。
Datastage 工具的先决条件
对于 DataStage,您将需要以下设置。
- 信息圈
- DataStage Server 9.1.2 或更高版本
- Microsoft Visual Studio .NET 2010 快速版 C++
- Oracle 客户端(完整客户端,不是即时客户端)如果连接到 Oracle 数据库
- DB2 客户端(如果连接到 DB2 数据库)
现在,在本 DataStage 初学者教程系列中,我们将学习如何下载和安装 InfoSphere 信息服务器。
下载并安装 InfoSphere Information Server
要访问 DataStage,请下载并安装最新版本的 IBM InfoSphere Server。该服务器支持 AIX、Linux 和 Windows 操作系统。您可以根据需要选择。
要将数据从旧版本的信息空间迁移到新版本,请使用资产交换工具。
安装文件
为了安装和配置 Infosphere Datastage,您的设置中必须有以下文件。
对于 Windows,
- EtlDeploymentPackage-windows-oracle.pkg
- EtlDeploymentPackage-windows-db2.pkg
对于Linux,
- EtlDeploymentPackage-linux-db2.pkg
- EtlDeploymentPackage-linux-oracle.pkg
服务器安装完毕后,本页其余部分的示例将使用变更数据捕获,因此在构建之前了解变更数据的传输方式会很有帮助。
CDC 事务阶段作业中更改数据的流程
上图 trac即,按照以下顺序,对源数据库和目标数据库进行一次更改。
- 数据库的“InfoSphere CDC”服务监视并捕获来自源数据库的更改
- 根据复制定义“InfoSphere CDC”将变更数据传输到“InfoSphere CDC for InfoSphere DataStage”。
- “InfoSphere CDC for InfoSphere DataStage” 服务器通过 TCP/IP 会话将数据发送到“CDC Transaction stage”。“InfoSphere CDC for InfoSphere DataStage” 服务器还发送 COMMIT 消息(以及书签信息)以在捕获的日志中标记事务边界。
- 对于“InfoSphere CDC for InfoSphere DataStage”服务器发送的每条 COMMIT 消息,“CDC Transaction 阶段”都会创建结束波 (EOW) 标记。这些标记会通过所有输出链接发送到目标数据库连接器阶段。
- 当“目标数据库连接器阶段”在所有输入链接上接收到结束标记时,它会将书签信息写入书签表,然后将事务提交到目标数据库。
- “InfoSphere CDC for InfoSphere DataStage”服务器从“目标数据库”上的书签表请求书签信息。
- “InfoSphere CDC for InfoSphere DataStage”服务器接收Bookmark信息。
这些信息用于,
- 确定复制开始时读取更改的事务日志中的起点。
- 确定是否可以清理现有事务日志
设置 SQL 复制
在开始使用 Datastage 之前,您需要设置数据库。您将创建两个 DB2 数据库。
- 一个用作复制源,
- 一个作为目标。
您还将创建两个表(产品和库存),并用示例数据填充它们。然后,您可以测试以下集成: SQL 复制和数据阶段。
接下来,您将通过创建 控制表、订阅集、注册和订阅集成员。我们将在下一节中详细了解这一点。
这里我们将以零售销售项目为例作为我们的数据库,并创建两个表:库存和产品。这些表将通过这些集合将数据从源加载到目标。(控制表、订阅集、注册和订阅集成员.)
步骤1) 创建源数据库 销售.在这个数据库下,创建两个表 产品展示 和 库存.
步骤2) 运行以下命令创建 SALES 数据库。
db2 create database SALES
步骤3) 为 SALES 数据库启用存档日志记录。此外,使用以下命令备份数据库
db2 update db cfg for SALES using LOGARCHMETH3 LOGRETAIN db2 backup db SALES
步骤4) 在同一个命令提示符下,切换到您之前打开的 sqlrepl-datastage-tutorial 目录中的 setupDB 子目录。trac从下载的压缩文件中读取。
步骤5) 使用以下命令创建 Inventory 表并通过运行以下命令将数据导入表中。
db2 import from inventory.ixf of ixf create into inventory
步骤6) 创建目标表。将目标数据库命名为 阶段数据库。
由于现在您已经创建了数据库源和目标,在本 DataStage 教程的下一步中,我们将了解如何复制它。
以下信息可能有助于 设置 ODBC 数据源 ,在 IBM InfoSphere 信息服务器文档。
创建 SQL 复制对象
下图展示了变更数据如何从源数据库传递到目标数据库。您需要创建一个源到目标的映射。ping 桌子之间被称为 订阅集成员 并将成员分组为 订阅.
InfoSphere CDC(变更数据捕获)中的复制单元称为订阅。
- 源中所做的更改被捕获到“捕获控制表”中,该表被发送到 CD 表,然后发送到目标表。而应用程序将拥有需要进行更改的行的详细信息。它还将 CD 表加入订阅集。
- 订阅包含地图ping 详细说明源数据存储中的数据如何应用于目标数据存储。注意,CDC 现在被称为 Infosphere 数据复制.
- 当执行订阅时,InfoSphere CDC 会捕获源数据库上的更改。InfoSphere CDC 将更改数据传递到目标数据库,并将同步点信息存储在目标数据库的书签表中。
- InfoSphere CDC 使用书签信息来监视 InfoSphere DataStage 作业的进度。
- 在发生故障的情况下,书签信息用作重新启动点。在我们的示例中,ASN.IBMSNAP_FEEDETL 表存储与 DataStage 相关的同步点信息,这些信息用于: track DataStage 进度。
在此部分 IBM DataStage 培训教程,您需要做以下事情,
- 创建 CAPTURE CONTROL 表和 APPLY CONTROL 表来存储复制选项
- 将 PRODUCT 和 INVENTORY 表注册为复制源
- 创建具有两个成员的订阅集
- 创建订阅集成员和目标CCD表
使用 ASNCLP 命令行程序设置 SQL 复制
步骤1) 在 sqlrepl-datastage-tutorial/setupSQLRep 目录中找到 crtCtlTablesCaptureServer.asnclp 脚本文件。
步骤2) 在文件中替换和 ” ”以及用于连接 SALES 数据库的用户 ID 和密码。
步骤3) 将目录更改为 sqlrepl-datastage-tutorial/setupSQLRep 目录并运行脚本。使用以下命令。该命令将连接到 SALES 数据库,生成用于创建 Capture 控制表的 SQL 脚本。
asnclp –f crtCtlTablesCaptureServer.asnclp
步骤4) 在同一目录中找到 crtCtlTablesApplyCtlServer.asnclp 脚本文件。现在替换两个实例和 ” ”以及用于连接STAGEDB数据库的用户ID和密码。
步骤5) 现在在同一个命令提示符下使用以下命令来创建应用控制表。
asnclp –f crtCtlTablesApplyCtlServer.asnclp
步骤6) 找到 crtRegistration.asnclp 脚本文件并替换所有实例更改为用于连接 SALES 数据库的用户 ID。此外,将“ ”为连接密码。
步骤7) 要注册源表,请使用以下脚本。作为创建注册的一部分,ASNCLP 程序将创建两个 CD 表。CDPRODUCT 和 CDINVENTORY。
asnclp –f crtRegistration.asnclp
CREATE REGISTRATION 命令使用以下选项:
- 差异刷新:仅当源表中的行发生变化时,它才提示Apply程序更新目标表
- 图像:此选项用于注册发生变化前源列的值,以及发生变化后源列的值。
步骤8) 要连接到目标数据库(STAGEDB),请使用以下步骤。
- 找到 crtTableSpaceApply.bat 文件,在文本编辑器中打开它
- 代替和使用用户 ID 和密码
- 在 DB2 命令窗口中,输入 crtTableSpaceApply.bat 并运行该文件。
- 此批处理文件在目标数据库(STAGEDB)上创建一个新的表空间
步骤9) 找到 crtSubscriptionSetAndAddMembers.asnclp 脚本文件并进行以下更改。
- 替换所有实例和使用用于连接到 SALES 数据库(源)的用户 ID 和密码。
- 替换所有实例和使用用户ID连接到STAGEDB数据库(目标)。
更改后,运行脚本以创建订阅集 (ST00),该订阅集将源表和目标表分组。该脚本还会在目标数据库中创建两个订阅集成员和 CCD(一致更改数据),用于存储修改后的数据。这些数据将由 Infosphere DataStage 使用。
步骤10) 运行脚本来创建订阅集、订阅集成员和 CCD 表。
asnclp –f crtSubscriptionSetAndAddMembers.asnclp
用于创建订阅集和两个成员的各种选项包括
- 完成凝结
- 外置
- 加载类型导入导出
- 计时连续
步骤11) 由于复制管理工具存在缺陷。您必须执行另一个批处理文件来设置 IBMSNAP_SUBS_SET 控制表为空。
- 找到 updateTgtCapSchema.bat 文件。在文本编辑器中打开它。替换和使用用于连接到STAGEDB数据库的用户ID。
- 在DB2命令窗口中,输入命令updateTgtCapSchema.bat并执行该文件。
创建定义文件以将 CCD 表映射到 DataStage
在下一步进行复制之前,我们需要将 CCD 表与 DataStage 连接起来。在本节中,我们将了解如何将 SQL 与 DataStage 连接起来。
要将 CCD 表与 DataStage 连接,您需要创建 DataStage 定义 (.dsx) 文件。DataStage 使用 .dsx 文件格式来导入和导出作业定义。您将使用 ASNCLP 脚本创建两个 .dsx 文件。例如,这里我们创建了两个 .dsx 文件。
- stagedb_AQ00_SET00_sJobs.dsx:创建一个作业序列,指导四个并行作业的工作流程。
- stagedb_AQ00_SET00_pJobs.dsx :创建四个并行作业
ASNCLP 程序自动将 CCD 列映射到 Datastage 列格式。只有当 ASNCLP 运行在 Windows、Linux 或 Unix 程序。
Datastage 作业从 CCD 表中提取行。
- 一项作业会设置一个同步点,该同步点位于 DataStage 在 ex 中停止的位置。trac从两个表中获取数据。该作业通过从 ST00 订阅集中选择 SYNCHPOINT 值来获取此信息。 IBMSNAP_SUBS_SET 表并将其插入到 IBMSNAP_FEEDETL 表。
- 两份工作trac从 PRODUCT_CCD 和 INVENTORY_CCD 表中获取数据。作业知道要从哪一行开始执行。trac通过从中选择 MIN_SYNCHPOINT 和 MAX_SYNCHPOINT 值来进行操作 IBMSNAP_FEEDETL 表用于订阅集。
定义映射完成后,即可开始复制,以便 CCD 表开始填充。
开始复制
要开始复制,您将使用以下步骤。当 CCD 表中填充了数据时,表明复制设置已验证。要查看目标 CCD 表中的复制数据,请使用 DB2 控制中心图形用户界面。
步骤1) 确保 DB2 正在运行,如果没有,则使用 db2 启动 命令。
步骤2) 然后从操作系统提示符下使用 asncap 命令启动捕获程序。例如。
asncap capture_server=SALES
上述命令指定 SALES 数据库作为捕获服务器。在捕获运行时保持命令窗口打开。
步骤3) 现在打开一个新的命令提示符。然后启动 申请 使用 asnapply 命令来编程。
asnapply control_server=STAGEDB apply_qual=AQ00
- 该命令指定STAGEDB数据库作为Apply控制服务器(包含Apply控制表的数据库)
- AQ00 作为应用限定符(此组控制表的标识符)
保持命令窗口打开并且“应用”正在运行。
步骤4) 现在打开另一个命令提示符并发出 db2cc 命令来启动 DB2 控制中心。接受默认的控制中心。
步骤5) 现在在左侧导航树中,打开所有数据库>STAGEDB,然后单击表。 Double 点击表格名称(产品 CCD)打开表格。它看起来像这样。
同样,您也可以打开 INVENTORY 的 CCD 表。
现在复制功能正在向 CCD 表提供数据,因此注意力从数据库端转移到了 DataStage 客户端。
如何在 Datastage 工具中创建项目
首先,您将在 DataStage 中创建一个项目。为此,您必须是 InfoSphere DataStage 管理员。
安装和复制完成后,您需要创建一个项目。在 DataStage 中,项目是一种组织数据的方法。它包括在特定项目中定义数据文件、阶段和构建作业。
要在 DataStage 中创建项目,请按照以下步骤操作:
步骤1)启动DataStage软件
启动 DataStage 和 QualityStage Administrator。然后单击开始 > 所有程序 > IBM 信息服务器 > IBM WebSphere DataStage 和 QualityStage 管理员。
步骤2)连接DataStage服务器和客户端
要从 DataStage 客户端连接到 DataStage 服务器,请输入域名、用户 ID、密码和服务器信息等详细信息。
步骤 3)添加新项目
在 WebSphere DataStage Administration 窗口中,单击 Projects 选项卡,然后单击 Add。
步骤4)输入项目详细信息
在 WebSphere DataStage 管理窗口中,输入以下详细信息:
- 姓名
- 文件位置
- 点击“确定”
每个项目包含:
- DataStage 作业
- 内置组件。这些是作业中使用的预定义组件。
- 用户定义组件。这些是使用 DataStage Manager 或 DataStage Designer 创建的自定义组件。
我们将了解如何在 Datastage Infosphere 中导入复制作业。
如何在 Datastage 和 QualityStage Designer 中导入复制作业
您将导入作业 IBM InfoSphere DataStage 和 QualityStage Designer 客户端。然后您可以在 IBM InfoSphere DataStage 和 QualityStage Director 客户端。
设计师客户就像一张空白的画布,等待着他们来创作。trac它提供数据转换、加载和质量检查等功能,为作业提供基本构建模块。它包括:
- 实习:它连接数据源来读取或写入文件并处理数据。
- 链接:它连接数据流动的各个阶段
InfoSphere DataStage 和 QualityStage Designer 客户端中的阶段存储在 Designer 工具面板中。
InfoSphere QualityStage 中包含以下阶段:
- 调查阶段
- 标准化阶段
- 匹配频率阶段
- 单一来源匹配阶段
- 双源匹配阶段
- 生存阶段
- 标准化质量评估(SQA)阶段
您可以在 DataStage 信息圈中创建 4 种类型的作业。
- 并行作业
- 序列作业
- 大型机作业
- 服务器作业
让我们一步一步地了解如何导入复制作业文件。
步骤1) 启动 DataStage 和 QualityStage Designer。单击开始 > 所有程序 > IBM 信息服务器 > IBM WebSphere DataStage 和 QualityStage Designer
步骤2) 在附加到项目窗口中,输入以下详细信息。
- 域名
- 用户名
- 密码
- 项目名称
- OK
步骤3) 现在从文件菜单中单击导入 -> DataStage 组件。
将打开一个新的 DataStage 存储库导入窗口。
- 在此窗口浏览 STAGEDB_AQ00_ST00_sJobs.dsx 我们之前创建的文件
- 选择选项“全部导入”。
- 勾选“执行影响分析”复选框。
- 单击“确定”。
一旦导入作业,DataStage 将创建STAGEDB_AQ00_ST00_sequence 作业。
步骤4) 按照相同的步骤导入 STAGEDB_AQ00_ST00_pJobs.dsx 文件。此导入将创建四个并行作业。
步骤5) 在 Designer Repository 窗格下 -> 打开 SQLREP 文件夹。在文件夹中,您将看到序列作业和四个并行作业。
步骤6) 要查看序列作业。转到存储库树,右键单击 STAGEDB_AQ00_ST00_sequence 作业,然后单击编辑。它将显示作业序列控制的四个并行作业的工作流程。
每个图标都是一个舞台,
- getExtractRange 阶段:它更新 IBMSNAP_FEEDETL 表。它将设置数据示例的起始点。trac到 DataStage 最后一次执行时的情况tracted 行并将结束点设置为订阅集中处理的最后一笔交易。
- getExtractRangeSuccess此阶段为前者提供起始点。tractFromINVENTORY_CCD 阶段和 extractFromPRODUCT_CCD 阶段
- AllExtractsSuccess: 这一阶段确保了双方(前任和前任)tractFromINVENTORY_CCD 和 extractFromPRODUCT_CCD 已成功完成。然后将最后提取的行的同步点传递给 setRangeProcessed 阶段。
- setRangeProcessed 阶段:它更新 IBMSNAP_FEEDETL 表。因此,DataStage 知道从哪里开始下一轮数据提取。tracTION
步骤7) 要查看并行作业。右键单击 STAGEDB_ASN_INVENTORY_CCD 并选择存储库下的编辑。它将打开如下所示的窗口。
在上图中,你可以看到来自库存 CCD 表的数据和 SyncFEEDETL 表中的 h 点详细信息被呈现到 Lookup_6 阶段。
导入的作业仍然指向空对象,因此接下来必须定义一个数据连接对象。
创建从 DataStage 到 STAGEDB 数据库的数据连接
现在下一步是在 InfoSphere DataStage 和 SQL Replication 目标数据库之间建立数据连接。它包含 CCD 表。
在 DataStage 中,您可以使用数据连接对象和相关的连接器阶段来快速定义作业设计中与数据源的连接。
步骤1) STAGEDB 包含 DataStage 用于同步其数据表达式的 Apply 控制表。trac以及从中提取数据的CCD表tracted。使用以下命令
db2 catalog tcpip node SQLREP remote ip_address server 50000 db2 catalog database STAGEDB as STAGEDB2 at node SQLREP
注意::创建STAGEDB的系统的IP地址
步骤2) 单击文件 > 新建 > 其他 > 数据连接。
步骤3) 您将看到一个带有两个选项卡的窗口:“参数”和“常规”。
步骤4) 在此步骤中,
- 一般情况下,选项卡中将数据连接命名为 sqlreplConnect
- 在参数选项卡中,如下所示
- 单击“使用阶段类型字段连接”旁边的浏览按钮,然后在
- 打开窗口导航存储库树到阶段类型 –> 并行– > 数据库 —-> DB2 连接器。
- 单击打开。
步骤5) 在连接参数表中,输入以下详细信息
- 的ConnectionString: STAGEDB2
- 用户名:连接STAGEDB数据库的用户ID
- 密码:连接STAGEDB数据库的密码
- 例:包含 STAGEDB 数据库的 DB2 实例的名称
步骤6) 在下一个窗口中保存数据连接。单击“保存”按钮。
将表定义从STAGEDB导入DataStage
在上一步中,我们看到 InfoSphere DataStage 和 STAGEDB 数据库已连接。现在,将 PRODUCT_CCD 和 INVENTORY_CCD 表的列定义和其他元数据导入到 Information Server 存储库中。
在设计器窗口中,按照以下步骤操作。
步骤1) 选择导入 > 表定义 > 启动连接器导入向导
步骤2) 从向导的连接器选择页面中,选择 DB2 连接器并单击下一步。
步骤3) 单击连接详细信息页面上的加载。这将使用您在上一章中创建的数据连接的连接信息填充向导字段。
步骤4) 在同一页面上单击测试连接。这将提示 DataStage 尝试连接到 STAGEDB 数据库。您可以看到“连接成功”的消息。单击下一步。
步骤5) 确保数据源位置页面上的主机名和数据库名称字段已正确填充。然后单击下一步。
步骤6) 在 Schema 页面上。输入应用控制表 (ASN) 的架构或检查 ASN 架构是否已预先填充到架构字段中。然后单击下一步。选择页面将显示在 ASN 架构中定义的表的列表。
步骤7) 我们需要导入元数据的第一个表是 IBMSNAP_FEEDETL 是一个应用控制表。它包含有关同步点的详细信息,使 DataStage 能够保持同步。 trac它从CCD表中获取了k行。选择 IBMSNAP_FEEDETL 并单击下一步。
步骤8) 要完成导入 IBMSNAP_FEEDETL 表定义。单击导入,然后在打开的窗口中单击打开。
步骤9) 重复步骤 1-8 两次,以导入 PRODUCT_CCD 表和 INVENTORY_CCD 表的定义。
注意:导入库存和产品的定义时,请确保将模式从 ASN 更改为创建 PRODUCT_CCD 和 INVENTORY_CCD 的模式。
现在 DataStage 拥有连接到 SQL 复制目标数据库所需的所有详细信息。
设置 DataStage 作业的属性
对于我们拥有的四个 DataStage 并行作业中的每一个,它都包含一个或多个与 STAGEDB 数据库连接的阶段。您需要修改阶段以添加连接信息并链接到 DataStage 填充的数据集文件。
阶段具有可编辑的预定义属性。在这里,我们将更改 STAGEDB_ASN_PRODUCT_CCD_ex 的一些属性。trac并行作业。
步骤1) 浏览 Designer 存储库树。在 SQLREP 文件夹下,选择 STAGEDB_ASN_PRODUCT_CCD_extrac并行作业。要编辑,请右键单击该作业。并行作业的设计窗口将在“设计器面板”中打开。
步骤2) 找到绿色图标。该图标表示 DB2 连接器阶段。它用于例如trac从 CCD 表中获取数据。 Double-单击该图标。将打开阶段编辑器窗口。
步骤3) 在编辑器中单击“加载”以使用连接信息填充字段。要关闭阶段编辑器并保存更改,请单击“确定”。
步骤4) 现在返回 STAGEDB_ASN_PRODUCT_CCD_ex 的设计窗口trac并行作业。找到“获取”图标。SynchPoints DB2 连接器阶段。然后双击该图标。
步骤5) 现在单击加载按钮以用连接信息填充字段。
注意:如果您使用 STAGEDB 以外的数据库作为 Apply 控制服务器。然后选择加载获取的连接信息的选项SynchPoints 阶段,与控制表而不是 CCD 表交互。
步骤6) 在此步骤中,
- 在运行 InfoSphere DataStage 的系统上创建一个空文本文件。
- 将此文件命名为 productdataset.ds 并记下您的保存位置。
- DataStage 从 CCD 表获取更改后,将会把更改写入此文件。
- 用于在链接作业之间移动数据的数据集或文件称为持久数据集。它由 DataSet 阶段表示。
步骤7) 现在在设计窗口中打开阶段编辑器,然后双击图标 insert_into_a_dataset。它将打开另一个窗口。
步骤8) 在这个窗口中,
- 在属性选项卡下确保 Target 文件夹已打开,并且文件 = DATASETNAME 属性被突出显示。
- 在右侧,您将看到一个文件字段
- 输入 productdataset.ds 文件的完整路径
- 点击“确定”。
现在您已更新产品 CCD 表的所有必要属性。关闭设计窗口并保存所有更改。
步骤9) 现在找到并打开 STAGEDB_ASN_INVENTORY_CCD_extrac从 Designer 的存储库窗格中并行运行作业,并重复步骤 3-8。
注意:
- 您必须将控制服务器数据库的连接信息加载到阶段编辑器中才能获取SynchPoints 阶段。如果你的控制服务器不是STAGEDB。
- 对于 STAGEDB_ST00_AQ00_getExtractRange 和 STAGEDB_ST00_AQ00_markRangeProcessed 并行作业,打开所有 DB2 连接器阶段。然后使用加载函数为 STAGEDB 数据库添加连接信息。
所有属性均已设置完毕,因此可以编译和执行作业。
编译并运行 DataStage 作业
当 DataStage 作业准备好编译时,设计器会通过查看输入、转换、表达式和其他细节来验证作业的设计。
当作业编译成功完成后,它就可以运行了。我们将编译所有五个作业,但只运行“作业序列”。这是因为该作业控制所有四个并行作业。
步骤1) 在 SQLREP 文件夹下。通过 (Cntrl+Shift)。然后右键单击并选择多作业编译选项。
步骤2) 您将看到 DataStage Compilation Wizard 中选择了五个作业。单击 Next。
步骤3) 编译开始并完成后显示消息“编译成功”。
步骤4) 现在启动 DataStage 和 QualityStage Director。选择开始 > 所有程序 > IBM 信息服务器 > IBM WebSphere DataStage 和 QualityStage Director。
步骤5) 在左侧的项目导航窗格中。单击 SQLREP 文件夹。这会将所有五个作业放入主管状态表中。
步骤6) 选择STAGEDB_AQ00_S00_sequence作业。从菜单栏中单击作业>立即运行。
一旦编译完成,您将看到完成状态。
现在检查存储在 PRODUCT_CCD 和 INVENTORY_CCD 表中的已更改行是否已执行。trac由 DataStage 处理并插入到两个数据集文件中。
步骤7) 返回设计器并打开 STAGEDB_ASN_PRODUCT_CCD_extract 工作。打开舞台编辑器 Double-单击 insert_into_a_dataset 图标。然后单击查看数据。
步骤8) 接受要显示行窗口中的默认值。然后单击“确定”。将打开一个数据浏览器窗口以显示数据集文件的内容。
测试 SQL 复制和 DataStage 之间的集成
在上一步中,我们编译并执行了该作业。在本节中,我们将检查 SQL 复制和 DataStage 的集成。为此,我们将对源表进行更改,并查看相同的更改是否更新到 DataStage 中。
步骤1) 导航到适合您操作系统的 sqlrepl-datastage-scripts 文件夹。
步骤2) 按以下步骤启动 SQL 复制:
- 运行 startSQLCapture.bat (Windows) 文件来启动 SALES 数据库中的 Capture 程序。
- 运行 startSQLApply.bat (Windows)文件在STAGEDB数据库中启动Apply程序。
步骤3) 现在打开 updateSourceTables.sql 文件。要连接到 SALES 数据库,请替换和使用用户 ID 和密码。
步骤4) 打开 DB2 命令窗口。将目录更改为 sqlrepl-datastage-tutorial\scripts,然后通过给定的命令运行问题:
db2 -tvf updateSourceTables.sql
SQL 脚本将对销售数据库中的两个表(PRODUCT、INVENTORY)执行各种操作,例如更新、插入和删除。
步骤5) 在运行 DataStage 的系统上。打开 DataStage Director 并执行 STAGEDB_AQ00_S00_sequence 作业。单击作业 > 立即运行。
当您运行该作业时,将会执行以下活动。
- Capture 程序读取 SALES 数据库日志中的六行更改并将其插入到 CD 表中。
- Apply 程序从 SALES 的 CD 表中提取更改行并将其插入到 STAGEDB 的 CCD 表中。
- 两个 DataStage extract 作业从 CCD 表中获取更改,并将其写入 productdataset.ds 和 inventory dataset.ds 文件。
您可以通过查看数据集来检查上述步骤是否发生。
步骤6) 按照以下步骤,
- 启动 Designer。打开 STAGEDB_ASN_PRODUCT_CCD_extrac工作。
- 然后 Double-单击 insert_into_a_dataset 图标。在阶段编辑器中。单击查看数据。
- 接受要显示行窗口中的默认设置,然后单击“确定”。
数据集包含三行新数据。检查更改是否已实施的最简单方法是向下滚动数据浏览器的最右侧。现在查看最后三行(见下图)
字母 I、U 和 D 分别指定产生每个新行的 INSERT、UPDATE 和 DELETE 操作。
您可以对库存表进行相同的检查。
DataStage 与其他流行的 ETL 工具对比
一旦端到端流程运行正常,接下来通常会问的问题是:DataStage 与团队可能已经拥有的其他替代方案相比如何?下表根据最常用于决定购买的标准,将 DataStage 与三个广泛使用的平台进行了比较。
| 标准 | IBM 数据阶段 | Informatica的 电源中心 | 拓蓝 | SSIS |
|---|---|---|---|---|
| 加工模型 | 流水线加分区并行 | 元数据驱动的分区 | 产生 Java or Spark 码 | 内存数据流 |
| 最合适 | 超大型企业批处理和 CDC 工作负载 | 复杂的遗留架构,治理繁重 | 云原生且对成本敏感的团队 | Microsoft SQL Server 庄园 |
| 技术许可/授权 | 商业级,高级 | Commercial / 商业 | 开源版加商业版 | 与 SQL Server 捆绑 |
| 学习曲线 | 急需 ETL 专家 | 陡 | 中等水平的编程技能会有帮助 | 中 |
| 数据质量 | QualityStage包含在套件中 | 独立数据质量产品 | 包含 Talend 数据质量 | 附加组件 |
简而言之,当原始吞吐量、主机覆盖范围和可审计的数据沿袭比许可成本更重要时,DataStage 是理想之选。主要在云端工作的团队 数据湖架构 或比较前trac首先,t 顺序可能会发现权衡取舍 ETL 与 ELT 更具相关性,且更广泛的候选名单出现在汇总中。 ETL工具 和 数据集成工具.































