Sqoop|Sqoop 拉取数据流程

考虑离线数据定时从SQL Server 数据库,批量导入到hive数据表。具体执行流程如下:
【Sqoop|Sqoop 拉取数据流程】

Sqoop|Sqoop 拉取数据流程
文章图片
根据以上执行流程分别创建全量sqoop job,增量sqoop job
具体语句如下: 全量job

sqoop job--createxxx_whole--import--connect"jdbc:sqlserver://192.168.167.196:21499; database=xxx; username=xxx; password=xxx"--tablexxx--hive-import--hive-overwrite--hive-databasexxx--create-hive-table--hive-tablexxxx--m3--as-parquetfile--delete-target-dir
增量job
sqoop job--createodds_overunder_log_his_add--import--connect"jdbc:sqlserver://192.168.167.196:21499; database=xxx; username=xxx; password=xxx"--tablexxx--hive-import--hive-databasexxx--hive-tablexxx--m1--as-parquetfile--check-columnxxx--incrementalappend--last-value0
参考sqoop 各个命令文档:https://segmentfault.com/a/1190000002532293
说明: as-parquetfile:将文件保存为parquet格式,可以避免原始数据因存在各种特殊字符而出现换行的错误
m :1 调整m的值可以改善内存泄漏的问题,m越大,内存集中占用越小。同时m的值会影响生成文件的数量即m=生成文件的数量
增量导入时可以直接将文件导入到hive表所在的数据位置,这样可以避免sqoop接入hive引起的各种问题,但是要注意字段的类型。sqoop将数据导入到hive,与sqoop将数据导入到hdfs对应的字段类型可能不一致,这一点要特别注意
增量导入到hdfs语句
sqoop job--createxxx--import--connect"jdbc:sqlserver://192.168.167.196:21499; database=xxx; username=xxx; password=xxxx"--tablexxx--m1--as-parquetfile-target-dir/user/hive/warehouse/rds_s2odds.db/xxx--check-columnid--incrementalappend--last-value0

    推荐阅读