数据大体系(二)——数仓的一般命名规范

这一节,我们来讲讲数仓的一般的命名规范。

在这一节, 您相信您能获得以下知识:

  1. 传统数据仓库中,各个分层节点、表的命名方式

  2. 相信,有一些知识内容,您可以直接带回去用

命名原则

既然是聊的数仓的命名规范,那么一定会首先和上一节知识有关系。

在上一节我们聊到,一般的数仓纵向分层,我们会分成 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,这里不再赘述。

本节,我们以非常简单的形式,介绍了一些可以参考的各个数仓分层的命名规范。而在实际业务中,往往还会因为不同的业务产生出其他的命名规范,但其基本的原则这里也都有涵盖。我们在实际过程中,灵活应用即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值