问题背景
在日常商城需求中我们经常会接到一些分析需求,分析维度可能会有:
商家id,是否跨店,订单是否有效,订单是否冻结等信息(目前并不记录在我们的确认订单模型)
其实订单接口中其实是提供了这部分数据的,而这部分数据存储已key_value形式记录在扩展表(ods.incr_d_tb_dingdan_extension)
京东订单API
报文数据
- 扩展表中的数据可能会有延迟,所以在限制ds的时候需要注意
问题处理
- 模型:
完整的订单数据 = dw.full_d_odr_order_child + ods.incr_d_tb_dingdan_extension
--确认订单扩展字段信息表
select
*
from ods.incr_d_tb_dingdan_extension t
where t.ds = '2018-08-29'
and t.orderid = 78893110085;
- 案例:取2018-08-30号的所有跨店订单(给订单打上同、跨店的标志)
select
t.*,
case when a.order_id is not null then '跨店' else '同店' end as type
from dw.full_d_odr_order_child t
left join (select
distinct orderid
from ods.incr_d_tb_dingdan_extension t
where t.ds >= '2018-08-30'
and t.shopid = 544
and t.extension_key = 'traceType'
and t.extension_val = '3'
) a on t.order_id = a.orderid
where t.ds = '2018-08-30'
and t.s_id = 544
and t.product_parent_id = 3;
- 其他:https://prestodb.io/