Sqoop导入导出功能介绍

Sqoop是关系型数据库(MySQL/Postgresql)和HDFS(Hive/HDFS文件)进行交互的一个工具.

Sqoop import 就是从关系型数据库导入到基于HDFS的数据库.

Sqoop export 就是从基于HDFS的数据库导出到关系型数据库.

Note: Sqoop export 是直接把导出HDFS文件. 如果创建分区表, 那么每个分区表都有对应的HDFS文件, 每个文件都要导出一次.

举一个从Postgresql导入Hive的Demo:

sqoop import \
"-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
--connect jdbc:postgresql://192.168.0.222:5432/ocm?currentSchema=sftm_km \
--username postgres \
--password password \
--table dmsdatasearch_v1_getdmssalesorderinfos_head \
--hive-database ods_sftm \
--hive-table ods_orders_dt_head \
--hive-import \
--fields-terminated-by '\001' \
--hive-drop-import-delims  \
--lines-terminated-by '\n' \
--delete-target-dir \
-- -Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--split-by split_id \
-m 5

举一个从Postgresql导入Hive的Demo:

sqoop export \
--connect jdbc:postgresql://192.168.0.222:5432/ocm?currentSchema=sftm_km \
--username postgres \
--password password \
--table order_dt_head \
--export-dir "hdfs://namenode.gaialab.ai:8020/warehouse/tablespace/managed/hive/ods_sftm.db/ods_orders_dt_head_tmp/*" \
--input-fields-terminated-by '\001' \
--lines-terminated-by '\n' \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
-m 5

sqoop常用命令:

命令描述
--connect <jdbc-uri>连接字符串
--helpshow各个命令的含义
--password <password>数据库密码
--username <username>数据库账号
--delete-target-dir 导入数据前删除目标路径
-e,--query <statement>可以用sql语句指定需要导入的数据
-m,--num-mappers <n>并行多少个任务执行导入
--split-by <column-name>如果-m > 1, 则需要指定该列用于导入
--table <table-name>

需要导入的表

--target-dir <dir>目标路径
--check-column <column>Source column to check for incremental change(增量导入相关)
--incremental <import-type>Define an incremental import of type 'append' or 'lastmodified'(增量导入相关)
--last-value <value>Last imported value in the incremental check column(增量导入相关)
--create-hive-table创建hive表, 结构和导入表一样, 但是类型都是string.如果创建的表存在, 就会报错.
--external-table-dir <hdfs path>hive外部表HDFS路径
--hive-database <database-name>Hive数据库
--hive-import数据导入hive中而不是hdfs(其实导入hive本质也是hdfs)
--hive-overwrite覆写hive表
--hive-table <table-name>hive 表名称

篇幅所限, 不能列出所有的命令行. 

大家可以通过sqoop help查看.

也可以通过sqoop官网查看.

sqoop命令行整理:https://github.com/MichaelZys/hello-word/blob/master/sqoop.xlsx

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值