1.實現過程包括兩步。
第一步將mysql的資料通過條件語句增量匯入匯入到hive的乙個臨時表中。
第二步將臨時表中的資料通過動態分割槽的方式匯入到最終的結果表。
增量匯入hive臨時表(可以不使用分割槽表,需要設定了資源佇列):
sqoop import
-d mapred.job.queue.name=root.zm_yarn_pool.production
-dorg.apache.sqoop.splitter.allow_text_splitter=true
-m 8
–connect 「jdbc:mysql://mys
qlip
//
mysqli
p/?tinyint1isbit=false」
–username 「"
–password "*********」
–target-dir /user/admin/rank/ods_call_logs_from_tinet
–mapreduce-job-name sqoop_task_daily
–hive-import
–hive-overwrite
–hive-database 「ods」
–hive-table 「ods_call_logs_from_tinet」
–hive-drop-import-delims
–split-by 『created_at』
–hive-partition-key 『pt』
–hive-partition-value 「2019-05-27」
–query 『select * from call_logs_from_tinet where created_at > 「2019-05-26」 and $conditions』
–delete-target-dir
–null-string 『\n』
–null-non-string 『\n』
-z臨時表匯入到最終的動態結果表.。(設定了資源佇列)
hive 執行下面語句。
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.merge.mapredfiles=true;
set mapreduce.job.queuename=root.zm_yarn_pool.production;
use test;
insert overwrite table test.ods_call_logs_from_tinet partition(pk_year,pk_month,pk_day)
select id,client_no,client_mobile,status,bridge_duration,start_time,end_time,created_at,updated_at,origin,custom_mobile,record_url,cust_callee_clid,stu_user_id,sel_user_id,sel_team_id,stu_recycle,unique_id,substr(created_at, 1, 4),substr(created_at, 1, 7),substr(created_at, 1, 10)
from ods.ods_call_logs_from_tinet where pt '2019-05-27 ';
sqoop 增量匯入
在隨著系統的執行,每天都會產生新的資料,在進行資料匯入的時候,由於之前已經匯入過資料,所以在產生新的資料的時候,就可以直接在之前導過的資料的基礎上繼續匯入資料,沒有必要之前的所有資料都重新匯入一遍 增量匯入資料的使用 以上為增量匯入的引數check column 檢查列,檢查資料庫表中的索引列,一般...
sqoop增量匯入
執行以下指令先將我們之前的資料匯入 sqoop import connect jdbc mysql master 3306 test username hive password 123456 table customer m 1使用hdfs dfs cat檢視生成的資料檔案,發現資料已經匯入.然後...
sqoop增量資料匯入
1.使用sqoop按欄位增長將mysql中資料抽取到hdfs 2.使用sqoop按時間增長將mysql中資料抽取到hdfs jps start all.sh2.開啟mysql服務。sudo service mysql start登入mysql mysql u root p3.在mysql庫中,建立s...