考慮離線數(shù)據(jù)定時(shí)從SQL Server 數(shù)據(jù)庫(kù)胰伍,批量導(dǎo)入到hive數(shù)據(jù)表。具體執(zhí)行流程如下:
根據(jù)以上執(zhí)行流程分別創(chuàng)建全量sqoop job衡便,增量sqoop job
具體語(yǔ)句如下:
全量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 各個(gè)命令文檔:https://segmentfault.com/a/1190000002532293
說明:
as-parquetfile:將文件保存為parquet格式献起,可以避免原始數(shù)據(jù)因存在各種特殊字符而出現(xiàn)換行的錯(cuò)誤
m :1 調(diào)整m的值可以改善內(nèi)存泄漏的問題,m越大镣陕,內(nèi)存集中占用越小谴餐。同時(shí)m的值會(huì)影響生成文件的數(shù)量即m=生成文件的數(shù)量
增量導(dǎo)入時(shí)可以直接將文件導(dǎo)入到hive表所在的數(shù)據(jù)位置,這樣可以避免sqoop接入hive引起的各種問題呆抑,但是要注意字段的類型岂嗓。sqoop將數(shù)據(jù)導(dǎo)入到hive,與sqoop將數(shù)據(jù)導(dǎo)入到hdfs對(duì)應(yīng)的字段類型可能不一致鹊碍,這一點(diǎn)要特別注意
增量導(dǎo)入到hdfs語(yǔ)句
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