sqoop脚本(Oracle到hive)

来源:互联网 发布:双色球合买软件 编辑:程序博客网 时间:2024/05/20 00:53
#!/bin/sh
source ExitCodeCheck.sh


opts=$@


getparam(){
arg=$1
echo $opts |xargs -n1 |cut -b 2- |awk -F'=' '{if($1=="'"$arg"'") print $2}'
}


IncStart=`getparam inc_start`
IncEnd=`getparam inc_end`
oracle_connection=`getparam jdbc_str`
oracle_username=`getparam db_user`
oracle_password=`getparam db_psw`
dataName=`getparam db_sid`
queueName=`getparam hdp_queue`
hdfshostname=`getparam hdfs_host`;


IncStartYear=`echo ${IncStart:0:4}`;
IncStartMonth=`echo ${IncStart:4:2}`;
IncStartDay=`echo ${IncStart:6:2}`;
IncStartAll=${IncStartYear}"-"${IncStartMonth}"-"${IncStartDay}" 00:00:00.0";
IncStartAllFormat=${IncStartYear}"-"${IncStartMonth}"-"${IncStartDay};
IncEndYear=`echo ${IncEnd:0:4}`;
IncEndMonth=`echo ${IncEnd:4:2}`;
IncEndDay=`echo ${IncEnd:6:2}`;
IncEndAll=${IncEndYear}"-"${IncEndMonth}"-"${IncEndDay}" 00:00:00.0";
IncEndAllFormat=${IncEndYear}"-"${IncEndMonth}"-"${IncEndDay};


OneDayAgo=`date -d "$IncStart 1 days ago  " +%Y%m%d  `;
OneDayAgoYear=`echo ${OneDayAgo:0:4}`;
OneDayAgoMonth=`echo ${OneDayAgo:4:2}`;
OneDayAgoDay=`echo ${OneDayAgo:6:2}`;
OneDayAgoAll=${OneDayAgoYear}"-"${OneDayAgoMonth}"-"${OneDayAgoDay}" 00:00:00.0";
OneDayAgoAllFormat=${OneDayAgoYear}"-"${OneDayAgoMonth}"-"${OneDayAgoDay};


#任务名取脚本名
job_name=$0






#任务名取脚本名
job_name=$0


#目标表名
hive_table=AGG_MOBILE_BUSSINESS_DEPT_ALL


#临时目录
target_dir=/apps-data/hduser0101/sx_360_safe/import/${hive_table} 


#删除临时目录,支持二次运行
hadoop dfs -rmr ${target_dir} 


 
sqoop import -D mapred.job.queue.name=${queueName}   -D mapred.job.name=${job_name} \
--connect ${oracle_connection} \
--username ${oracle_username} \
--password ${oracle_password} \
--query "SELECT                                                    \
PARENT_CODE                                \
,DEPARTMENT_CODE                                \
,DEPARTMENT_NAME                                \
,DEPARTMENT_LEVEL                                \
,MEASURES_CODE                                \
,SUM_DATA_DAY                                \
,SUM_DATA_MONTH                                \
,SUM_DATA_YEAR                                \
,MONTH_COMPLE                                \
,YEAR_COMPLE                                \
,YEACC_COMPLE                                \
,MONTH_INC                                \
,YEAR_INC                                \
,DATA_LASTYEAR_D                                \
,DATA_LASTYEAR_M                                \
,DATA_LASTYEAR_Y                                \
,OPTION_ITEM                                \
,CREATED_BY                                \
,DATE_CREATED                                \
,UPDATED_BY                               \
,DATE_UPDATED                                \
,ORDER_NO                                      \
,DAY_INC                                       \
FROM   AGG_MOBILE_BUSSINESS_DEPT_ALL            \
WHERE  CANC_DATE = to_date('${IncStart}','yyyymmdd')         \
and     \$CONDITIONS   "                                           \
-m 1 \
--hive-table SX_360_SAFE.${hive_table}   \
--hive-drop-import-delims                                        \
--fetch-size 5000                                                \
--hive-partition-key CANC_DATE                              \
--hive-partition-value ${IncStartAllFormat}               \
--target-dir "${target_dir}"   \
--hive-overwrite         \
--null-string '\\N'      \
--null-non-string '\\N'  \
--hive-import;

exitCodeCheck $?




执行脚本命令:

Oracle  lifrpt 数据库信息:LOLAPDATA/patst2012@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=d0lifrt.dbdev.paic.com.cn)(PORT=1526))(connect_data=(sid=d0lifrt)))


Oracle  机构库  信息:lifeman/lifetest@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =d0lush0.dbdev.paic.com.cn)(PORT = 1526)))(CONNECT_DATA = (SID = d0lush0)))


机构库sqoop命令:./sqoop_import_lush_bas_bank_info.sh -jdbc_str=jdbc:oracle:thin:@d0lush0.dbdev.paic.com.cn:1526:d0lush0 -db_user=lifeman -db_psw=lifetest -db_sid=d0lush0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01


执行lferpt   sqoop.shell数据同步的命令:


a.:
./sqoop_import_liferpt_dim_lbs_bank_type_table.sh -inc_start=20170701 -inc_end=20170801 -jdbc_str=jdbc:oracle:thin:@d0lifrt.dbdev.paic.com.cn:1526:d0lifrt -db_user=LOLAPDATA -db_psw=patst2012 -db_sid=LUSH0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01




./sqoop_import_liferpt_agg_mobile_dept_cnt_qt.sh -jdbc_str=jdbc:oracle:thin:@d0lifrt.dbdev.paic.com.cn:1526:d0lifrt -db_user=LOLAPDATA -db_psw=patst2012 -db_sid=LUSH0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01


./sqoop_import_liferpt_agg_mobile_dept_cnt_yx.sh -jdbc_str=jdbc:oracle:thin:@d0lifrt.dbdev.paic.com.cn:1526:d0lifrt -db_user=LOLAPDATA -db_psw=patst2012 -db_sid=LUSH0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01




./sqoop_import_liferpt_nchrms_organization_intf.sh -jdbc_str=jdbc:oracle:thin:@d0lifrt.dbdev.paic.com.cn:1526:d0lifrt -db_user=LOLAPDATA -db_psw=patst2012 -db_sid=LUSH0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01




参数注释:
      -jdbc_str   ---->> jdbc连接串
      -db_user    ---->> 数据库用户名
 -db_psw     ---->> 密码
 -db_sid     ---->> 数据库实例名
 -hdp_queue  ---->> 使用的队列
 -hdfs_host  ---->> hdfs_host的地址




./sqoop_import_liferpt_epcis_life_ach_act_yb.sh -inc_start=20171112 -inc_end=20171112 -jdbc_str=jdbc:oracle:thin:@d0lifrt.dbdev.paic.com.cn:1526:d0lifrt -db_user=LOLAPDATA -db_psw=patst2012 -db_sid=LUSH0 -hdp_queue=root.queue_0101_01 -hdfs_host=hdfs://hdp-hdfs01





原创粉丝点击