开放式数据湖仓,释放数据分析无限潜能

文/Cloudera首席技术官Ram Venkatesh

文/Cloudera 产品管理副总裁 Priyank Patel

Cloudera 客户运行着地球上最大的一些数据湖。这些湖为关键任务大规模数据分析、商业智能 (BI) 和机器学习用例,包括企业数据仓库,提供动力。近年来,创造了“数据湖仓”一词来描述这种对数据湖中的数据进行表分析的架构模式。在匆匆奔向这个术语的过程中,许多厂商忽略了这样一个事实,即数据架构的开放性是其持久性和长盛不衰的保证。

关于数据仓库和数据湖

数据湖和数据仓库将海量的各种类型数据统一到一个中心位置。但是有着截然不同的架构世界观。数仓是为SQL 分析垂直集成的,而数据湖优先考虑 SQL 之外的分析方法的灵活性。

为了能兼得鱼与熊掌——数据湖中分析的灵活性和数仓中简单快速的 SQL,企业经常部署数据湖来补充他们的数仓,在数据提取、转换、加载 (ETL) 或 ELT 管道的最后一步让数据湖为数仓系统提供数据。在这样做的过程中,他们等于接受了数据在仓库中的锁定。

但可以有一个更好的方法:用 Hive 元存储,这是过去十年数据平台一个出人意料的好产品。随着用例的成熟,我们看到高效的交互式 BI 分析和事务语义来修改数据的需求。

数据湖仓的迭代

第一代 Hive元存储试图解决在数据湖上高效运行 SQL 的性能考虑。它提供了数据库、模式和表的概念,用于描述数据湖的结构,让 BI 工具可以有效地充分使用数据。它添加了描述数据逻辑和物理布局的元数据,支持基于成本的优化器、动态分区裁剪以及针对 SQL 分析的一些关键性能改进。

第二代 Hive元存储添加了对使用 Hive ACID 的事务更新的支持。数据湖仓虽然尚未正式命名,但已开始热闹。事务性启用了持续摄取和插入/更新/删除(或合并)的用例,从而打开了数仓样式的查询、功能以及从其他数仓系统到数据湖的迁移。这对我们的许多客户来说非常有价值。

Delta Lake项目采用不同的方法来解决这个问题。Delta Lake为数据湖中的数据添加了事务支持。可以进行数据策管,为数据湖带来了运行数仓式分析的可能性。

渐渐的在某个时刻,“数据湖仓”这个词因为这种架构模式而被造出来了。我们相信湖仓是简洁地定义这种模式的好方法,并很快在客户和行业中获得了共识。

开放数据湖仓满足互操作性需求

在过去几年中,随着新数据类型的诞生和新的数据处理引擎的出现,为了简化分析,企业所期望的两全其美真的需要分析引擎的灵活性。如果企业海量有价值的数据需要被管理,那么企业必须能够开放的选择不同的分析引擎,甚至是供应商。

湖仓模式在实施过程中存在一个严重的矛盾:虽然数据湖是开放的,但湖仓却不是。

在能够添加 Impala、Spark 等引擎之前,Hive元存储一直遵循 Hive为先的演进。Delta lake是Spark为主的演进;如果客户想要自由选择不同的引擎而不只是表格式,他们的选择极为有限。

客户从一开始就要求更多。更多格式、更多引擎、更多互操作性。今天,Hive 元存储被多个引擎和多个存储选项使用。除了 Hive 和 Spark,还有 Presto、Impala 等等。Hive元存储是有机地演进支持这些用例,因此集成通常很复杂且容易出错。

为满足互操作性需求而设计的开放数据湖仓从根本上解决了这一架构问题。它会让那些全押在一个平台上的人感到不安,但社区驱动的创新能帮助解决现实世界的问题,以务实的方式帮助使用同类最佳工具,并克服供应商的锁定。

开放湖仓Apache Iceberg的诞生

Apache Iceberg 从一开始构建时,其目标就是在多个分析引擎在云原生规模上轻松实现互操作。这项创新的诞生之地 Netflix 需要将 100 PB 规模的 S3 数据湖构建到数仓中,这可能是最佳示例了。云原生表格式由其创建者开源到 Apache Iceberg 中。

Apache Iceberg 真正的超级力量是它的社区。在过去三年中,Apache Iceberg 社区有机地蓬勃发展,增加了一系列令人赞叹的优异集成:

  • 数据处理和 SQL 引擎 Hive、Impala、Spark、PrestoDB、Trino、Flink
  • 多种文件格式:Parquet、AVRO、ORC
  • 社区中的大型采用者:Apple、LinkedIn、Adobe、Netflix、Expedia 等
  • AWS Athena、Cloudera、EMR、Snowflake、腾讯、阿里巴巴、Dremio、Starburst 的托管服务

使这个多样化的社区蓬勃发展的原因是数千家公司的集体需求,以确保数据湖可以演变为包含数据仓库,同时保持跨引擎的分析灵活性和开放性。这使得开放式湖仓成为可能:为未来提供无限的分析灵活性。

Cloudera拥抱Iceberg模式

在 Cloudera,我们为我们的开源根基感到自豪,并致力于社区贡献。自 2021 年以来,我们为日益壮大的 Iceberg 社区在 Impala、Hive、Spark 和 Iceberg 上做出了数百项贡献。我们扩展了 Hive 元存储将集成添加到我们的许多开源引擎中以充分利用 Iceberg 表。2022 年初,我们在 Cloudera Data Platform (CDP) 中提供了 Apache Iceberg 的技术预览,使 Cloudera 客户能够在我们的数据仓库、数据工程和机器学习服务中实现 Iceberg 的模式和时间旅行能力。

我们的客户一直告诉我们,无论是现代 BI、AI/ML、数据科学还是更多,分析需求都在迅速发展。选择由 Apache Iceberg 提供支持的开放数据湖仓让企业可以自由选择分析。