专栏首页巡山猫说数据「06」数据仓库基础知识

「06」数据仓库基础知识

上周我们简单介绍了埋点相关的基础知识。

按照数据链路的走向,咱们今天来讲讲数据仓库的基础知识 。

什么是数据仓库?

数仓,DataWarehouse,是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。

而这个数据集合的建立,是为了支持管理者的决策过程。

也就是说,我们通过建设数仓,为业务中的流程改进、成本计算,产出收入等环节,提供相应的决策指导及流程监控。

数仓有什么特点?

• 面向主题性

数仓中的所有数据,都是面向特定的业务域而产生的。

比如,某电商APP,就会有面向用户的数仓,面向订单的数仓,面向商品的数仓

我们在建设数仓时,需要在较高层次上把业务拆分为各个域,我们用数据的方式,去定义了这个域,就有了数仓中的面向主题性。

• 集成性

面向主题性中我们说到,我们的数据需要对应不同的业务域。

那每个业务域中的每个事件产生的数据,都会有最初的底层数据库。

怎么通过这些数据库,抽取我们想要的业务域,集成一个可描述的,有层级的,完整的数据集合,就是数据仓库的建立过程。

这个过程,其实就是抽取零散业务数据构建集合的过程。

所以,数据仓库具有集成性。

• 稳定性

物理上,数据存储需要稳定性。

业务上,我们要保证数仓建设的结构清晰,层次分明,从而保证整体数仓结构的稳定性。

通俗来说,就是保证数仓结构不要频繁变更

• 与时间强相关

从物理存储上说,数据仓库随着时间和业务的变化,会不断往里追加数据内容,也会不断删掉旧的数据内容。数仓中的每个表格,都会有对应的“生命周期”。

从业务意义上说,数据仓库反应的是,某一段历史时间内,业务在数据上的表现情况。

数仓的建设方式有哪些?

• K模式

大家可以去搜索一下 Ralph Kimball 这个大佬,他提出的数据仓库架构中的 key模式(敏捷模式),即:关键个体角色目标驱动。

这种方式总体来说,就是明确短期需求后,直接开干。

因为直接开干,所以前期我们整体投入小,见效快。

但是随着业务的发展和迭代,后期肯定需要重构。而重构的成本往往都很高。

• I模式

这又是另一个大佬提出的架构理论,大家可以搜一下 Bill Inmon,他提出的information模式(瀑布模式),即:领域经验知识驱动。

这个和K模式相反,强调前期强规划,一定要想清楚长期目标和需求,再干活。

这种方式,前期投入的成本会高出很多,我们需要规划业务域,数据域,数据层次,表结构等等。

但是后期,整体效果会比K模式好,只是前期见效慢。

整体来说呢

建议前期业务初步发展阶段,先用K模式,但是也要有一个I模式的规划

即:业务发展到什么节点,我们需要开始I模式的搭建。这个需要有个明确的规划。

笔者曾经就有 跑着K模式,后期重构了3次才全部切换成I模式的经历。所以一定要提前做规划。

数仓的层级有哪些?

开局先上图:

从图中我们可以看出,大致可以分为4层:ODS + DWD + DWS + ADS

其中,DWD 和 DWS 可以统一至 CDM层。

当然,我们还需要对应的维度数据:DIM层

ODS层:操作数据层(Operational Data Store),基本上是数据的源头,我们在这一层只做简单的数据清洗,不做业务逻辑处理,存储所有我们能够存储且需要存储的数据。

DWD层:明细数据层(Data Warehouse Detail),一般和ODS层一样,但是会采用维度退化的方法,将维度退化至事实表中,减少事实表格和维度表格的关联,提高表格的易用性。

DWS层:汇总数据层(Data Warehouse Summary),按照主题划分,采用宽表化的手段,构建对应主题下的数据,用于后续业务的查询。

ADS层:应用数据层(Application Data Store),主要存放数据需求中的个性化统计指标。这一层一般面向展示使用。不同需求下的,不同粒度的,个性化统计指标数据。

DIM层:维度表,一般会有2种数据。

一是业务相关的业务属性数据,如用户画像,商品价格。

二是数据中的配置属性数据,如在某表格的 类型 字段中存储了A,A代表的具体的含义,可以在这种 配置属性数据 的维度表格中映射出来。

分层咱们知道了,那么如何根据分层来构建规范的命名呢?

笔者抛砖引玉,提供一些参考。

我们在表名中,一般需要以下几个信息:

1. 所属业务域:是什么业务线?是什么产品线?

2. 所属主题域:是业务域中的用户数据?还是订单数据?

3. 数据分层:在ODS/DWD/DWS/ADS/DIM中属于哪一层?

4. 存储粒度:是全量还是增量?增量周期是多少?

5. 自定义标签:当前数据的业务过程定义

... ...

本文分享自微信公众号 - 巡山猫说数据(sven994777),作者:巡山猫

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据仓库Hive 基础知识(Hadoop)

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,...

    小莹莹
  • 数据仓库基础小知识集锦

    权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

    大数据真好玩
  • 数据库基础知识

    张树臣
  • 数据库基础知识

    我们之所以常常把 DB 等价位 DBMS,是因为我们使用 DBMS 来访问 DB,DB 对我们来说是透明的。

    Fisherman渔夫
  • Git基础知识 —— 获取Git仓库

    官方提供了两种获取Git仓库的方法,第一种是在本地现有项目目录下导入所有文件到Git中,第二种就是从Git仓库中clone项目到本地

    小菠萝测试笔记
  • 数据库基础知识进阶

    Select 字段 from 表名 order by 字段/列;(默认正序,从小到大);

    刘金玉编程
  • 数据库基础知识总结

    转载请注明:http://blog.csdn.net/uniquewonderq

    MickyInvQ
  • 数据库基础与SQL基础知识整理

    1. DBMS(DataBaseManagement System,数据库管理系统)和数据库数据库Schema有两种含义,一种是概念上的Schema,指的是一组...

    洋仔聊编程
  • 不可不知的数据库基础知识

    数据库我想大家应该一点都不陌生吧,我想不管你写啥的,数据库就算没用过也听过了,是我们项目体系里面不可或缺的一环。

    架构师修行之路
  • Hadoop的数据仓库框架-Hive 基础知识及快速入门

    Hive是一个构建在Hadoop上的数据仓库框架。最初,Hive是由Facebook开发,后来移交由Apache软件基金会开发,并作为一个Apache开源项目。

    数据猿
  • 数据仓库基础介绍

    本文将会讲述 BI/DW/DA 领域的一些常见概念,如:事实表、维度表、建模、多维分析、cube 等,但不涉及具体实例分析。

    用户1217611
  • 数据库的基础知识以及创建数据库

    最近的一段时间一直在学习的数据库实例,在学习的过程中遇到了很多的问题,第一个问题就是数据库到底是什么东东?大脑里面没有任何的东西,上网查资料,不...

    程序猿小亮
  • 数据库之ADO.NET基础知识整理

           之前我们所学只能在查询分析器里查看数据,操作数据,我们不能让普通用户去学sql,所以我们搭建一个界面(Web Winform)让用户方便的操作数据...

    洋仔聊编程
  • 基础知识:多人使用一个Github仓库

    在公司进行项目开发,每个项目组多人,往往会共用同一个Github仓库地址。在合并分支的时候,有很多情况是出错的,无法合并。 目录简介 分支简介 ...

    赵腰静
  • Golang语言--【基础知识】访问数据库

    对许多Web应用程序而言,数据库都是其核心所在. 数据库几乎可以用来存储你想查询和修改的任何信息,比如用户信息、产品目录或者新闻列表等。 Go没有内置的驱动支持...

    李海彬
  • SQL数据库的基础知识及使用!

    数据库的约束:避免垃圾数据的产生,禁止非法的数据加入数据库中,保证数据库的结构良好

    Python数据科学
  • 【基础知识】ORACLE数据库错误概述

    ORACLE数据库表示的错误,通常由3个字母加上5个数字来组成,如:ORA-nnnnn,TNS-nnnnn等,其中:

    SQLplusDB
  • MySQL数据库初学基础知识了解

    百度的貌似不好理解啊,让我说啊,数据库是存储数据的地方,超哥,你这不是废话么?这位同学,你你你你你说的对,哈哈,存数据的地方是存在哪里呢,存在硬盘上,为什么不是...

    用户1685462
  • 大数据基础知识

    什么是服务器 服务器也称伺服器,是一种高性能计算机,提供计算服务的设备。 服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。 由于服...

    用户4870038

扫码关注云+社区

领取腾讯云代金券