赞
踩
前面已经把DWD层所有表以及它们的装载脚本都完成了,这里编写一个统一的数据装载脚本,方便每日执行。
脚本名称:ods_to_dwd_init.sh
#!/bin/bash APP=gmall if [ -n "$2" ] ;then do_date=$2 else echo "请传入日期参数" exit fi dwd_interaction_comment_inc=" insert overwrite table ${APP}.dwd_interaction_comment_inc partition(dt) select id, user_id, sku_id, order_id, date_format(create_time,'yyyy-MM-dd') date_id, create_time, appraise, dic_name, date_format(create_time,'yyyy-MM-dd') from ( select data.id, data.user_id, data.sku_id, data.order_id, data.create_time, data.appraise from ${APP}.ods_comment_info_inc where dt='$do_date' and type='bootstrap-insert' )ci left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='12' )dic on ci.appraise=dic.dic_code; " dwd_interaction_favor_add_inc=" insert overwrite table ${APP}.dwd_interaction_favor_add_inc partition(dt) select data.id, data.user_id, data.sku_id, date_format(data.create_time,'yyyy-MM-dd') date_id, data.create_time, date_format(data.create_time,'yyyy-MM-dd') from ${APP}.ods_favor_info_inc where dt='$do_date' and type = 'bootstrap-insert'; " dwd_tool_coupon_get_inc=" insert overwrite table ${APP}.dwd_tool_coupon_get_inc partition(dt) select data.id, data.coupon_id, data.user_id, date_format(data.get_time,'yyyy-MM-dd') date_id, data.get_time, date_format(data.get_time,'yyyy-MM-dd') from ${APP}.ods_coupon_use_inc where dt='$do_date' and type='bootstrap-insert'; " dwd_tool_coupon_order_inc=" insert overwrite table ${APP}.dwd_tool_coupon_order_inc partition(dt) select data.id, data.coupon_id, data.user_id, data.order_id, date_format(data.using_time,'yyyy-MM-dd') date_id, data.using_time, date_format(data.using_time,'yyyy-MM-dd') from ${APP}.ods_coupon_use_inc where dt='$do_date' and type='bootstrap-insert' and data.using_time is not null; " dwd_tool_coupon_pay_inc=" insert overwrite table ${APP}.dwd_tool_coupon_pay_inc partition(dt) select data.id, data.coupon_id, data.user_id, data.order_id, date_format(data.used_time,'yyyy-MM-dd') date_id, data.used_time, date_format(data.used_time,'yyyy-MM-dd') from ${APP}.ods_coupon_use_inc where dt='$do_date' and type='bootstrap-insert' and data.used_time is not null; " dwd_trade_cancel_detail_inc=" insert overwrite table ${APP}.dwd_trade_cancel_detail_inc partition (dt) select od.id, order_id, user_id, sku_id, province_id, activity_id, activity_rule_id, coupon_id, date_format(canel_time,'yyyy-MM-dd') date_id, canel_time, source_id, source_type, dic_name, sku_num, split_original_amount, split_activity_amount, split_coupon_amount, split_total_amount, date_format(canel_time,'yyyy-MM-dd') from ( select data.id, data.order_id, data.sku_id, data.source_id, data.source_type, data.sku_num, data.sku_num * data.order_price split_original_amount, data.split_total_amount, data.split_activity_amount, data.split_coupon_amount from ${APP}.ods_order_detail_inc where dt = '$do_date' and type = 'bootstrap-insert' ) od join ( select data.id, data.user_id, data.province_id, data.operate_time canel_time from ${APP}.ods_order_info_inc where dt = '$do_date' and type = 'bootstrap-insert' and data.order_status='1003' ) oi on od.order_id = oi.id left join ( select data.order_detail_id, data.activity_id, data.activity_rule_id from ${APP}.ods_order_detail_activity_inc where dt = '$do_date' and type = 'bootstrap-insert' ) act on od.id = act.order_detail_id left join ( select data.order_detail_id, data.coupon_id from ${APP}.ods_order_detail_coupon_inc where dt = '$do_date' and type = 'bootstrap-insert' ) cou on od.id = cou.order_detail_id left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='24' )dic on od.source_type=dic.dic_code; " dwd_trade_cart_add_inc=" insert overwrite table ${APP}.dwd_trade_cart_add_inc partition (dt) select id, user_id, sku_id, date_format(create_time,'yyyy-MM-dd') date_id, create_time, source_id, source_type, dic.dic_name, sku_num, date_format(create_time, 'yyyy-MM-dd') from ( select data.id, data.user_id, data.sku_id, data.create_time, data.source_id, data.source_type, data.sku_num from ${APP}.ods_cart_info_inc where dt = '$do_date' and type = 'bootstrap-insert' )ci left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='24' )dic on ci.source_type=dic.dic_code; " dwd_trade_cart_full=" insert overwrite table ${APP}.dwd_trade_cart_full partition(dt='$do_date') select id, user_id, sku_id, sku_name, sku_num from ${APP}.ods_cart_info_full where dt='$do_date' and is_ordered='0'; " dwd_trade_order_detail_inc=" insert overwrite table ${APP}.dwd_trade_order_detail_inc partition (dt) select od.id, order_id, user_id, sku_id, province_id, activity_id, activity_rule_id, coupon_id, date_format(create_time, 'yyyy-MM-dd') date_id, create_time, source_id, source_type, dic_name, sku_num, split_original_amount, split_activity_amount, split_coupon_amount, split_total_amount, date_format(create_time,'yyyy-MM-dd') from ( select data.id, data.order_id, data.sku_id, data.create_time, data.source_id, data.source_type, data.sku_num, data.sku_num * data.order_price split_original_amount, data.split_total_amount, data.split_activity_amount, data.split_coupon_amount from ${APP}.ods_order_detail_inc where dt = '$do_date' and type = 'bootstrap-insert' ) od left join ( select data.id, data.user_id, data.province_id from ${APP}.ods_order_info_inc where dt = '$do_date' and type = 'bootstrap-insert' ) oi on od.order_id = oi.id left join ( select data.order_detail_id, data.activity_id, data.activity_rule_id from ${APP}.ods_order_detail_activity_inc where dt = '$do_date' and type = 'bootstrap-insert' ) act on od.id = act.order_detail_id left join ( select data.order_detail_id, data.coupon_id from ${APP}.ods_order_detail_coupon_inc where dt = '$do_date' and type = 'bootstrap-insert' ) cou on od.id = cou.order_detail_id left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='24' )dic on od.source_type=dic.dic_code; " dwd_trade_order_refund_inc=" insert overwrite table ${APP}.dwd_trade_order_refund_inc partition(dt) select ri.id, user_id, order_id, sku_id, province_id, date_format(create_time,'yyyy-MM-dd') date_id, create_time, refund_type, type_dic.dic_name, refund_reason_type, reason_dic.dic_name, refund_reason_txt, refund_num, refund_amount, date_format(create_time,'yyyy-MM-dd') from ( select data.id, data.user_id, data.order_id, data.sku_id, data.refund_type, data.refund_num, data.refund_amount, data.refund_reason_type, data.refund_reason_txt, data.create_time from ${APP}.ods_order_refund_info_inc where dt='$do_date' and type='bootstrap-insert' )ri left join ( select data.id, data.province_id from ${APP}.ods_order_info_inc where dt='$do_date' and type='bootstrap-insert' )oi on ri.order_id=oi.id left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code = '15' )type_dic on ri.refund_type=type_dic.dic_code left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code = '13' )reason_dic on ri.refund_reason_type=reason_dic.dic_code; " dwd_trade_pay_detail_suc_inc=" insert overwrite table ${APP}.dwd_trade_pay_detail_suc_inc partition (dt) select od.id, od.order_id, user_id, sku_id, province_id, activity_id, activity_rule_id, coupon_id, payment_type, pay_dic.dic_name, date_format(callback_time,'yyyy-MM-dd') date_id, callback_time, source_id, source_type, src_dic.dic_name, sku_num, split_original_amount, split_activity_amount, split_coupon_amount, split_total_amount, date_format(callback_time,'yyyy-MM-dd') from ( select data.id, data.order_id, data.sku_id, data.source_id, data.source_type, data.sku_num, data.sku_num * data.order_price split_original_amount, data.split_total_amount, data.split_activity_amount, data.split_coupon_amount from ${APP}.ods_order_detail_inc where dt = '$do_date' and type = 'bootstrap-insert' ) od join ( select data.user_id, data.order_id, data.payment_type, data.callback_time from ${APP}.ods_payment_info_inc where dt='$do_date' and type='bootstrap-insert' and data.payment_status='1602' ) pi on od.order_id=pi.order_id left join ( select data.id, data.province_id from ${APP}.ods_order_info_inc where dt = '$do_date' and type = 'bootstrap-insert' ) oi on od.order_id = oi.id left join ( select data.order_detail_id, data.activity_id, data.activity_rule_id from ${APP}.ods_order_detail_activity_inc where dt = '$do_date' and type = 'bootstrap-insert' ) act on od.id = act.order_detail_id left join ( select data.order_detail_id, data.coupon_id from ${APP}.ods_order_detail_coupon_inc where dt = '$do_date' and type = 'bootstrap-insert' ) cou on od.id = cou.order_detail_id left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='11' ) pay_dic on pi.payment_type=pay_dic.dic_code left join ( select dic_code, dic_name from ${APP}.ods_base_dic_full where dt='$do_date' and parent_code='24' )src_dic on od.source_type=src_dic.dic_code; " dwd_trade_refund_pay_suc_inc=" insert overwrite table ${APP}.dwd_trade_refund_pay_suc_inc partition(dt) select rp.id, user_id, rp.order_id, rp.sku_id, province_id, payment_type, dic_name, date_format(callback_time,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。