从0到1搭建数据仓库流程

这篇具有很好参考价值的文章主要介绍了从0到1搭建数据仓库流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从0到1搭建数仓,可以概括为6个步骤:业务探查、技术选型、规范制定、主题域划分、数仓分层、模型建设。

一、业务探查

梳理公司业务系统,业务关心的指标,开发过的需求。一般业务关心的数据集中在两三类数据上

二、技术选型

根据已有的数据,选择技术平台,及开发语言。Deloitte已经选好用CDH,这步可以不考虑

三、规范制定

在数仓建设阶段,我们只需要制定数仓相关的规范。
如:分层设计规范、表命名规范、字段命名规范、层次调度规范、脚本开发规范。网上都有这些规范的相关文章,需要结合公司情况改一下。
这些规范最好在开发前,整理成一个简单的文档,这样方便我们数仓的维护。

备注:数仓建设完成后,可能会设计元数据管理、数据质量、和指标管理。这些模块在开展之前也需要制定相关的规范。但是我们在数仓搭建的时候不用考虑这些问题。

3.1、数仓开发规范参考

提供部分数仓开发规范参考

0) 分层设计规范

一般包括ods\dwd\dim\dws\ads.每一层都有各自的功能

1)表命名规范

包括ods、非ods层命名规范、手工维护表、层次调度规范

  • ods命名规范:ods+源系统库+数据库类型+源表名+加载方式+是否分区
  • 非ods命名规范:分层前缀+业务域+业务过程+更新方式+时间粒度+是否分区
  • 更新方式:增量inc、全量full、拉链zip
  • 表名时间粒度规范:小时(1h)\天(1d)\周(1w)\月(1m)\季度(1q)\年(1y)
  • 非分区表:统一加上后缀_0p
  • 手工表:dwd-业务域-manual-业务过程。manual表示这是手工维护表
2)字段命名规范

采用蛇形命名法,即采用一个下划线分割词根

3)层次调度规范

禁止反向调用
ODS 只能被 DWD 调用。
DWD 可以被 DWS 和 ADS 调用。
DWS 只能被 ADS 调用。
数据应用可以调用 DWD、DWS、ADS,但建议优先考虑使用汇总度高的数据。
ODS->DWD->DWS>ADS
ODS->DWD->ADS

4)脚本开发规范
  • 脚本是否有备注、字段是否有注释、复杂计算逻辑是否有注释释。
  • 任务是否支持多次重跑而输出不变,不能有 insert into 语句。
  • 分区表是否使用分区键过滤并且有有效裁剪。
  • 外连接的过滤条件是否使用正确,例如在左连接的 where 语句存在右表的过滤条件

四、主题域划分

可以按照业务系统、或者部门划分。如果按照业务系统划分,两个业务系统的数据一样、可以合并为一个主题。
上次您跟我交流时的业务跨主题域的问题,如果主题划分好了,是不会存在这种情况的,如果跨主体域了,就划分在某一个主题域就行。

五、数仓分层

建议划分为ods,dwd,dim,dws,ads层
数据的分层目的是方便我们清晰数据的流向,没有分层时,可能我们的数据会存在循环调度的情况;当然分层也可以减少重复开发的工作。

六、模型建设

包括dwd,dim,dws的模型建设。

6.1、模型建设——注意点

1)避免烟囱式开发:在数仓搭建前期,最容易出现的一个问题就是烟囱式开发.
烟囱开发判断标准有2个:

  • 大量ods的表直接被dws或者直接被ADS层引用
  • dwd或者dws表模型的下游引用表小于2张,模型平均的引用系数在3才算是一个比较好的数仓。

最好在数仓搭建的时候,您辛苦一下,看一遍建设的模型。

2)建设统一的维度编码表:编码不统一,会出现相近业务不能关联分析、出现数据孤岛的问题,维度表可以先建设公司常用的编码。

实施方法:先把所有设计维度的表集成到source表,在做清洗映射为业务编码与清洗后编码的映射表,最后建设成维表。

6.2、模型建设——方法论

1)如何建设模型
A)dwd模型:
主要做就做数据清洗,编码值的统一,编码属性值的冗余(比如产品名称就是属性值,产品编码就是编码值)。当不熟悉业务时、表结构可以借鉴业务系统的表结构。我现在公司的业务系统的表结构没完全按照三范式进行建模

B)DWS模型
把相同业务的指标,可以沉淀到dws表。比如业绩相关的
日/周/月/季/年/累计/销售金额or销售数量;当日/当周/当月/当季/当年/累计/销售退款金额or销售退款数量;可以按照这样的周期计算统计指标。

另外比如我们算了销售相关的DWS指标业绩,在计算团队,或者城市的业绩的时候,最好从销售业绩统计的dws表进行汇总。

注意点:这里有个问题就是销售的团队会变化,可能存在汇总城市业绩时会出问题,这里需要主要下

C)ADS模型
根据业务需求建设模型

2)什么样的模型式好模型?
我也一致在思考这个问题,网上很多建模方法论。
在建模的时候说的都是:选择业务过程、确认粒度、确认维度、确认实事,在应用在实际数仓搭建过程中比较懵,这个方法论可以借鉴。

关键是这个模型建设完成之后,被下游多少张表引用,比如这个表被下游5张表引用+并且表命名字段命名规范,那这就是一个成功的模型

3)逻辑如何确定
有些已经确定好的逻辑,可以直接借用之前逻辑就可以了。如果没确定逻辑在开发之前先跟业务或者需求确定逻辑文章来源地址https://www.toymoban.com/news/detail-602033.html

到了这里,关于从0到1搭建数据仓库流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一百八十二、大数据离线数仓完整流程——步骤一、用Kettle从Kafka、MySQL等数据源采集数据然后写入HDFS

    经过6个月的奋斗,项目的离线数仓部分终于可以上线了,因此整理一下离线数仓的整个流程,既是大家提供一个案例经验,也是对自己近半年的工作进行一个总结。 项目行业属于交通行业,因此数据具有很多交通行业的特征,比如转向比数据就是统计车辆左转、右转、直行

    2024年02月07日
    浏览(42)
  • 一百八十七、大数据离线数仓完整流程——步骤六、在ClickHouse的ADS层建表并用Kettle同步Hive中DWS层的结果数据

    经过6个月的奋斗,项目的离线数仓部分终于可以上线了,因此整理一下离线数仓的整个流程,既是大家提供一个案例经验,也是对自己近半年的工作进行一个总结。 1、ClickHouse的ADS层建库建表语句 --如果不存在则创建hurys_dc_ads数据库 create database if not exists hurys_dc_ads; --使用

    2024年02月07日
    浏览(40)
  • 离线数仓建设之数据导出

    为了方便报表应用使用数据,需将ADS各项指标统计结果导出到MySQL,方便熟悉 SQL 人员使用。 创建car_data_report数据库: 1.1.2 创建表 ① 里程相关统计 创建ads_mileage_stat_last_month表,存储里程相关统计数据。 ② 告警相关统计 创建ads_alarm_stat_last_month表,存储告警相关的统计数据。

    2024年03月16日
    浏览(36)
  • 从0到1搭建数据仓库流程

    从0到1搭建数仓,可以概括为6个步骤:业务探查、技术选型、规范制定、主题域划分、数仓分层、模型建设。 一、业务探查 梳理公司业务系统,业务关心的指标,开发过的需求。一般业务关心的数据集中在两三类数据上 二、技术选型 根据已有的数据,选择技术平台,及开发

    2024年02月16日
    浏览(22)
  • 实时数仓建设第2问:怎样使用flink sql快速无脑统计当天下单各流程(已发货,确认收货等等)状态的订单数量

    实时统计当天下单各流程状态(已支付待卖家发货,卖家通知物流揽收,待买家收货等等)中的订单数量。 订单表的binlog数据发送到kafka,flink从kafka接受消息进行指标统计。因为每笔订单的状态会发生变化,比如上午为【已支付待卖家发货】,这个时候【已支付待卖家发货】指标

    2024年02月16日
    浏览(31)
  • 数据仓库建设实践——如何通过数据仓库建设提升效率并确保数据质量

    作者:禅与计算机程序设计艺术 随着互联网经济的快速发展,全球消费者对汽车的需求越来越旺盛。在全球范围内,公共汽车运营商(PSA)正在竞争激烈,包括美国的Tesla、上海的东风、中国的福特等。全球公共汽车市场规模每年呈现爆炸性增长态势。其中,美国曾经的领先地

    2024年02月11日
    浏览(56)
  • 数仓建模—数据仓库初识

    数据仓库之父Bill Inmon在1991年出版的\\\"Building the Data Warehouse\\\"一书中所提出的定义被广泛接受 数据仓库(Data Warehouse)是一个 面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making

    2024年04月22日
    浏览(22)
  • 数据仓库(2)-认识数仓

    数据仓库 ,由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,做有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mini

    2024年01月21日
    浏览(27)
  • 离线数仓-数据仓库系统

    ODS层(Operational Data Store) :运营数据存储层,用于存储来自操作型系统的原始数据,是数据仓库中的第一层。 DWD层(Data Warehouse Detail) :数据仓库细节层,用于存储经过清洗和加工的详细数据,保留了原始数据的细节信息。 DWS层(Data Warehouse Summary) :数据仓库汇总层,用

    2024年04月11日
    浏览(34)
  • 数据仓库(数仓)介绍

    1 )数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。 2 )数

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包