元数据,数据库、仓、湖、中台
元数据
什么是元数据
- 元数据:指“关于数据的数据”。元数据标记、描述或刻画其他数据,并且使检索、解读或使用信息更容易。
- 元数据的确是一个非常广泛的概念,元数据的定义也非常简单,只要是描述数据的数据都是元数据。很简单,一个数字170,单看数据你肯定不知道这个数据代表什么,这就需要元数据支持,你才能明白数据代表的事实是什么。它可能是一个人的身高,也可能指一个人的体重,这需要数据对应的标题、单位等信息来描述这个数据,这些就是描述这个数据的元数据了。
元数据的分类
- 元数据的分类有很多种,比较专业的分类一般分为业务元数据、技术元数据和操作元数据。
- 技术元数据是用来描述技术和数据结构的元数据。技术元数据的实例包括字段名称、长度、类型、谱系等。
- 数据库表格设计业务元数据描述数据及其用途的非技术特征。实例有域定义、报表名称、报告和网页的标题、应用程序显示名称、数据质量统计,以及负责解释特定领域中数据质量的团队。
- 操作元数据主要是描述了对数据进行操作的记录。比如修改数据的记录,访问数据的记录等。
OLTP/OLAP
OLTP
- 操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
- 举个例子,你到银行,去取一笔钱出来,或者转账,或者只是想查一下你还有多少存款,这些都是面向“事务”类型的操作。这样的操作有几个显著的特点:首先要求速度很快, 基本上都是高可靠的在线操作(比如银行), 还有这些操作涉及的数据内容不会特别大(否则速度也就相应的降低), 最后,“事务”型的操作往往都要求是精准操作,比如你去银行取款,必须要求一个具体的数字,你是不可能对着柜台员工说我大概想取400到500快之间吧,那样人家会一脸懵逼。
OLAP
- 分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。
- 举个例子,沃尔玛超市的数据库里有很多张表格,记录着各个商品的交易记录。超市里销售一种运动饮料,我们不妨称之为红牛。数据库中有一张表A,记录了红牛在一年的各个月份的销售额;还有一张表B,记录了红牛每个月在美国各个州的销售额;甚至还有一张表C,记录了这家饮料公司在每个州对红牛饮料的宣传资金投入;甚至后来沃尔玛又从国家气象局拿到了美国各个州的一年365天每天的天气表。好,最后问题来了,请根据以上数据分析红牛在宣传资金不超过三百万的情况下,什么季节,什么天气,美国哪个州最好卖?凭借我们的经验,可能会得出,夏季的晴天,在美国的佛罗里达,最好卖,而且宣传资金投入越高销售额应该也会高。可能这样的结论是正确的,但决策者想要看到的是确凿的数据结论,而不是“可能”这样的字眼。科学是不相信直觉的,如果我们人工进行手动分析,会发现这个要考虑的维度实在太多了,根本无法下手,何况这才四五个维度,要是更多了怎么办?OLAP就是为了解决这样的问题诞生的。
数据库/仓/湖/中台
数据库
- 数据库(Database):主要用于事务处理(OLTP),例如银行交易。
- 数据库的特点是:
- 相对复杂的表格结构,存储结构相对紧致,少冗余数据。
- 读和写都有优化,追求高并发的业务场景。
- 相对简单的读写请求,单次作用于相对的少量数据。
- 对于一个简单的图书系统,若用数据库的方式进行存储,表单设计如下。具体有五张表,分别记录了作者信息,图书分类信息,图书信息,及他们之间的关系表。
作者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),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
- 数据仓的特点是:
- 相对简单的表格结构,存储结构相对松散,多冗余数据。
- 一般只是对读取进行优化。
- 相对复杂的读取请求,单次作用于相对大量的数据(历史数据)。
- 若对上文所提到的五张数据表,以图书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的回答 - 知乎