数据库和数据湖的关键概念性差异

服务器是一次性的。数据在云中。

解耦存储和计算。在谈论数据湖时,这是一个典型的问题。

在传统的数据库系统(以及最初的基于Hadoop的数据湖)中,存储与计算服务器紧密结合。服务器要么有内置的存储,要么直接连接到存储。

在现代基于云的数据湖架构中,数据存储和计算是独立的。数据被保存在云对象存储(例如:AWS S3、Azure Storage)中,通常是以一种开放的格式,如parquet,而计算服务器是无状态的,它们可以在必要时启动/关闭。

拥有一个解耦的存储和计算使。

    降低计算成本。服务器在必要时运行。当不使用时,它们可以被关闭,从而降低了计算成本。
    可扩展性。你不必为高峰期的使用而购置硬件。服务器/中央处理器/内存的数量可以根据当前的使用情况动态地增加/减少。
    沙盒化。相同的数据可以被多个计算服务器/集群同时读取。这使得你可以让多个团队在不同的集群中并行工作,读取相同的数据,而不影响彼此。
    RAW数据才是王道!策划的数据只是衍生的。

在数据库范式中,来自源系统的数据被转化并加载到数据库表中后,它就不再有用了。在数据湖范式中,RAW数据被保留为真理的源泉,最终永远保留,因为它是真正的资产。

然而,RAW数据通常不适合商业用户的消费,因此它要经过一个策划过程,以提高其质量,提供结构并方便消费。经过整理的数据最终被储存起来,供数据科学团队、数据仓库、报告系统以及业务用户的一般消费使用。

典型的数据湖消费者只看到策划过的数据,因此他们对策划过的数据的重视程度远远超过产生这些数据的RAW数据。

然而,数据湖的真正资产是RAW数据(连同策展管道),从某种意义上说,策展的数据类似于一个可以随时刷新的物化视图。

主要收获:

    可以在任何时候从RAW中重新创建。
    可以通过改进策展过程来重新创建。
    我们可以有多个策划好的视图,每个视图都用于特定的分析。

今天做出的模式决定不会制约未来的需求

通常情况下,信息需求会发生变化,一些原先没有从源头/运营系统中收集的信息需要被分析。

在一个典型的情况下,如果原始的RAW数据没有被存储,历史数据就会永远丢失。

然而,在数据湖架构中,今天决定不把某个字段加载到策划的模式中,以后可以推翻,因为所有的详细信息都安全地存储在数据湖的RAW区域,历史策划的数据可以用额外的字段重新创建。

主要收获:

    如果你现在不需要,就不要花大量的时间去创建一个通用的一刀切的策划模式。
    迭代地创建一个策划的模式,从添加你现在需要的字段开始。
    当需要额外的字段时,将它们添加到策展过程中并重新处理。
最后的思考

数据湖不是数据库的替代品,每种工具都有它的优势和致命弱点。

将数据湖用于OLTP可能是一个坏主意,就像使用数据库来存储数千兆字节的非结构化数据一样。

我希望这篇文章有助于阐明两个系统之间的一些关键设计差异。

以上是数据库和数据湖的关键概念性差异的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>