数仓数据接入心得

发布时间 2023-06-25 16:36:19作者: soccerchen

分成三种类型:状态表、流水表、配置表

状态表

比如账户表、用户表、订单表,记录账户额度,使用金额,订单当前流转状态,这些数据通常很大,但是又不会所有的数据都更新,因此使用增量更新的方式获取数据并更新数仓里对应的数据表。

一般会使用快照表的方式展示。很少用到拉链表的形式。

流水表

比如出入账记录表,点击、曝光等立即发生,不会更新的数据。流水表通常极大,单表每天全量刷新或者数仓维护成快照都不方便,因此在数仓中,使用增量载入并按业务日期分成不同分区。

配置表

这是一类特殊的表,不同于业务数据表,它是由一些系统使用时设计的记录表、参数表。因此其数据量通常不会太大,且多数存在手动更新的情况,对于这样的数据表,即使按增量更新也是不妥的,因为在数仓侧是无法获取上游已经删除的数据。因此这类数据通常全量更新到数仓中,如果需要用到历史,则保留较多历史分区的数据即可,一般这样的数据表在上线活动、任务、策略时会高度关注。

 

多说一些。。。

以上比较常见的是状态表和流水表,基本涵盖业务系统中所有数据表的类型。

配置表一般出现在,活动系统的配置模块里。怎么理解呢,举个例子。

比如活动系统的开发人员为了应付更新较快的活动需求,从而开发了集中活动模版,比如订单付款折扣、立减,付款满减等。模式可以下来,简单的宣讲之后,业务可以根据需要创建活动。

一般的设计一个配置表和活动日志表,日志表可以记录命中活动规则ID,活动处理json,配置表里有活动规则ID、开始时间、结束时间、策略包(再举个例子{'product_type':'文具','per_amt':50,'per_cost_amt':8,'max_cost_amt':100},这里的意思是文具商品每满50减8,最高减100),配置表是在一定的规范下就可以很快的处理业务的需求。