2013-07-05 87 views
1

我需要使用Odi 11.1.1.6.0將Hive表映射到Oracle Db。將Hive數據加載到Oracle Db

我創建了兩種技術的物理和邏輯模式。 (連接測試OK) 我有一個物理和邏輯odi代理,使用Http和端口20910.(連接測試是好的)

我用RKM進行反向工程的兩個表(表Hive和相應的Oracle表具有相同的字段)。

之後,我創建了一個帶有接口的項目來測試映射。 我對源Hive表和目標Oracle表使用拖放操作。 之後,我使用Hive表的每個字段拖放到相應的Oracle表。 兩個表中每個字段的維數/類型相同。 我控制接口的流量,這隻使用IKM File-Hive到Oracle(OLH)。

當我開始在接口方面,會議開始,但有此錯誤:

ODI-1226: Step Hive_to_Oracle_test fails after 1 attempt(s). 
ODI-1240: Flow Hive_to_Oracle_test fails while performing a Integration operation. This flow loads target table TEST_TABLE. 
Caused By: com.sunopsis.dwg.function.SnpsFunctionBaseException: ODI-30038: OS command returned 4. 
    at com.sunopsis.dwg.tools.OSCommand.actionExecute(OSCommand.java:294) 
    at com.sunopsis.dwg.function.SnpsFunctionBase.execute(SnpsFunctionBase.java:276) 
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3437) 
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1509) 
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:44) 
    at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:1) 
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50) 
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913) 
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625) 
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:558) 
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464) 
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093) 
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366) 
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216) 
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300) 
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292) 
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855) 
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126) 
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82) 
    at java.lang.Thread.run(Thread.java:662) 

hive_to_oracle_test是我的界面,TEST_TABLE是我的Oracle表。

任何想法?

回答