是否可以并行运行表到表映射方案(多线程) 我们有一个巨大的表,我们已经在映射上创建了表映射和场景。 我们也从loadplan执行它。 但是我有办法在多个线程中运行场景以使数据传输更快。 我正在使用groovy来编写所有这些任务。 如果我在groovy中编写脚本会更好。
答案 0 :(得分:1)
具有并行步骤的加载计划或具有异步模式的方案的包将用于并行性部分。
根据使用的KM,您可能遇到的问题是所有映射中的临时表都将使用相同的名称。为避免这种情况,请选择映射的“物理”选项卡中的“使用唯一临时对象名称”复选框。它会为每次执行生成这些对象的不同名称。
答案 1 :(得分:0)
在ODI方面,您可能需要对映射进行一些修改以不加载任何重复数据。我们有一个类似的流程,我们在数字键上使用modula函数将源数据拆分为分区。然后将这些数据加载到目标中。
要以多线程方式运行此接口,我们有一个包含循环的包,该循环使用MODULO_VALUE变量以异步方式执行此方案。
对于加载数据,我们使用的是oracle sqlloader实用程序,它能够以并行方式将数据加载到一个目标表中。我不确定数据泵实用程序是否也具备此功能。但我知道如果您尝试通过SQL加载数据作为多线程方法,则会出现ORA-00054: resource busy and acquire with NOWAIT specified
错误。
如您所见,此流程中不包含任何Groovy代码,所有代码均由ODI映射,包和KM处理。我希望这会有所帮助。