【发布时间】:2017-04-16 16:45:19
【问题描述】:
环境:CDH 工具:Sqoop
版本:Sqoop 1.4.6-cdh5.8.0
目的:从MySQL数据库导入表
- 使用源数据子集创建配置单元表(例如 order_status = 'CLOSED')
- 使用 order_status not in ('CLOSED') 重新导入同一目录中的更多数据
结果: 1.使用命令完成目标1
sqoop import --connect jdbc:mysql://xxx:000/xxxx_db
--username=xxxx_dba --P
--warehouse-dir=/user/hive/warehouse/hex.db/
-m 1
--table orders --compression-codec=snappy
--hive-import --as-textfile --create-hive-table
--hive-table closed_orders
--hive-overwrite
--where "order_status='CLOSED'"
--compress
--columns "order_id, order_customer_id, order_status"
创建目录 /user/hive/warehouse/hex.db/closed_orders,其中包含一个数据文件和一个带有“CLOSED”订单的配置单元表。
- 我正在尝试重新导入更多数据 - 这次是
order_status not in ('CLOSED')-- 这次不创建 hive 表,只是将 order_status != 'CLOSED' 导入不同的目录 (open_orders)。
问题:它创建了一个目录/user/hive/warehouse/hex.db/open_orders/orders/.
2.a 如何将文件导入目录/user/hive/warehouse/hex.db/open_orders?
2.b 我们如何导入 order_status 的子集日期!= 'CLOSED' 即。将订单打开到步骤 1 中创建的同一目录中,即。 /user/hive/warehouse/hex.db/closed_orders ?
用于第 2 步的命令:
sqoop import --connect jdbc:mysql://xxxx:0000/retail_db
--username=xxxx_dba --P --warehouse-dir=/user/hive/warehouse/hex.db/ -m 1
--table orders --compression-codec=snappy --hive-import
--as-textfile --hive-table open_orders
--where "order_status not in ('CLOSED')"
--compress --columns "order_id, order_customer_id, order_status"
2.3 --append 命令出错,我试图将打开的订单导入从步骤 1 /user/hive/warehouse/hex.db/closed_orders 创建的目录中
17/04/15 14:24:22 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
17/04/15 14:24:22 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
Append mode for hive imports is not yet supported. Please remove the parameter --append-mode
【问题讨论】:
标签: sqoop