sqoop脚本(Oracle到hive)

shell脚本:

#!/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/an_pafc_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 an_pafc_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 $?

 

执行脚本命令:
机构库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数据同步的命令:

./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

./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


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

 -m 1  ---->>使用一个map执行脚本

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值