回写到 EPM 集成代理的实践技巧

本主题介绍使用 EPM 集成代理将数据从 Oracle Enterprise Performance Management Cloud 应用程序加载到内部部署数据仓库中所需的步骤。可使用两种不同的方法加载数据:

  1. 分别按“应用程序”选项中的表名和“应用程序维”中的表列加载数据。(EPM 集成代理会自动生成插入查询)。

  2. 使用自定义 SQL 插入查询按表名和表列加载数据。

要使用 EPM 集成代理将数据从 EPM 云应用程序加载到内部部署数据仓库中:

  1. 创建用于存放导出数据的 RDBMS 表。

    在此示例中,名为 VISION_DATA 的表包含 Vision 应用程序的所有维和另外两个名为 BATCH_ID 和 DATA_AMOUNT 的列。BATCH_ID 列用于填充来自 EPM 云数据集成进程 ID。DATA_AMOUNT 列用于填充“金额”列。

    图中显示了 RDBMS 表。

  2. 将表内容导出到 CSV 文件用于应用程序注册,该文件包含列名称的标题记录。

    图中显示了“导出向导”

    CSV 输出文件看起来如下所示:

    图中显示了 CSV 输出文件。

    假定这些列是目标表列的确切表示。将根据列名称生成 SQL 插入语句。

  3. 依次导航到数据交换数据集成选项卡和操作菜单,然后选择应用程序

    图中显示了从“操作”菜单中选择“应用程序”选项。

  4. 应用程序页上,通过完成以下操作来注册数据导出应用程序,以便执行回写过程。

    1. 类别中,选择数据导出

    2. 类型中,选择数据导出到内部部署数据库

    3. 上传并选择在步骤 2 中创建的文件。

    图中显示了“创建应用程序”页。

    将创建“数据导出”应用程序,并且应用程序的名称与用于注册应用程序的文件名匹配。

    图中显示了“应用程序”页。

  5. 应用程序页上,单击应用程序右侧的 图中显示了“选择”图标。,然后选择应用程序详细信息

  6. 选择选项卡。

    应用程序注册过程会自动为 CSV 文件中的所有列分配“常规”维分类,并且还会相应地分配“数据表列名称”。

    图中显示了“应用程序详细信息”的“维”选项卡。

  7. 帐户金额期间列进行相应分类:

    • 如果某列映射到导入格式中的源列,并且源字段始终有值,则将该列分类为帐户。在以下示例中,"ACCOUNT" 列分类为“帐户”。此维的“数据表列名称”分类为 "ACCOUNT"。

    • DATA_AMOUNT 分类为“金额”,并将数据表列名称保留为空。

    • YEAR 分类为“年”,并将数据表列名称保留为空。

    • PERIOD 分类为“期间”,并将数据表列名称保留为空。

      图中显示了“应用程序详细信息”中的“维”选项卡。

  8. 应用程序页中,单击应用程序右侧的 图中显示了“选择”图标。,然后选择应用程序详细信息

  9. 选择选项选项卡。

  10. 指定表名JDBC URL和数据库凭据。

    插入查询字段保留为空。如果未指定“插入查询”,则假定应用程序维完全一致地表示目标数据库列的名称。应用程序维应包含在回写过程中需要填充的目标表中每个列。否则集成会失败。

    图中显示了“应用程序详细信息”中的“选项”选项卡

  11. 在源应用程序和目标 EPM 云应用程序之间创建集成。

    以下示例显示了一个源 "Vision Planning" 应用程序和一个名为 "ORACLE_DWH" 的目标数据导出应用程序。

    图中显示了“创建集成”页。

  12. 映射所有列,并将 "copysource()" 用作除“金额”和 "BATCH_ID" 以外的所有维的目标表达式。

    在成员映射中,将一个表达式应用于 "BATCH_ID"。“金额”维没有目标表达式。

    图中显示了“创建集成”页上的映射维。

  13. 映射成员中,使用 TDATASEG_T 表的 LOADID 列为 BATCH_ID 创建 #SQL 映射。

    图中显示了使用 LOADID 列为 BATCH_ID 创建 #SQL 映射

    图中显示了映射的 BATCH_ID 维

  14. 依次选择选项筛选器,根据需要指定任何源 Planning 应用程序筛选器。

    在以下示例中,未选择任何筛选器,因为 Vision 应用程序的所有数据(起始/结束期间范围的数据)都导入并导出到目标应用程序。

    图中显示了“选项”页的“筛选器”选项卡。

  15. 依次选择选项源多维数据集,指定源多维数据集(规划类型)然后在期间映射类型中,指定默认。然后单击保存,如下所示。

    图中显示了“选项”页的“选项”选项卡。

  16. 在可以访问目标数据库的内部部署主机上启动 EPM 集成代理。

    在内部部署主机上启动代理。

  17. 数据集成中,在给定期间范围内运行集成。

    在以下示例中,选择了 1 月 16 日到 12 月 16 日这一期间:

    图中显示了“运行集成”页。

  18. 观察内部部署代理从 EPM 云提取作业详细信息,等待该过程完成。

    图中显示了代理中的作业详细信息。

    图中显示了在数据集成中运行作业时的作业详细信息。

  19. 进程详细信息中,打开日志文件,并注意查看导出的数据记录总数和插入查询语句:

    图中显示了“进程详细信息”中的日志文件。

  20. 验证记录已成功导出到目标数据库中。

    请注意,云进程 ID 已成功映射到数据库中的 BATCH_ID 列。

    图中显示了目标数据库。

  21. EPM 云中使用插入查询按名称 VISION_DATA_2 将相同数据导出到另一个表。

    通过 INSERT 查询,您可以使用复杂的 SQL 表达式映射数据库的列。SQL 表达式针对目标数据库执行,而不是针对云数据库 (Oracle) 执行。这样,您就可以灵活地使用特定于数据库类型(例如 MS SQL Server、MYSQ 等)的 SQL 表达式。您还可以使用子查询基于另一个表来推导列值。

    在以下示例中:

    • BATCH_ID 重命名为:BATCH_NUMBER。

    • ENTITY 重命名为:ORGANIZATION。

    • 删除了 YEAR 和 PERIOD 列,并创建了 PERIOD_NAME 列以在同一列中填充年和期间。

    • 减少了 DATA_AMOUNT 的小数位数,以仅存储 2 位小数。

    您无需使用 CSV 文件注册应用程序,因为您已经使用另一组列名称注册了应用程序。使用 SQL 插入查询的优势在于,您可以使用已注册的应用程序的列名称通过 SQL 插入查询映射实际列名称。因此,应用程序包含的维可以与目标数据库的实际列名称完全不同。应用程序维还可以仅表示目标数据库表中填充的一部分实际列。

    有关详细信息,请参阅:使用自定义 INSERT 查询进行回写

    INSERT 查询中的值通过将目标维名称括在 ~~(波形符)内来表示。例如,如果数据导出应用程序中名称为 ABC 的维需要映射到数据库中的 DEF 列,则将 DEF 列的值指定为 ~ABC~

  22. 使用以下值创建新查询:

    1. 将 BATCH_ID 重新映射到 BATCH_NUMBER。

    2. 使用前缀 Acc,例如用于 ACCOUNT。

    3. 使用前缀 Org,例如用于 ORGANISATION。

    4. 将期间和年串联为 PERIOD_NAME。

    5. 使用前缀 Prd,例如用于 PRODUCT。

    6. 将 DATA_AMOUNT 舍入到 2 位小数。

    图中显示了“创建查询”页。

  23. 应用程序详细信息中,指定已注册的数据导出应用程序中的查询名称,并将表名保留为空。

    图中显示了“应用程序详细信息”页。

  24. 再次对某个期间范围运行集成流程,并等待该流程成功完成。

    图中显示了“运行集成”页。

  25. 验证是否已正确填充目标表。

    图中显示了填充的目标数据库。