我mamage连接到数据库并将数据从oracle导入到文件或HIVE。 但现在,我想在oracle上使用sqoop将查询中的数据导入Hive。
我之前使用过以下内容:
sqoop import --connect 'jdbc:oracle:thin:@server1:1521:ICIS' -P -- username JAPHONIE --query 'SELECT * FROM CONTRACTS INNER JOIN CONTRACT_VERSIONS ON CV_CON_NUMBER = CON_NUMBER WHERE $CONDITIONS' --target-dir BOUH --split-by CON_NUMBER --where '1=1'
这个在我的文件夹BOUH中创建我的数据,这一点没有问题。
但是当我使用以下内容时:
sqoop import --connect 'jdbc:oracle:thin:@server1:1521:ICIS' -P --username JAPHONIE --query 'SELECT * FROM CONTRACTS INNER JOIN CONTRACT_VERSIONS ON CV_CON_NUMBER = CON_NUMBER WHERE $CONDITIONS' --target-dir BOUH --split-by CON_NUMBER --where '1=1' --hive-import --hive-table BOUH
我的BOUH文件夹只包含_SUCCESS,没有数据,并且HIVE中的表已创建但是空... 我不明白问题来自哪里。我也没有任何错误信息......
你知道吗? 编辑:我设法加载我的表,首先,执行第二个查询,创建没有数据的表,然后删除空文件夹并执行第一个查询,正确提取数据...但我会喜欢在一个查询中做同样的事情......答案 0 :(得分:0)
您导入的数据将保存在/ user / hive / warehouse下,因为它是一个内部配置单元表,它不会保存在您在--target-dir中提到的BOUH文件夹中。你的脚本是正确的,你应该能够在hive表中看到数据,因为你说你无法看到数据,请查看/ user / hive / warehouse文件夹一次。如果您无法查看数据,请在此处粘贴sqoop日志。