元数据_数据库_仓_湖_中台

元数据,数据库、仓、湖、中台

元数据

什么是元数据

  • 元数据:指“关于数据的数据”。元数据标记、描述或刻画其他数据,并且使检索、解读或使用信息更容易。
  • 元数据的确是一个非常广泛的概念,元数据的定义也非常简单,只要是描述数据的数据都是元数据。很简单,一个数字170,单看数据你肯定不知道这个数据代表什么,这就需要元数据支持,你才能明白数据代表的事实是什么。它可能是一个人的身高,也可能指一个人的体重,这需要数据对应的标题、单位等信息来描述这个数据,这些就是描述这个数据的元数据了。

元数据的分类

  • 元数据的分类有很多种,比较专业的分类一般分为业务元数据、技术元数据和操作元数据。
  1. 技术元数据是用来描述技术和数据结构的元数据。技术元数据的实例包括字段名称、长度、类型、谱系等。
  2. 数据库表格设计业务元数据描述数据及其用途的非技术特征。实例有域定义、报表名称、报告和网页的标题、应用程序显示名称、数据质量统计,以及负责解释特定领域中数据质量的团队。
  3. 操作元数据主要是描述了对数据进行操作的记录。比如修改数据的记录,访问数据的记录等。

OLTP/OLAP

OLTP

  • 操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。

OLAP

  • 分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。

数据库/仓/湖/中台

数据库

  • 数据库(Database):主要用于事务处理(OLTP),例如银行交易。
  • 数据库的特点是:
  1. 相对复杂的表格结构,存储结构相对紧致,少冗余数据。
  2. 读和写都有优化,追求高并发的业务场景。
  3. 相对简单的读写请求,单次作用于相对的少量数据。
  • 对于一个简单的图书系统,若用数据库的方式进行存储,表单设计如下。具体有五张表,分别记录了作者信息,图书分类信息,图书信息,及他们之间的关系表。
作者ID 作者名 出生日期 性别
1 张三 1970.09.07
2 李四 1980.09.08
3 王五 1990.09.09
4 赵六 2000.01.01
图书分类ID 书本类型
1 语文书
2 数学书
3 英语书
4 编程书
图书ID 书名 出版日期
12321 红楼梦 1234
23432 西游记 1334
34543 王后雄习题册 2002
45654 华罗庚习题册 2000
56765 Death in Town 1899
67876 Java 1999
图书分类ID 图书ID
1 12321
1 23432
2 34543
2 45654
3 56765
4 67876
作者ID 图书ID
1 12321
2 23432
3 34543
3 45654
1 56765
4 67876

数据仓

  • 数据仓(Datawarehouse):主要用于数据分析(OLAP),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
  • 数据仓的特点是:
  1. 相对简单的表格结构,存储结构相对松散,多冗余数据。
  2. 一般只是对读取进行优化。
  3. 相对复杂的读取请求,单次作用于相对大量的数据(历史数据)。
  • 若对上文所提到的五张数据表,以图书ID作为主键,新建查询表,即可将上述的表单合并为一张行的查询表单,我们认为这便是数据仓的表格结构。不难看出,由于数据库的各个表之间并不是一一对应的关系,这在生成数据仓后,相比于数据库紧密的存储结构,数据仓库则存在大量冗余重复的数据。
图书ID 书名 出版日期 作者名 出生日期 性别 图书类型
12321 红楼梦 1234 张三 1970.09.07 语文书
23432 西游记 1334 李四 1980.09.08 语文书
34543 王后雄习题册 2002 王五 1990.09.09 数学书
45654 华罗庚习题册 2000 王五 1990.09.09 数学书
56765 Death in Town 1899 张三 1970.09.07 英语书
67876 Java 1999 赵六 2000.01.01 编程书

数据库/仓读写对比

  • 对于读取操作而言,由于数据库需要利用表之间的关联才能找到所有需要的数据,在效率上会相对低下。相比之下数据仓库把这些关联关系转化成重复数据记录到同一张表上了,查询效率相对就会较高。数据仓库相当于牺牲了空间换取了查询效率。除此之外,由于数据报告和数据分析常常涉及到大规模的查询,这些查询很可能会占用很高的CPU资源,从而可能影响到数据库的常规读写操作。
  • 对于写入操作而言,由于数据仓存在着大量的冗余信息,,有时候只是改一个很小的字段,也会修改大量的行数。大多数情况下,数据仓库不太会进行精确的写操作。而几乎不存在冗余的数据库则不存在这样的问题。

数据湖

-数据湖(ODS):原始数据保存区,是一种在系统或存储库中以自然格式存储数据的方法,有助于以各种模式和结构形式配置数据,通常是对象块或文件。数据湖可对结构化数据(关系数据库数据),半结构化数据(CSV、XML、JSON等),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像、音频、视频),从而形成一个容纳所有形式数据的集中式数据存储

  • 可为啥需要有数据湖呢,原有的结构化数据表不好用么?主要还是由于数据科学与深度学习技术的发展,处理数据的能力得到了提升,可以通过未丢失信息的原始数据,或是非结构化的数据(如用户的评论、图像等)作为数据源获得更多有效的信息。
  • 并且,传统数仓的工作模式是集中的,用户将需求与愿景提供给开发人员,数据团队根据干系人的具体需求,对数据进行加工、开发,以供查询。而数据湖的工作模式是自助的,数据开放给所有人使用,开发人员提供工具及环境,用户可根据需要自主进行分析与开发。

数据中台

  • 数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。
  • 数据中台包含了数据平台和数据仓库的所有内容,将其打包,并且以更优雅以及更产品化的方式对外提供服务和价值。数据仓库的主要场景是支持管理决策和业务分析,而数据中台则是将数据服务化之后提供给业务系统,目标是将数据能力渗透到各个业务环节,不限于决策分析类场景。

参考:
数据库 与 数据仓库的本质区别是什么? - Mingqi的回答 - 知乎