sqoop同步操作实例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guicaizhou/article/details/82013160

1、自由模式查询同步数据  (如下)
bin/sqoop import \
--connect jdbc:mysql://xxxxxurl、端口、库名xxxxxx?tinyInt1isBit=false \
--username 用户名 \
--password 密码 \
--null-string '\\N' \
--null-non-string '\\N' \
--query "select * from tablename where create_time='2018-08-22 17:17:56' and \$CONDITIONS" \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-drop-import-delims \
--split-by id \
--target-dir /user/hive/warehouse/test.db/test_zhouhl


2、全量同步   (如下)
bin/sqoop import \
--connect jdbc:mysql://xxxxxurl、端口、库名xxxxxx?tinyInt1isBit=false \
--username 用户名 \
--password 密码 \
--null-string '\\N' \
--null-non-string '\\N' \
--table 具体的mysql的tablename \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-drop-import-delims \
--where "DATE_FORMAT(create_time,'%Y%m%d')<${yyyyMMdd}" \
--num-mappers 1 \
--hive-import \
--hive-database test \
--hive-table test_zhouhl

3、增量同步   (如下)
bin/sqoop import \
--connect jdbc:mysql://xxxxxurl、端口、库名xxxxxx?tinyInt1isBit=false \
--username 用户名 \
--password 密码 \
--null-string '\\N' \
--null-non-string '\\N' \
--table 具体的mysql的tablename \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-drop-import-delims \
--where "DATE_FORMAT(create_time,'%Y%m%d')=${yyyyMMdd-1d}" \
--num-mappers 1 \
--hive-import \
--hive-database test \
--hive-table test_zhouhl

4、同步为orc格式

bin/sqoop import \
--connect jdbc:mysql://xxxxxurl、端口、库名xxxxxx?tinyInt1isBit=false \
--username 用户名 \
--password 密码 \
--table bw_person_info  \
--where "create_time is null or DATE_FORMAT(create_time,'%Y%m%d')<${yyyyMMdd}"  \
--num-mappers 1  \
--create-hcatalog-table   \         ---- 同步增量是这句要删除
--hcatalog-database ods   \
--hcatalog-table ods_bdw_bw_person_info  \
--hcatalog-storage-stanza "stored as orc"

具体的sqoop里面的属性可以参考:
https://blog.csdn.net/liangzelei/article/details/80305988
https://blog.csdn.net/zhifeiyu2008/article/details/50130033
https://blog.csdn.net/myrainblues/article/details/43673129

$CONDITIONS关键字解释可以参考:https://www.cnblogs.com/kouryoushine/p/7814312.html

关于 -D mapred.xxxxx 可以参考:

https://blog.csdn.net/jiangshouzhuang/article/details/51496375

如:-D mapred.job.queue.name=root.myqueue \         使用的队列
-D mapred.task.timeout=0 \     超时时间设置(毫秒),0表示不超时

猜你喜欢

转载自blog.csdn.net/guicaizhou/article/details/82013160