我正在使用 sqoop 将数据导入 hadoop。我正在使用以下命令将表导入 hadoop。
sqoop import \
--connect jdbc:oracle:thin:@172.16.XXX.XXX:15XX:TABS \
--username user \
--password pass \
--table TABS.ADM_LOG0009 \
--target-dir /hadoop/hptabs/recharge
现在我有另一个名为 IVM_IMAGE 的表,它是一个分区表。我只想将 3 个分区从 Oracle 导入到 hadoop。请帮助我为此编写命令。
- Oracle 表名:TABS.IVM_IMAGE
- 分区:LESS20161101、LESS20161001、LESS20160901
分区键:BILLDATE
HIVE 表名:hptabs.IVM_IMAGE
表格属性:
PARTITIONED BY (BILLDATE TIMESTAMP) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'hdfs:/hadoop/hptabs/usage';
最佳答案
要导入特定分区,我需要在我的 sqoop 命令中添加“-Doraoop.import.partitions='"LESS20161101","LESS20161001","LESS20160901",'"
sqoop import \
-Doraoop.disabled=false \
-Doraoop.import.partitions='"LESS20161101","LESS20161001","LESS20160901",' \
--connect jdbc:oracle:thin:@172.16.XXX.XXX:15XX:TABS \
--username user \
--password password \
--table TABS.IVM_IMAGE \
--target-dir /hadoop/hptabs/usage/ \
-m 1
关于oracle - 将表中的特定分区导入 hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957853/