根据七张基础业务表,生成大宽表
tt_sales_order 1826 7673 大 ord
tt_deposit_order 56 0368 小 dep
tt_vehicle_action 236 5624 中 vac
tt_pipeline_pool 1000 0000 大 pol
tt_vehicle_resource 53 9059 小 vre
tt_dealer_resource 1000 0000 大 dre
tt_dealer_retail_order 1602 3564 大 ret
直接join报错OOM
分步骤操作:
OrderSales_ordtwoyears
OrderSales_ord_dep_one
OrderSales_ord_dep_two
OrderSales_ord_vac_dep
OrderSales_pol_vre
OrderSales_dre_ret
第一步:where ord
筛选两年内数据,并mark_for_delete = ‘0’
第二步:ord left outer join dep
经研究发生数据倾斜,主要原因是BRAND_ID字段只有100和200两个状态
(先处理 BRAND_ID = 100)
第三步:ord left outer join dep
经研究发生数据倾斜,主要原因是BRAND_ID字段只有100和200两个状态
(再处理 BRAND_ID = 200)
第四步:ord_dep left outer join vac
第五步:ord_dep_vac left outer join pol_vre
第六步:ord_dep_vac_pol_vre left outer join dre_ret
问题一:某个字段有/n导致与hive换行符冲突
regexp_replace(dep.cust_name, '\n|\t|\r', '')
问题二:join不上的数据显示为NULL
采用parquet存储格式,把NULL自动转换成空字符
问题三:业务逻辑不熟