vlambda博客
学习文章列表

数据湖正成为新的数据仓库



像AWSLake Formation和Delta Lake这类平台正成为用于决策支持和AI驱动型决策自动化的治理中心。


数据仓库是再度扮演重要角色,还是说奄奄一息?


如果你在这个问题上有点困惑,那也情有可原。一方面,数据仓库无疑似乎炙手可热。作为一名长期的行业观察人士,我看到这个行业创新不断,创业活动高潮迭起。


这股趋势实际上始于十年前一体机(appliance)这种设备进入数据仓库主流,然后随着几年前市场转向新一代云数据仓库,获得了新的发展势头。过去这几年,一家云数据仓库供应商Snowflake在市场上获得了异常的关注。


数据仓库黯然失色


另一方面,数据仓库在新的行业模式面前一次次黯然失色,比如大数据、机器学习和AI等新模式。这股趋势加深了这种印象:作为一个企业IT优先事项,数据仓库日渐式微,但实际上大多数企业组织现在至少有一个、常常有多个数据仓库为各种下游应用提供服务。


数据仓库依然是核心的企业工作负载,这就是为什么几年前我觉得我要撰文解释为什么数据仓库远未消亡。这也可以解释为什么其他观察人士认为他们要重新定义数据仓库概念,好让数据仓库在数据湖和云计算盛行的时代继续扮演重要角色。


数据仓库这种实践不仅蓬勃发展,现在还被视为是云计算行业一个值得期待的主要增长点。然而,如果你一味关注带这个标签进入市场的那些平台(比如Snowflake),就会看不到这个领域的大部分面貌。


数据湖大行其道


许多人所说的“数据湖”正迅速发展成为下一代数据仓库。有必要向不熟悉这个概念的人介绍一下,数据湖是多重结构数据的系统或存储库,这些数据以自然的格式和模式来存储,通常作为对象“blob”或文件。


数据湖通常用作所有企业数据的单个存储区,包括源系统数据和已转换数据的原始副本,已转换数据用于报告、可视化、分析和机器学习等任务。数据湖包含分布式文件或对象存储、机器学习模型库以及高度并行化的处理和存储资源集群。此外,数据湖通常在读取时执行模式,并使用统计模型从中提取有意义的关系和模式,而不是对它们存储的对象执行通用模式和语义。


这一切与为大多数专业人员采用的数据仓库方法提供依据的Inmon和Kimball核心概念不一致。从根本上说,数据仓库是为了聚合、保留和管理得到官方认可、“单一版本真相”的数据记录而存在的。这个概念与所管理数据的特定应用领域和具体的特定使用场合无关。


如果你怀疑我在这个方面的说法,不妨看看Bill Inmon对数据仓库定义的这番讨论(http://www.b-eye-network.com/view/16066)以及对Inmon的框架和Ralph Kimball的框架进行的这番比较(https://www.computerweekly.com/tip/Inmon-or-Kimball-Which-approach-is-suitable-for-your-data-warehouse)。数据仓库的关键通常是为决策提供数据驱动型支持,因而可以很好地扩展到AI驱动型推理这个新领域。


下一代数据仓库


在过去的一年,几则备受瞩目的行业宣布表明了数据仓库的角色已发生转变。虽然决策支持(又叫商业智能、报告和联机分析处理)仍是大多数数据仓库的核心使用场合,但我们看到了向决策自动化的稳步转变。换句话说,数据仓库现在支持为数据驱动的推理构建机器学习应用的数据科学管道。


新一代数据仓库实际上是数据湖,首要任务是用来治理用于构建和训练机器学习模型的清理、整合和认可。比如说在去年秋天在亚马逊re:Invent大会上,AWS宣布了AWSLake Formation。这种新型托管服务的明确目的是,简化和加快安全数据湖的安装和配置。然而,AWS Lake Formation拥有云数据仓库的所有标志,不过AWS没有称之为云数据仓库,实际上已经提供了一种面向决策支持应用的经典数据仓库Amazon Redshift。


AWS Lake Formation的外观和行为都类似数据仓库。的确,AWS这样来描述该服务:“数据湖是一种集中的、筛选的且安全的存储区,它以原始形式和针对分析而做准备的形式来存储所有数据。数据湖让你可以打破数据孤岛,结合不同类型的分析工具,以获得洞察力并指导更好的业务决策。”


的确,AWS将AWS Lake Formation视作一种用于决策支持和AI驱动型决策自动化的超级数据仓库。具体来说,这家供应商声称这项服务旨在管理“你用户可以利用的数据集......用户可以选择用来管理的分析和机器学习服务,比如Amazon EMR for Apache Spark、Amazon Redshift、Amazon Athena、Amazon SageMaker和Amazon QuickSight 。”


另一个典型例子是Databricks最近宣布的Delta Lake开源项目。Delta Lake(现在已有采用Apache 2.0许可证的版本)的明确目的类似AWS Lake Format:聚合、清理、筛选和管理数据湖中维护的数据集,以支持机器学习管道。


Delta Lake位于可以从Apache Spark访问的现有内部部署或云数据存储平台上,比如HDFS、Amazon S3或微软Azure blob存储。Delta Lake以Parquet格式存储数据,以提供Databricks所谓的“事务存储层”。Parquet是一种开源列存储格式,可用于Hadoop生态系统中的任何项目,无论选择哪种数据处理框架。它通过乐观的并发串行化、快照隔离、数据版本控制、回滚和模式实施来支持ACID事务。


Delta Lake与AWS Lake Formation的一个关键区别是,Delta Lake在该管道中既处理批量数据,又处理流数据。另一大区别是,Delta Lake支持所有数据的ACID事务,允许数百个应用程序同时进行多次写入和读取。此外,开发人员可以访问每个Delta Lake的早期版本,以便审计、回滚或者重现MLFlow机器学习实验的结果。


从最广泛的层面上来看,DeltaLake似乎与最广泛采用的开源数据仓库项目Apache Hive竞争,不过Hive完全依赖基于HDFS的存储,就在不久前还缺乏对ACID事务的支持。一年前宣布的Hive3终于为基于Hadoop的数据仓库带来了ACID支持功能。Hive3使用增量文件(delta file),对针对事务型CRUD(创建读取更新删除)表的操作提供了原子性和快照隔离。


AI驱动型决策自动化的基础


AWS Lake Formation、Delta Lake和Hive 3,最近这些行业宣布预示着有一天,数据湖成为所有决策支持和决策自动化应用的治理中心,以及所有事务数据应用的治理中心。要想让这些趋势加快发展,Hive 3和Delta Lake等开源项目需要在供应商和用户当中获得更广泛的支持。


“数据仓库”这个术语可能继续主要指面向商业智能(BI)的结构化数据的受管理多领域存储。然而,底层数据平台将继续演进,为基于云的AI管道提供核心的数据治理基础。


当下在推动企业数据仓库发展的是AI,而不是BI。


原文链接:https://www.infoworld.com/article/3405443/the-data-lake-is-becoming-the-new-data-warehouse.html