分层的目的
1.方便了解表之间的关系,可以将各层的作用明确,方便开发和使用。
2.可以减少重复开发,存放中间处理过的数据,同时也能保证数据处理的一致性。
3.出现问题时能及时定位问题,只需要修改对应作用层级,重跑当前层级和下游任务即可修复。
数仓分层思路
一般来说数仓可以分为ods、dwd、dws、app层,再加个dim层
ods层存放源数据,即将采集过来的数据原样保存。即可以是关系型数据库的数据,也可以是其他格式如json数据。
dwd层存放从ods层清洗后的数据。将各种非关系数据转换为关系型数据,同时对数据做一定规范清晰。
dws层进行轻度汇总,可以形成大宽表,也可以根据需要按一定条件进行聚合。
app层主要存处理后方便直接使用的数据。通过前期已经处理过的数据,只需要根据最终使用需要做最终处理即可。
dim层用来建立维度表。
分层和使用情况根据实际情况而定,不需要拘泥于形式,而是要方便数据开发和规范。
数仓分层命名
数仓分层有一个目的是为了方便理解和开发,那么做好数仓命名能起到关键性作用。
就最基本而言,在不同层级的数据库和表之前加上对应的层级,比如ods层就以ods_XXX命名。
person
然后可以在表明上加上相应的主题,如ods_person_XXX,也还可以实际需要在主题后面加上修饰词或者说是子主题。
然后可以在表名的最后加上表的粉表规则,比如ods_person_member_user_di,表示分区中存取的当日增量的会员用户数据。
网友评论