其他分享
首页 > 其他分享> > sqoop脚本将hive数据导入postgres中

sqoop脚本将hive数据导入postgres中

作者:互联网

将hive的ads层数据导入到数据库PostgreSQL脚本

#!/usr/bin/env bash
:<<!
des系统ads层数据 导入PG的 TCT_DW 库 相关表:
  ads_cockpit_indicvalue(指标结果集)
!


# 定义变量名字
#以下信息为虚构,目的是可以更好的了解命令的写法。需要修改为自己机器的适配信息
hive="/usr/bin/hive"
#分隔符
field_segmentation="\001"
source_username="postgres"
source_pwd="123456"
source_ip="192.168.10.102"
source_port="5112"
source_pgsqldb="my_test"
external_storage_path="/user/hive/warehouse/desp_production/ads"

# 日期格式为 yy-MM-dd 2020-01-01
if [ -n "$1" ] ;then
    do_day=$1
else
    do_day=`date -d "-1 day" +%F`
#    do_day=`date +%F`
fi

# 1、将 ads_cockpit_indicvalue 表导入PG的 TCT_DW 库的 ads_bi_indicvalue(指标结果集)
/usr/bin/sqoop export \
--connect jdbc:postgresql://$source_ip:$source_port/$source_pgsqldb \
--username $source_username --password $source_pwd \
--table ads_bi_indicvalue \
--export-dir $external_storage_path/ads_cockpit_indicvalue/dt=$do_day/ \
--fields-terminated-by $field_segmentation \
--columns "indode,incdate,indialue,indievalue" \  #此处字段顺序必须相同
--update-mode allowinsert \
--m 1 \
--input-null-string '\\N' --input-null-non-string '\\N'

if [ $? -eq 0 ];then
    echo "============<向PG的TCT_DW数据库中 ads_bi_indicvalue(指标结果集)导入数据成功,时间为[`date "+%Y-%m-%d %H:%M:%S"`],开始向PG的TCT_DW数据库中 ads_qi_customer_complaints(顾客统计表)导入数据~>=========="
else
    echo "================<向postgresql数据库的 ads_bi_indicvalue(指标结果集)导入数据失败,时间为[`date "+%Y-%m-%d %H:%M:%S"`],请查看具体失败原因~>=============="
    exit 1
fi

标签:脚本,导入到,PostgreSQL,postgres,sqoop,hive
来源: https://blog.csdn.net/weixin_44616592/article/details/122921537