转换 Informatica 脚本 ETL AWS Schema Conversion Tool - AWS Schema Conversion Tool

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

转换 Informatica 脚本 ETL AWS Schema Conversion Tool

您可以使用 AWS SCT 命令行接口 (CLI) 来转换您的 Informatica ETL 脚本,以便可以在新的目标数据库中使用这些脚本。此转换包括三个关键步骤。首先, AWS SCT 转换嵌入在您的 Informatica 对象中的SQL代码。接下来,根据您在项目中指定的迁移规则 AWS SCT 更改数据库对象的名称。最后,将 Informatica ETL 脚本的连接 AWS SCT 重定向到新的目标数据库。

您可以将 Informatica ETL 脚本作为 AWS SCT 数据库转换项目的一部分进行转换。在转换 Informatica 脚本时,请务必将源数据库和目标数据库添加到项目中ETL。

要转换 Informatica ETL 脚本,请确保使用 AWS SCT 版本 1.0.667 或更高版本。另外,请熟悉 AWS SCT的命令行界面。有关更多信息,请参阅 CLI的参考 AWS Schema Conversion Tool

要使用转换 Informatica 脚本 ETL AWS SCT
  1. 创建新 AWS SCT CLI脚本或编辑现有场景模板。例如,您可以下载和编辑 InformaticConversionTemplate.scts 模板。有关更多信息,请参阅 获取CLI场景

  2. 下载源数据库和目标数据库所需的JDBC驱动程序。使用 SetGlobalSettings 命令指定这些驱动程序的位置。此外,请指定 AWS SCT 可以保存日志文件的文件夹。

    以下代码示例向您展示了如何将 Oracle 和 Postgre SQL 驱动程序的路径添加到 AWS SCT 设置中。运行此代码示例后,将日志文件 AWS SCT 存储在C:\sct_log文件夹中。此外,还会将控制台日志文件 AWS SCT 存储在C:\Temp\oracle_postgresql文件夹中。

    SetGlobalSettings -save: 'true' -settings: '{"oracle_driver_file": "C:\\drivers\\ojdbc8.jar", "postgresql_driver_file": "C:\\drivers\\postgresql-42.2.19.jar" }' / SetGlobalSettings -save: 'false' -settings: '{ "log_folder": "C:\\sct_log", "console_log_folder": "C:\\Temp\\oracle_postgresql"}' /
  3. 创建新 AWS SCT 项目。输入项目的名称和位置。

    以下代码示例在 C:\Temp 文件夹中创建 oracle_postgresql 项目。

    CreateProject -name: 'oracle_postgresql' -directory: 'C:\Temp' /
  4. 添加有关源数据库和目标数据库的连接信息。

    以下代码示例将 Oracle 和 Postgre SQL 数据库添加为 AWS SCT 项目的源和目标。

    AddSource -password: 'source_password' -port: '1521' -vendor: 'ORACLE' -name: 'ORACLE' -host: 'source_address' -database: 'ORCL' -user: 'source_user' / AddTarget -database: 'postgresql' -password: 'target_password' -port: '5432' -vendor: 'POSTGRESQL' -name: 'POSTGRESQL' -host: 'target_address' -user: 'target_user' /

    在前面的示例中,替换 source_user 以及 target_user 上面写上你的数据库用户的名字。接下来,替换 source_password 以及 target_password 使用您的密码。对于 source_address 以及 target_address,输入源数据库服务器和目标数据库服务器的 IP 地址。

    要连接到版本 19 及更高版本的 Oracle 数据库,请在 AddSource 命令中使用 Oracle 服务名称。为此,请添加 -connectionType 参数并将其值设置为 'basic_service_name'。然后,添加 -servicename 参数并将其值设置为 Oracle 服务名称。有关该AddSource命令的更多信息,请参阅《AWS Schema Conversion Tool CLI参考》。

  5. 创建新的 AWS SCT 映射规则,该规则定义每个源数据库架构的目标数据库引擎。有关更多信息,请参阅 映射中的数据类型 AWS Schema Conversion Tool

    以下代码示例创建了一个包含所有源 Oracle 数据库架构的映射规则,并将 Postgre 定义SQL为迁移目标。

    AddServerMapping -sourceTreePath: 'Servers.ORACLE' -targetTreePath: 'Servers.POSTGRESQL' /
  6. 添加有关您的 Informatica 源文件和目标XML文件的连接信息。

    以下代码示例添加了C:\Informatica_sourceC:\Informatica_target文件夹中的 Informatica XML 文件。

    AddSource -name: 'INFA_SOURCE' -vendor: 'INFORMATICA' -mappingsFolder: 'C:\Informatica_source' / AddTarget -name: 'INFA_TARGET' -vendor: 'INFORMATICA' -mappingsFolder: 'C:\Informatica_target' /
  7. 创建另一条映射规则,为您的源 Informatica XML 文件定义目标 Informatica 文件。XML

    以下代码示例创建了一个映射规则,其中包含前面示例中使用的源文件和目标 Informatica XML 文件。

    AddServerMapping -sourceTreePath: 'ETL.INFA_SOURCE' -targetTreePath: 'ETL.INFA_TARGET' /
  8. 指定与 Informatica 连接名称引用对应的数据库服务器连接。

    以下代码示例配置了 Informatica ETL 脚本从源数据库到新目标数据库的重定向。此示例还配置了连接变量。

    ConfigureInformaticaConnectionsRedirect -treePath: 'ETL.INFA_SOURCE.Files' -connections: '{ "ConnectionNames": [ { "name": "Oracle_src", "newName": "postgres", "treePath": "Servers.ORACLE" } ] "ConnectionVariables": [ { "name": "$Source", "treePath": "Servers.ORACLE" } ] }' /
  9. 转换您的源数据库架构和 Informatica 脚本ETL。

    以下代码示例转换您的所有源 Oracle 数据库架构和 Informatica 文件XML。

    Convert -treePath: 'Servers.ORACLE.Schemas.%' / Convert -treePath: 'ETL.INFA_SOURCE.Files' /
  10. (可选)保存转换项目和评估报告。该报告包括转换操作项以及有关如何解决每个问题的建议。

    以下代码示例保存您的项目,并将评估报告的副本另存为C:\Temp文件夹中的PDF文件。

    SaveProject / SaveReportPDF -treePath: 'ETL.INFA_SOURCE.Files' -file:'C:\Temp\Informatica.pdf' /
  11. 保存转换后的 Informatica 文件。XML

    以下代码示例将转换后的XML文件保存在C:\Temp文件夹中。您在上一步中使用 AddTarget 命令指定了此文件夹。

    SaveTargetInformaticaXML -treePath: 'ETL.INFA_TARGET.Files' /
  12. 将您的脚本另存为.scts文件,然后使用中的RunSCTBatch命令运行它 AWS SCT CLI。有关更多信息,请参阅 AWS SCT CLI脚本模式

    以下示例运行 C:\Temp 文件夹中的 Informatica.scts 脚本。您可以在 Windows 中使用这个示例。

    RunSCTBatch.cmd --pathtoscts "C:\Temp\Informatica.scts"

    如果您编辑源代码 Informatica ETL 脚本,请再次运行该 AWS SCT CLI脚本。