Azure sql database LKM将数据从Oracle 12c加载到Azure上的SQL数据库时出现问题

Azure sql database LKM将数据从Oracle 12c加载到Azure上的SQL数据库时出现问题,azure-sql-database,etl,oracle12c,oracle-data-integrator,Azure Sql Database,Etl,Oracle12c,Oracle Data Integrator,我尝试创建加载知识模块(LKM),它将数据(大约200-300万行)从位于Oracle(源服务)上的表传输到Azure(暂存区域)上的MS SQL数据库。所以我不能使用LKM SQL到AZURE,因为它太慢了 在手册中,我找到了使用最佳解决方案的信息: 5.1.3.3使用卸载/加载进行加载 当源结果集位于远程数据库服务器上时,另一种解决方案是使用代理 传输数据是将数据卸载到文件,然后加载该文件 进入集结区。在以下情况下,这通常是最有效的方法: 跨异构技术处理大量数据。对于 例如,您可以使用从Mi

我尝试创建加载知识模块(LKM),它将数据(大约200-300万行)从位于Oracle(源服务)上的表传输到Azure(暂存区域)上的MS SQL数据库。所以我不能使用LKM SQL到AZURE,因为它太慢了

在手册中,我找到了使用最佳解决方案的信息:

5.1.3.3使用卸载/加载进行加载

当源结果集位于远程数据库服务器上时,另一种解决方案是使用代理 传输数据是将数据卸载到文件,然后加载该文件 进入集结区。在以下情况下,这通常是最有效的方法: 跨异构技术处理大量数据。对于 例如,您可以使用从Microsoft SQL Server源卸载数据 bcp并使用SQL*Loader将此数据加载到Oracle临时区域。 遵循此策略的LKM步骤通常如下所示:

  • 在临时区域中拖放并创建加载表
  • 使用源数据库卸载实用程序(如Microsoft SQL Server)将数据从源卸载到临时平面文件 bcp或DB2卸载)或内置的OdiSqlUnload工具
  • 生成加载实用程序将临时文件加载到加载表所需的脚本
  • 执行适当的操作系统命令以启动加载并检查其返回代码
  • 可能会分析实用程序生成的任何日志文件以进行错误处理
  • 集成KM终止后,删除加载表,并删除临时文件
  • 使用卸载/加载策略时,数据 需要分阶段执行两次:一次在临时文件中,另一次在临时文件中 在加载表中,导致额外的磁盘空间使用和 潜在的效率问题。一个更有效的替代方案是 使用“卸载”和“加载”实用程序之间的管道。 不幸的是,并不是所有的操作系统都支持基于文件的 管道(FIFO)

    如果我正确理解上述注释(第2点、第3点、第4点),流程将如下所示:

    Source table(Source Service) -> Flat file(Staging Area on Azure) -> Azure table(Staging Area on Azure)
    
    我找到了OdiSqlUnload对象,我尝试将数据卸载到文件中,然后执行以下操作:

    我的设置:

    但它不起作用。我收到一个错误:

    Caused By: com.sunopsis.sql.SnpsMissingParametersException: ODI-30011: Parameter cannot be null:-DRIVER
    

    您能给我一些建议吗?如何处理它或类似的works示例?

    您的逻辑模式(POLIGON)是否通过执行时使用的上下文连接到物理模式?如果是,JDBC驱动程序是否在数据服务器(物理模式的父级)中正确设置?在操作员中查看任务时生成的代码是什么?提前感谢您的回复。我离开了这个方法,在“目标上的命令”中使用了“使用JDBC驱动程序的大容量复制”。