sqoop將hive資料匯出到關係型資料庫

2022-09-12 09:36:11 字數 1507 閱讀 6936

以下資訊,只要根據自己的資料庫的相應資訊修改以下,即可,sqoop其實就是很簡單的,一般hive資料儲存為列式儲存,所以要提前把要寫到關係型資料庫的資料寫到乙個text字尾的表裡,然後才能匯出到關係型資料庫中。

還要特別注意寫到關係型資料庫中資料的格式要一一對應

#pg庫相關資訊

database_connection="jdbc:postgresql:"

database_username="user"

database_password="pass"

databasetablename="test2"

databasecolums="a1,a2,a3"

#將資料寫到乙個臨時表中

hive -v -e "

set mapred.job.queue.name=$;

use hive_db_name;

insert overwrite table test3

select a1,a2,a3 from test1 where y='2019' and m='11' and d='29';

";if [[ $? != 0 ]]; then

print_log "hive執行失敗!"

exit 1

fi#hdfs路徑

exporthdfspath="hdfs://hdfs01-shyp-cx/hive_db_name/test3"

sqoop export -dmapred.job.queue.name=$queuename \ //mr的佇列

--connect $database_connection \ //關係型資料庫的連線

--username $database_username \ //關係型資料庫的使用者名稱

--password $database_password \ //關係型資料的密碼

--export-dir $exporthdfspath \ //hive表的hdfs路徑

--verbose \

--table $databasetablename \ //要寫到的表名

--columns $databasecolums \ //要寫過去的欄位名

--input-fields-terminated-by '\001' \ //hive表的分割符,注意表一定是行式儲存的表才能匯出,一般是text字尾的表

--input-lines-terminated-by '\n' \ //每行的分割符

--input-null-string '\\n' \ //空值處理

--input-null-non-string '\\n' //空值處理

if [[ $? != 0 ]]; then

print_log "sqoop匯出失敗!"

exit 1

fi

將資料匯出到excel

using system using system.data.oledb using system.io using system.windows.forms namespace postgraduateclient public sqltoexcel string tablename public...

將資料匯出到excel

前台jsp呼叫 function outexe action 將資料匯出到excel action value lpm grpinfoexl public string lpmexl throws exception else if g.getregtime null else rows 當stri...

sqoop全增量匯出到mysql

全量匯出 hql示例 insert overwrite directory user root export test row format delimited fields terminated by stored as textfile select f1,f2,f3 from sqoop指令碼...