sqoop支援直接從hive表到rdbms表的匯出操作,也支援hdfs到rdbms表的操作,
當前需求是從hive中匯出資料到rdbms,有如下兩種方案:
從hive表到rdbms表的直接匯出:
該種方式效率較高,但是此時相當於直接在hive表與rdbms表的資料之間做全量、增量和更新對比,當hive表記錄較大時,或者rdbms有多個分割槽表時,無法做精細的控制,因此暫時不考慮該方案。
從hdfs到rdbms表的匯出:
該方式下需要先將資料從hive表匯出到hdfs,再從hdfs將資料匯入到rdbms。雖然比直接匯出多了一步操作,但是可以實現對資料的更精準的操作,特別是在從hive表匯出到hdfs時,可以進一步對資料進行字段篩選、字段加工、資料過濾操作,從而使得hdfs上的資料更「接近」或等於將來實際要匯入rdbms表的資料。在從hdfs匯入rdbms時,也是將乙個「小資料集」與目標表中的資料做對比,會提高匯出速度。
hive匯出到hdfs
./hive -e "insert overwrite directory '/user/sqoop/hive_export/xpydw/rpt_dispy_job_stats' row format delimited fields terminated by '\001' null defined as '' stored as textfile select date_id,status,owner,category_name,res_host,job_cnt,error_times from xpydw.rpt_dispy_job_stats"
hdfs匯出到mysql./sqoop export -m 1
--outdir /home/hadoop/bigdata/sqoop/outdir
--fields-terminated-by "\001"
--null-non-string ''
--null-string ''
--connect jdbc:mysql:
--username dwopr --password *
--table 'rpt_dispy_job_stats_sqp'
--columns date_id,status,owner,category_name,res_host,job_cnt,error_times
--export-dir /user/sqoop/hive_export/xpydw/rpt_dispy_job_stats
合併或替換目標表alter table rpt_dispy_job_stats rename to rpt_dispy_job_stats_sqp_tmp;
alter table rpt_dispy_job_stats_sqp rename to rpt_dispy_job_stats;
alter table rpt_dispy_job_stats_sqp_tmp rename to rpt_dispy_job_stats_sqp;
sqoop匯出筆記
發表 2016 10 14 瀏覽 755 sqoop匯出 connect,同匯入 username,同匯入 password,同匯入 columnsclass id,class name,teacher 注意 沒有被包含在 columns後面 例如class month,last mod ts 的這...
sqoop匯入匯出
sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...
sqoop匯出指令碼
sqoop匯出指令碼 bin sh source exitcodecheck.sh opts getparam incstart getparam inc start incend getparam inc end pg connection getparam jdbc str pg usernam...