ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-04-09

2021-04-09 12:33:15  阅读:166  来源: 互联网

标签:sqoop hcatalog 04 -- 09 db hive 2021 tbl


mysql同步sqoop通用脚本

#!/bin/bash

# 要同步的表名 db.tbl
table_name=$1

# 表所在数据库url host:port
url=$2

#登录mysql的用户密码
username=$3
password=$4

# 同步昨天的数据
p_d=$(date -d "-1 days"  +%Y-%m-%d)

# 日志存放目录
log="/tmp/chVmibiSUcyaqvWY/$p_d"

# 数据同步base目录
base="/batch_data_sync/mysql"

# 执行sqoop任务的目录
sqoop_exec_dir="$base/sqoop_exec"

if [ ! -d $sqoop_exec_dir  ];then
    mkdir -p $sqoop_exec_dir
fi

cd $sqoop_exec_dir

    echo $table_name

    dt=(${table_name//./ })
    db=${dt[0]}
    tbl=${dt[1]}
    ts=$(date +%s%3N)
    task_dir="/tmp/chVmibiSUcyaqvWY/$sqoop_exec_dir/"$db"_"$tbl"_"$p_d"_"$ts

    mkdir -p $task_dir
    cd $task_dir
    echo "start $db $tbl $(pwd)" >> $log.log

    hive_db="ods_"$db
    hive_tbl=$tbl
    
    hive -e "CREATE DATABASE IF NOT EXISTS $hive_db;desc $hive_db.$hive_tbl;" 2>&1 | grep 'Table not found'
    rtstatus=$?
    echo $rtstatus

    if [ $rtstatus -ne 0 ]; then
        echo "$hive_db.$hive_tbl表已存在!"
        hive -e "alter table $hive_db.$hive_tbl drop if exists partition(p_d='$p_d')"
        sqoop import \
            --connect "jdbc:mysql://$url/$db?useSSL=false&tinyInt1isBit=false" \
            --username $username --password $password  \
            --table $tbl \
            --hcatalog-database $hive_db \
            --hcatalog-table $hive_tbl \
            --hcatalog-partition-keys p_d \
            --hcatalog-partition-values $p_d \
            --hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' \
            -m 1
    else
        echo "$hive_db.$hive_tbl表不存在!"
        sqoop import \
            --connect "jdbc:mysql://$url/$db?useSSL=false&tinyInt1isBit=false" \
            --username $username --password $password  \
            --table $tbl \
            --create-hcatalog-table \
            --hcatalog-database $hive_db \
            --hcatalog-table $hive_tbl \
            --hcatalog-partition-keys p_d \
            --hcatalog-partition-values $p_d \
            --hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' \
            -m 1
    fi

    cd $sqoop_exec_dir

    echo "finish $hive_db $hive_tbl $p_d" >> $log.log

    sleep 5
done

标签:sqoop,hcatalog,04,--,09,db,hive,2021,tbl
来源: https://blog.csdn.net/weixin_42756361/article/details/115545291

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有