数据大体系(二)——数仓的一般命名规范
引
这一节,我们来讲讲数仓的一般的命名规范。
在这一节, 您相信您能获得以下知识:
传统数据仓库中,各个分层节点、表的命名方式
相信,有一些知识内容,您可以直接带回去用
命名原则
既然是聊的数仓的命名规范,那么一定会首先和上一节知识有关系。
在上一节我们聊到,一般的数仓纵向分层,我们会分成 ODS、DWD、DWS、DM/ADS ,按照这类简单的数据分层方式,将数据的加工流向进行标准化。因此,我们来先依次对这几个层的命名进行一些梳理和说明。
ODS
从上一节我们知道,ods 这一层,一般都是和 OLTP 业务系统贴近,所以基本是将业务系统中的数据给拉过来。因此,其操作行为主要是数据集成。
集成入库
集成入库,一般用这样的命名规范来表示:
```
imp_ods_{源系统库}_{源表名}
```
表的命名,基本可以遵循以下规范:
```
ods_{源系统库}_{源表名}
```
如果有特殊的时间要求,可在表后面加对应的时间标识,如 1d 或者 1m。
DWD/DWS
对于 DW 这一层而言,基本都是使用 SQL 进行数据加工的对应操作。因此 dwd/dws 都原则上以其目的来进行对应命名。而对于一般数据仓库而言,数据往往是分主题域进行的。啥是主题域?主题域其实是一种方便我们进行数据管理的一种分类。如我们一般电商行业分类会有 商品主题域、财务主题域、订单主题域等等。这里需要注意的是,每个行业的主题域都会有所差异,具体需要试业务场景而言,不可同日而语;但其本质我们可以进行参考,便是类似金字塔一样,将一个个数据划分到不同的一级、二级、三级目录,以方便我们的管理。因此,DW 这一层,节点上可以这样来进行命名规范:
```DWD/DWS 层
dwd/dws_{一级主题域}_{二级主题域}_{三级主题域}_业务_描述_di/df
```
这里业务、描述,可以比较灵活地去书写,保证其唯一性。
认真的读者一定会注意到最后的 di/df ,这个标识,指的的是数据是增量还是全量进行。 di 表示数据每次是增量写入,data increment ;而 df 则表示数据每次是全量写入 data full 。
对于表的命名,我们可以直接使用节点工作流的命名,以保证所见即所得的将节点和工作流匹配起来:
``` DWD/DWS 表的命名规范
dwd/dws_{一级主题域}_{二级主题域}_{三级主题域}_业务_描述_di/df
```
DM/ADS 层
对于 DM 来说,一般已经成为了一个指标的集市,因此一般而言可以以一个主题域为划分及命名,如下:
```DM 层节点/表的命名规范
dm_{一级主题域}_业务_描述_xd/xm/xy
```
这里, xd/xm/xy 一般指的是,我们的 DM 集市的更新周期,例如 1d 是更新周期为 1 天,1m 是一个月,7d 是 7 天这样。
不过,dm 也有可能会形成跨一级主题域的大的指标集市,这时候并不一定要做强制规范,可以灵活变动。
ADS 层基本也是类似。ADS 是基于特定的目的去设计的集合表,往往不会有特定的强制规范命名,不过也可以去遵循一定的规律:
``` ADS 层节点/表的命名建议
ads_{业务属主}_{应用缩写}_业务_描述_xd/xm/xy
```
这里,每个字段,都可以根据需要进行对应的调整,保持其灵活性。
其他
除了以上的大的一些分层,我们再做一些查漏补缺:
视图
视图,从本质上说,是从某个表来,为了某个目的而存在的一种‘表’。有时候你都不能叫表,所以以引号表示之。所以我们可以以其本质来对视图做一些规范:
```视图的命名规范
view_{来源的表名}_{特定目的}
```
这里我们看到,视图主要以 view 字段开头,连接其来源表,然后将对应的目的进行连接,达到视图表的创建规范。
集成导出
在数据的整体架构中,我们之前一直都在谈数据本身,而并没有对其承载的中间件做过多的介绍。事实上,不同的数据库系统中间件由于其底层数据结构/架构等不同,其擅长的领域也不同。如我们可以用 Hive 去做数仓,但 Hive 的计算实在···因此我们一般可以用类似 ClickHouse 或者 Vertica 或者阿里 ADS 这种分析型的数据库来对其加速。而这里我们就需要将在 Hive 里做了部分计算的中间数据导出到分析型数据库中,使用 DataX 或者其他的工具,可以完成这样的工作。
而这类的节点命名,我们也会遵循一定的命名规范:
``` 集成导出命名规范
exp_{需要导出的表名}_{导出到的系统}
```
当然如果只有一个需要导出的数据库系统,这里也可以省略。一切可以试实际情况进行操作。
临时
临时表一般比较简单,可以直接在我们想要进行开发的节点前加tmp
,这里不再赘述。
结
本节,我们以非常简单的形式,介绍了一些可以参考的各个数仓分层的命名规范。而在实际业务中,往往还会因为不同的业务产生出其他的命名规范,但其基本的原则这里也都有涵盖。我们在实际过程中,灵活应用即可。
于辛丑年冬月初八
版权声明: 本文为 InfoQ 作者【圣迪】的原创文章。
原文链接:【http://xie.infoq.cn/article/720113a0535aa46ff21ee5cc4】。文章转载请联系作者。
评论