if [ $# -eq 12 ]; then
HIVE_DATABASE=$1
HIVE_TABLE_NAME=$2
DATA_DIR=$3
PARTITION_KEY=$4
KEY_FIELD_NAME=$5
MYSQL_HOST=$6
MYSQL_PORT=$7
MYSQL_DATABASE=$8
MYSQL_TABLE_NAME=$9
MYSQL_USERNAME=${10}
MYSQL_PASSWORD=${11}
PRIMARY_KEY=${12}
else
echo 'commend : get_sqoop_partitions_sql HIVE_DATABASE HIVE_TABLE_NAME DATA_DIR PARTITION_KEYKEY_FILED_NAME MYSQL_HOST MYSQL_TABLE_NAME MYSQL_USERNAME MYSQL_PASSWORD PRIMARY_KEY'
exit 127
fi
echo "开始进行从mysql表${MYSQL_TABLE_NAME}到hive表${HIVE_DATABASE}.${HIVE_TABLE_NAME}的导入"
echo "拉表利用的字段为${PRIMARY_KEY},分区名称为${PARTITION_KEY},分区使用的字段为${KEY_FIELD_NAME}"
echo "aws s3 rm ${DATA_DIR}/${HIVE_TABLE_NAME}/${PARTITION_KEY}=0 --recursive"
aws s3 rm ${DATA_DIR}/${HIVE_TABLE_NAME}/${PARTITION_KEY}=0 --recursive
SQL_PATH=$(pwd)/log/${HIVE_DATABASE}.${HIVE_TABLE_NAME}.sql
HIVE_COLUMN_PATH=$(pwd)/log/hive.${HIVE_DATABASE}.${HIVE_TABLE_NAME}.column.txt
MYSQL_COLUMN_PATH=$(pwd)/log/mysql.${MYSQL_DATABASE}.${MYSQL_TABLE_NAME}.column.txt
MYSQL_COLUMN_TYPE_PATH=$(pwd)/log/mysql.${MYSQL_DATABASE}.${MYSQL_TABLE_NAME}.column_type.txt
NEW_COLUMN_PATH=$(pwd)/log/hive.${HIVE_DATABASE}.${HIVE_TABLE_NAME}.new_column.txt
hive -e "show create table ${HIVE_DATABASE}.${HIVE_TABLE_NAME};" >$SQL_PATH
LAST_PARTITION=$(hive -e "show partitions ${HIVE_DATABASE}.${HIVE_TABLE_NAME};"|tail -1|sed 's/=/ /g'|awk '{print $2}')
HIVE_MAX=$(hive -e "select max(${PRIMARY_KEY}) from ${HIVE_DATABASE}.${HIVE_TABLE_NAME} where ${PARTITION_KEY}
Hive -- 增量同步数据脚本
最新推荐文章于 2023-02-16 17:19:25 发布