利用sqoop指定列指定條件的方式將資料從mysql中增量匯入hive表中
阿新 • • 發佈:2018-11-27
========1、sqoop增量(指定列指定條件的方式增量匯入hive表中)匯入hive指令碼=======
#!/bin/bash
#Set the RDBMS connection params
rdbms_ip=$1
rdbms_connect="jdbc:mysql://${rdbms_ip}:**/*******?useUnicode=true&characterEncoding=UTF-8"
rdbms_username="****"
rdbms_password="*****"
#Set the source table in RDBMS
rdbms_table="*****"
rdbms_columns="**,**,**,**,**,**"
#Set the hive tables
hive_full_table="******"
hive_database="*****"
cast_column="content"
yesterday_param1=$2
nowday_param2=$3
sqoop-import --connect ${rdbms_connect} --driver com.mysql.jdbc.Driver --username ${rdbms_username} --password ${rdbms_password} --table ${rdbms_table} --columns ${rdbms_columns} --where "createTime >=${yesterday_param1} and createTime <${nowday_param2}" -m 4 --hive-import --hive-database ${hive_database} --hive-table ${hive_full_table} --fields-terminated-by "\001" --lines-terminated-by "\n" --hive-drop-import-delims --map-column-java ${cast_column}=String --delete-target-dir
註釋:--hive-drop-import-delims 刪掉欄位中的\n \t \r\n等字元 不刪掉的話,若欄位中存在\n \t等這種字元,容易導致hive表中的資料位置錯亂,我就遇到了這個問題