实时数仓建设规范

1、实时数仓与离线数仓的区别

1、架构上:实时数仓在离线数仓的基础上,数据集成改为实时的数据集成,例如采用canal、dts和消息中间件(kafka)来及时采集和更新数据。

2、数据处理上:增加了流式ETL和流式汇总。离线数据仓库主要采用T+1的方式处理数据,即第二天处理前一天的数据(这里可以是天,周或者是年,看具体业务情况)。而实时数仓则需要在秒级别内实现对数据的处理,因此通常情况下,会使用flink或spark streaming来计算数据,实现实时计算。

总结:实时数仓相较于离线数仓

数据来源,数仓抽象一样

时间粒度,计算模式不同

2、数仓建设

数仓的建模或者分层,其实就是为了更好地去组织、管理和维护数据,

优秀的分层设计能够让整个数据体系更容易理解和使用。

分层的意义:

1、清晰数据结构体系:每一个数据分层都有它的作用域,更方便定位数据 。

2、数据血缘追踪:如果某张表出了问题,可以快速地定位到问题 。

3、减少重复开发和资源浪费:可以通过开发一些通用的数据表,例如做宽表,减少重复计算 。

4、统一数据口径:数据分层提供了统一的数据出口,也就是应用层 。

*** 分层主要是为了解决ETL任务及工作流的组织、数据的流向、读写权限的控制、 不同需求的满足等各类问题。

3、实时数仓命名规范

3.1 数仓分层规范

类似于离线数仓,主要分为:ods原始数据层、dim维度层、dwd明细数据层、dwd数据汇合层和ads应用层,通过不同名称的来规范每个分层的表。

1、ods:基础数据层

这一层的数据最接近源数据,也是数仓的基础层

2、dwd:明细数据层:在dwd层会根据维度模型,涉及事实表和维度表

dwd层主要做的就是将数据清理、整合、规范化,

脏数据、垃圾数据、规范不一致、状态定义不一致的数据都会被处理。,将数据加工成面向数仓的基础明细表,这个时候可以做一些面向分析的宽表

* 维度建模一般分为四个步骤

选择业务过程-->声明粒度-->确认维度-->确认事实

3、dws:数据汇总层

是对dwd层上的基础数据,整合汇总成分析某一个主题域的服务数据。

4、dim:维度层

维度指的是观察事物的角度,提供某一业务过程事件涉及用什么过滤和 分类描述属性。“谁,什么时候,什么地点,为什么,如何”等。

比如,"小王早上在小卖部花费5元钱购买了包子",

时间维度——早上,地点维度——小卖部,商品维度——包子

维度表都包含单一的主键列,维度表设计的核心是确定维度字段,

维度字段是查询约束条件(where)、分组条件(group)、排序(order), 与报表标签的基本来源。

5、ads:数据应用层,用来存放指标结果。

3.2 表命名规范

表的命名也是为了清晰结构层次,总体设计是:层名_业务名_+具体细化。

每一层具体设计如下:

ODS

ods_{业务线名}_{源库名}_{源表名}[_incre]

rt(realtime)主要是区别于离线数仓,[_incre]可选,增量表标识

DIM

dim_{业务线名}_{源库名}_{源表名}

dim是指维度表,交易域表时用trade标识

DWD

dwd_{业务线名}_{域名}_{业务过程名}[_incre]

业务过程是指业务

DWS

dws_{业务线名}_{域名}_{业务描述}_{周期限定}[_incre]

统计周期是指聚合颗粒度,比如m、d、h、mis等

ADS

ads_{数据产品名}_[业务线名]_{域名}_{业务过程描述}_{统计周期}[_incre]

经分为jf,罗盘为lp,公共表放在DWS

3.3 数据总线主题命名

  • 全局消息队列主题命名为Global_[域]_Topic,如Global_Role_Topic
  • rdw_{实时数仓分},比如_dws_yxm_user_active_d是指按天去重的游戏猫玩家活跃明细实时消息队列,topic_dwd_yxm_order是指游戏猫订单明细宽表实时消息队列

3.4 消费组命名

数据产品名_域名_业务描述_测试/线上,比如dp_user_behavior_online是指大屏玩家行为线上消费组,和具体数据产品无关时采用global表示,消费组命名和表名解耦是考虑一个表数据可能来源于多个主题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值