揭秘数据库、数据仓库、数据湖和数据湖之家

您是否想知道数据仓库与数据库有何不同?什么是数据湖和数据湖屋 ?让我们用一个假设的例子来理解这些。 

Bookster.biz 是全球图书销售领域的新热点。业务蓬勃发展,他们需要跟踪大量数据:数百万本书的庞大目录,全球数百万客户下了数十亿的书籍购买订单。他们如何跟踪所有这些数据?他们如何确保他们的网站和应用程序不会因为所有这些负载而陷入瘫痪?

数据库来救援

数据库是网站和移动应用程序的主力,处理所有数据和数百万笔交易。这些数据库有多种类型(我们将在单独的帖子中介绍所有不同类型的数据库)。尽管如此,最流行的还是关系数据库(又名 RDBMS),如 MySQL、Postgres、Oracle 等。 

Bookster 可能有以下表格和模式(为简洁起见,并未详尽无遗):

  • 图书目录:图书 ID、  ISBN、标题、作者、描述、出版商……
  • BookInventory:图书 ID、 可供销售的图书数量、...
  • 用户:用户 ID、 用户名、电子邮件……
  • 订单:订单 ID、图书 ID、用户 ID、 付款信息、订单状态……

当用户订购一本书时,Bookster 将同时更新两条记录:减少图书库存并在 Orders 表中插入新的订单条目。RDBMS 支持启用此类原子操作的事务,其中所有此类操作都成功或全部失败。想象一下,如果两个或更多用户可以订购一本流行书籍的最后一本。如果没有交易支持,所有客户都会下订单,而 Bookster 将会有很多愤怒的客户,除了一名。同样,如果数据库主机在处理过程中崩溃,则在没有事务的情况下数据可能会不一致。

这种数据库交互类型称为联机事务处理(又名 OLTP),其中读写操作在少量数据(即上例中恰好是两行)上发生得非常快。 

这很棒。顾客现在很高兴,他们可以快速订购书籍。但管理层想知道业务进展情况。哪些书在不同类别中最畅销?哪些作者很受欢迎,哪些作者销量不高?有多少订单来自哪些地区或人口统计?仅通过数据库无法获得此类答案。

数据仓库在分析查询方面表现出色

数据仓库(DW)可以处理大量数据,例如数十亿个订单、数百万个图书条目等。Bookster可以将数据从数据库加载到DW来回答管理问题。分析查询读取大量数据并以某种形式对其进行汇总,例如列出按地理和人口统计数据细分的特定书籍的订单总数。流行的 DW 示例有 AWS Redshift、GCP BigQuery 等。 

这种数据库交互类型称为在线分析处理(又名 OLAP),其中大多数读取发生在大量数据上。数据可以批量上传到DW,也可以流式传输。加载过程也称为 ETL(提取、转换和加载),定期执行以保持 DW 与数据库更新同步。DW 通常不允许更新数据,而只允许添加更新的版本。 

与 RDBMS 一样,DW 也有模式的概念,其中表和模式都被明确定义,ETL 过程将数据转换为适当的模式以供加载。 

有些数据不太适合该架构,但可以由机器学习 (ML) 流程使用。例如,客户以文本或视频评论的形式评论不同的书籍,一些明星机器学习工程师希望通过培训所有书籍的法学硕士来生成流行书籍。因此,数据不能再被结构化为严格的模式。数据湖可以通过存储更多不同格式的数据并实现高效处理来帮助解决这一问题。

数据湖和数据湖之家是相对较新的事物

数据湖(DL) 克服了将数据转换为特定格式的麻烦,无论是否以及何时使用数据。不同原生格式(如 JSON、文本、二进制、图像、视频等)的大量数据可以存储在 DL 中,并仅在需要处理数据时在读取时转换为特定模式。由于 DL 可以支持 Apache Spark 等大数据处理框架,因此处理灵活且可扩展。另一方面,如果由于缺乏数据质量检查或治理而摄入的大部分数据质量较低,这种灵活性可能会成为一个缺点,从而使深度学习成为“数据沼泽”。 

这就是 Databricks 的聪明人将 DW 与 DL 的优点结合起来创建数据湖之家 (DLH)。DLH 比 DW 更灵活,可以根据需要在写入或读取时使用架构,但具有更严格的数据质量检查和元数据管理机制(也称为数据治理)。此外,DLH 还可以像 DL 一样灵活地进行大数据处理。

下表总结了这些技术之间的差异:

主要特点

适合于 

缺点

例子

数据库

快速、小查询、事务支持

在线用例 (OLTP)

不适合大型分析查询

关系型数据库管理系统:MySQL

数据仓库

查询速度慢,查询量大,写入后无更新

分析(OLAP)

由于严格的模式而缺乏灵活性,并且缺乏对大数据处理框架的支持

AWS Redshift、Google BigQuery、*Snowflake

数据湖

非结构化数据、读取模式、灵活的大数据处理

分析(OLAP)

缺乏数据治理导致数据质量问题

*Snowflake
**AWS Lake Formation,**Databricks Delta Lake

数据湖之家

结构化或非结构化数据,灵活,具有更好的数据治理并支持大数据处理

分析(OLAP) 

与 DW 相比更复杂、性能更低且更昂贵

*Snowflake
**AWS Lake Formation,**Databricks Delta Lake

*Snowflake 可以配置为数据仓库、数据湖或数据湖屋。

**AWS Lake Formation 和 Databricks Delta Lake 可以配置为 Data Lake 或 Data Lake House。  


更多技术干货请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

irds.cn,多数据库管理平台(私有云)。

你可能感兴趣的:(技术专栏,数据库,数据仓库)