要了解云数据湖如何帮助满足组织不断增长的数据需求,必须首先了解几十年前数据处理和预测的工作原理。企业通常认为数据是对需要解决的业务问题的补充。该方法以业务问题为中心,包括以下步骤:
1.确定要解决的问题;
2.定义有助于解决问题的数据结构;
3.收集或生成符合结构的数据;
4.将数据存储在OLTP(在线事务处理系统)数据库中,例如,Microsoft SQL Server;
5.使用转换(过滤、聚合等)将数据存储在OLAP(在线分析处理系统)数据库中,这里也使用SQL服务器;
6.从这些OLAP数据库构建商业智能仪表盘和查询,以解决业务问题。
例如,当一个组织(企业)想要了解销售时,它为销售人员构建了一个应用程序,用于输入他们的潜在客户、客户和参与度以及销售数据,并且该应用程序由一个或多个操作数据库支持。可能有一个数据库存储客户信息,另一个存储销售人员的员工信息,第三个数据库存储引用客户数据库和员工数据库的销售信息。本地部署(称为“on prem”)有三层,如图1-4所示。
企业数据仓库
企业数据仓库是存储数据的组件,包含一个用于存储数据的数据库组件和一个用于描述存储在数据库中的数据的元数据组件。
数据集市
数据集市是企业数据仓库的一部分,其中包含以业务或主题为中心的数据库,这些数据库中的数据已准备好为应用程序提供服务。企业数据仓库中的数据经过转换后存储在数据集市中。
消费层/商业智能层
这包括BI分析师用于查询数据集市(或数据仓库)中的数据以生成见解的各种可视化和查询工具。
图1-4:传统的本地数据仓库
虽然本地数据仓库能够提供对业务的见解,但此架构存在一些重要限制:
高度结构化的数据
此架构期望数据在每一步都高度结构化。正如前面的例子所揭示的,这个假设完全不现实,数据可以来自任何来源,例如,物联网传感器、社交媒体源和视频/音频文件,也可以是任何格式(JSON、CSV、PNG等)。在大多数情况下,无法强制执行严格的结构。
孤立的数据存储
相同数据的多个副本存储在专用于特定用途的数据存储中。这被证明是一个缺点,因为存储这些相同数据副本的成本很高,并且来回复制数据的过程既昂贵又容易出错,容易导致在复制数据时跨多个数据存储的数据版本不一致。
满足峰值利用率的硬件配置
本地数据仓库要求组织安装和维护运行这些服务所需的硬件。当预计需求会激增时(想想财政年度的预算结束或预计假期期间的更多销售额),需要提前计划此峰值利用率并购买硬件,即使这意味着某些硬件将在其余时间未充分利用。这会增加总拥有成本。注意,这是一个与本地硬件相关的限制,而不是数据仓库和数据湖架构之间的差异。
正如1.1节提到的,大数据场景远远超出了传统企业数据仓库的范围。云数据湖架构旨在解决这些确切的问题,因为它们旨在满足数据及其来源爆炸式增长的需求,而无须对数据的来源、格式、大小或质量做出任何假设。与传统数据仓库采用的问题优先方法相比,云数据湖采用数据优先的方法。在云数据湖架构中,所有数据都被认为是有用的——无论是立即满足当前需求还是满足未来需求。云数据架构的第一步是以原始自然状态摄取数据,而不受数据源、大小或格式的任何限制。这些数据存储在云数据湖中,云数据湖是一个高度可扩展的存储系统,可以存储任何类型的数据。这些原始数据的质量和价值各不相同,需要更多的转换才能生成高价值的见解。
如图1-5所示,云数据湖上的处理系统处理存储在数据湖中的数据,并允许数据开发人员按需定义架构,即在处理时描述数据。然后,这些处理系统对低价值的非结构化数据进行操作,以生成高价值数据,这些数据通常是结构化的,并且包含有意义的见解。之后,这些高价值的结构化数据要么被加载到企业数据仓库中以供使用,要么直接在数据湖中使用。如果所有这些概念看起来都很复杂,不用担心,第2章和第3章将详细介绍这一过程。
在高级别上,云数据湖架构通过以下方式解决了传统数据仓库架构的局限性。
对数据没有限制
正如我们所看到的,数据湖架构由旨在摄取、存储和处理各种数据的工具组成,而不会对数据的来源、大小或结构施加任何限制。此外,这些系统旨在处理以任意速度进入数据湖的数据:连续发出的实时数据以及按计划批量摄取的数据。此外,数据湖存储的成本极低,因此我们可以默认存储所有数据,而无须担心费用。类似地,在使用那些旧的胶卷相机拍照之前,曾经需要三思而后行,而现在使用手机拍照却可以毫不犹豫。
图1-5:云数据湖架构
无孤岛的单一存储层
在云数据湖架构中,数据的处理发生在同一存储中的数据上,因此不再需要专门的数据存储用于专门的目的。这不仅降低了成本,还避免了在不同存储系统之间来回移动数据时出现错误。
在同一数据存储上运行不同计算的灵活性
云数据湖架构本质上将计算和存储分离,因此,虽然存储层没有多个数据存储库,但可以在同一存储层上运行各种数据处理计算工具。例如,可以利用相同的数据存储层来执行类似数据仓库的BI查询、高级机器学习和数据科学计算,甚至是定制的特定领域计算,例如,媒体处理或地震数据分析等高性能计算。
按实际使用量付费
云服务和工具始终被设计为根据实际需要进行弹性扩展和缩减,客户可以按需创建和删除处理系统。这意味着对于假日季节或预算结束期间的需求激增,可以选择启动这些系统,而在一年中的其他时间则无须使用它们。这大大降低了总拥有成本。
独立扩展计算和存储
在云数据湖架构中,计算和存储是不同类型的资源,它们可以独立扩展,从而允许客户根据需要扩展资源。云上的存储系统非常便宜,可以在较少花费的情况下存储大量数据。传统上,计算资源比存储更昂贵。但是,它们可以按需启动或停止,从而产生大规模的经济效益。
从技术上讲,也可以在本地Apache Hadoop架构中独立地扩展计算和存储。无论如何,这需要仔细考虑专门针对计算和存储优化并具有优化网络连接的硬件选择。这正是云提供商通过其云基础设施服务所提供的。很少有组织(企业)拥有这种专业知识,并明确选择在本地运行其服务。
这种以经济高效的方式处理各种数据的灵活性有助于组织(企业)实现数据的价值,并将数据转化为有价值的改革见解。