日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

hive sqoop 分区导入_使用sqoop将hive分区表的数据导入到mysql的解决方案:shell脚本循环...

發布時間:2025/7/14 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive sqoop 分区导入_使用sqoop将hive分区表的数据导入到mysql的解决方案:shell脚本循环... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方案1:使用shell腳本進行do while循環,挨個分區輸出。從開始的分區一直循環到結束分區即可。本例子為月,若需日,改為%Y-%m-%d即可,-1month改為-1day即可

partition_month=`date -d "$start_date" +"%Y-%m"`

partition_month_end=`date -d "$end_date" +"%Y-%m"`

while [[ ${partition_month} < $partition_month_end ]]

do

sqoop eval --connect "jdbc:mysql://。。。。。。。。。。。

--password "。。。。。。

--input-null-string '\\N' --input-null-non-string '\\N' \

--table 表的名字\

--export-dir hdfs://。。。/hive/warehouse/路徑/表名字/分區字段=$partition_month \

--input-fields-terminated-by '\001';

partition_month=`date -d "$partition_month -1 month" +"%Y-%m"`

echo "partition_month:"${partition_month}

done;

方案2:把要同步的數據拿出來,建立臨時表,從臨時表同步數據過去

具體例子:

if [ ! -n "$1" ] ;then

start_date=`date --date='30 days ago' +%Y-%m-%d`

echo "start_date: "${start_date}

elif [ `date -d "$1" +%s` -lt `date -d "2018-01-01" +%s` ];

then

start_date='2018-01-01'

else

start_date=`date -d "$1" +%Y-%m-%d`

fi

if [ ! -n "${start_date}" ];

then

start_date=`date --date='30 days ago' +%Y-%m-%d`

fi

echo "start_date: "${start_date}

if [ ! -n "$2" ] ;then

end_date=`date --date='1 days ago' +%Y-%m-%d`

echo "end_date: "${end_date}

elif [ `date -d "$2" +%s` -lt `date -d "2019-01-01" +%s` ];

then

end_date=`date --date='1 days ago' +%Y-%m-%d`

else

end_date=`date -d "$2" +%Y-%m-%d`

fi

if [ ! -n "${end_date}" ];

then

end_date=`date --date='1 days ago' +%Y-%m-%d`

fi

echo "end_date: "${end_date}

partition_month=`date -d "$start_date" +"%Y-%m"`

partition_month_end=`date -d "$end_date" +"%Y-%m"`

echo "partition_month:"${partition_month}

echo "partition_month_end:"${partition_month_end}

while [[ ${partition_month} < $partition_month_end ]]

do

sqoop eval --connect "jdbc:mysql://。。。。。。。。。。。

--password "。。。。。。

--input-null-string '\\N' --input-null-non-string '\\N' \

--table 表的名字\

--export-dir hdfs://。。。/hive/warehouse/app/。。。。/分區字段=$partition_month \

--input-fields-terminated-by '\001';

partition_month=`date -d "$partition_month -1 month" +"%Y-%m"`

echo "partition_month:"${partition_month}

done;

總結

以上是生活随笔為你收集整理的hive sqoop 分区导入_使用sqoop将hive分区表的数据导入到mysql的解决方案:shell脚本循环...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。