摘要:数据湖仓一体自2020年起就备受瞩目,始终是数据分析领域的一个热门话题。虽然湖仓一体的需求不断增长,但由于标准不统一,行业巨头企业方案支持的标准互通性差,湖仓一体市场并未像人们期待的那样快速发展。
数据湖仓一体自2020年起就备受瞩目,始终是数据分析领域的一个热门话题。虽然湖仓一体的需求不断增长,但由于标准不统一,行业巨头企业方案支持的标准互通性差,湖仓一体市场并未像人们期待的那样快速发展。
不过随着Apache Iceberg有望成为湖仓一体开放表格式事实上的标准,业界预计2025年,企业对数据湖仓一体的应用将明显提速,湖仓一体加速落地几乎没有什么悬念。
Apache Iceberg是一种专为大规模、复杂数据集设计的开源表格式,用于管理海量数据。Iceberg可以与Spark、DuckDB、Trino和Dremio等SQL引擎,以及Snowflake和Databricks等数据平台集成,使SQL查询能够在数据湖和数据仓库上高效运行。
届时依靠Iceberg开放开源的表格式,企业可以管理和查询大数据,包括传统的数据仓库和新型的数据湖。Iceberg由于供应商无关的数据访问模式、架构演变和互操作性,预计在大数据中的作用将不断扩大。
数据湖仓一体从提出到现在已经渗透了大约5年时间。数据湖是一个存储大量原始数据,包括结构化、半结构化和非结构化数据的存储库,而数据仓库则是用于存储经过处理的结构化的用于分析的数据。数据湖仓一体允许企业在一个集成的环境中,既保留数据湖的灵活性和原始数据存储能力,又能发挥数据仓库的高效分析能力。
2019年Databricks首次提出湖仓一体这个术语,目标是将ACID事务引入数据湖,但并不是为了将数据湖转换为事务数据库,而是能够更好地利用数据湖中的数据,让数据湖具有高可靠性、高性能,并与Apache Spark、Trino和Presto等开源引擎兼容。
为此,Databricks在云对象存储之上,为湖仓一体定义了软件定义的表结构。在传统的数据库或数据仓库中,表结构通常是预先定义好的,包括列的名称、类型等信息。而在湖仓一体环境下,软件定义的表结构则更加灵活,可以通过软件来动态地定义和调整表结构。
使用该表结构,用户可以获得接近数据仓库的性能改进,以及更精细的治理,如可以对表中的每一列、列的数据质量等进行精细管理,在行级别还可以涉及数据的生命周期管理。
三种开源表格式突出重围。虽然AWS、Oracle、Teradata等为数据湖仓一体引入了专有的表格式,但三种开源表格式逐渐占据主流:由Databricks引入的 Delta Lake,以及社区发起的Apache Hudi和Apache Iceberg。
云服务商对湖仓一体的支持在发展中显得尤为关键。AWS、Google Cloud等公布其计划,在其分析产品组合中首先推出对Iceberg的支持,其次才支持Delta Lake;最后也终支持Hudi。
早在2022年,表格式就成为了Databricks和Snowflake之间的最新战场,因为Databricks最终开源了Delta Lake,而Snowflake则全力以赴开发Iceberg。
IDC在其2024年7月发布的报告中认为,Iceberg、Hudi在中国市场上拥有更多支持者,技术供应商也多选择主动适配Iceberg或Hudi的其中一款,或两种全部兼容。
而对Iceberg或Hudi版本的选择也是用户在实际开发运维中顾虑的问题,技术厂商通常会随着Iceberg和Hudi版本的更新而更新,而最新的版本可能在数据性能和接口上存在与已有架构的问题,终端用户更偏好于成熟版本,对产品的更新敏感度更低。
在随着对数据湖操作性需求的增加,开放的表格式有望统一或者标准化,让湖仓一体走向大规模应用。
Delta Lake和Iceberg在数据湖市场中并驾齐驱,争夺数据湖的霸主地位。Databricks开创Lakehouse架构,支持将传统数据仓库工作负载与AI工作负载集成在单个受治理的数据副本上。为此,所有数据都必须采用开放格式,以便不同的工作负载、应用和引擎可以访问相同的数据。
在专有数据仓库中,只有专有SQL引擎可以读取、写入或共享数据,并且通常必须复制和导出数据,以供其他应用使用,从而造成高度的供应商锁定。而Lakehouse架构实现数据访问普及化,最大限度地提高企业生产力,与专有数据仓库形成鲜明对比。
Lakehouse的基础是开源数据表格式,对存储在对象存储中的数据进行ACID事务处理,显著提高了数据湖上数据操作的可靠性和性能,专为Apache Spark、Trino、Presto等开源引擎而设计。
为了应对这些挑战,Databricks与Linux基金会合作创建了Delta Lake项目。自成立以来,Delta Lake拥有来自不同组织的500多名代码贡献者,全球有10,000 多家公司使用Delta Lake平均每天处理4+ EB的数据。
大约在创建Delta Lake的同时,Ryan Blue和Daniel Weeks在Netflix开发了Iceberg项目,并将其捐赠给了Apache软件基金会。
数据湖是一个集中式存储库,允许用户存储任何规模的结构化和非结构化数据。它提供了一种以原生格式存储原始数据,能够随时处理和分析数据的经济高效的方式。而Apache Iceberg为数据湖引入了表抽象层,类似于传统数据仓库中的抽象层,支持架构演变、ACID事务、时间旅行、分区演变等。
从那时起,Delta Lake和Iceberg就成为湖仓一体格式的两个领先的开源标准。尽管这两种表格式都基于Apache Parquet,并且具有相似的目标和设计,但由于独立开发而变得不兼容。
而Apache Hudi是一款开源的数据管理框架,专为大数据场景设计。它能在Hadoop生态系统中,实现对海量数据的高效存储与管理。其支持增量数据处理,能快速处理新增或更新的数据,提升数据处理效率。Hudi提供了数据版本控制和时间旅行查询功能,方便用户回溯历史数据。凭借这些特性,它在数据湖构建等场景中也得到应用,助力企业更好地管理和利用数据。
Databricks缩小与Iceberg兼容性差距,Snowflake持续强化对Iceberg的支持湖仓一体Delta Lake和Iceberg两大开源标准的较量,其实是其后被加大企业集团的竞争。在2024年,出现了一个可喜的现象是两大标准后的公司开始相互兼容。
在过去的两年里,Databricks一直在采取措施,缩小与Apache Iceberg的差距。
一是在新产品中,增加对Apache Iceberg的兼容。2023年10月,Databricks发布的Deta Lake 3.0版增加了对Iceberg兼容性。Delta Lake 3.0通过通用格式自动生成Iceberg所需的元数据,使Delta Lake中的数据可被Iceberg读取,无需手动转换,简化了构建湖仓的集成工作,促进了数据互操作性,提升了用户体验。
而该公司的Delta Lake UniForm通用湖仓一体格式在2023年也增加了对Iceberg的支持。Delta Lake UniForm提供跨Delta Lake、Iceberg和Hudi的互操作性,并支持Iceberg restful目录接口,因此公司可以在其所有数据中使用他们已经熟悉的分析引擎和工具。随着原始Iceberg团队的加入,Databricks将大大拓宽 Delta Lake UniForm的雄心壮志。
二通过收购增加Iceberg的人才和产品。Databricks在2024年6月宣布收购Tabular,一家基于Apache Iceberg标准的通用存储平台的开发商。Tabula由三名前Netflix员工创立的,这些员工在Netflix公司共同创建了Iceberg。有趣的是Snowflake、Confluent也参与了收购Tabular的竞标。
Databricks通过将Apache Iceberg和Linux Foundation Delta Lake两种领先的开源湖仓一体格式的原始创建者聚集在一起,将在数据兼容性方面处于领先地位,因此组织不再受其数据格式的限制。
同时Databricks打算与Delta Lake和Iceberg社区密切合作,为Lakehouse带来格式兼容性,短期内,在Delta Lake UniForm内部实现两种标准的兼容;从长期来看,通过向单一、开放和通用的互操作性标准发展。
此举标志着Databricks加大了弥合其Delta Lake存储格式与Iceberg之间的兼容性的努力。
同时,Snowflake持续强化对Iceberg的支持。
一是Snowflake在支持Iceberg上不断推出新产品和服务。如Snowflake于2024年6月3日推出Polaris Catalog,支持对Iceberg数据的跨引擎访问,并已经开源。
Polaris Catalog被定义为对Iceberg和其他数据架构的供应商中立的开放目录实现,旨在达成对数据的集中、跨引擎访问。它的突出优势包括跨引擎读写功能,无论是面对复杂的数据交互需求,还是多元的业务场景,都能轻松应对。
Snowflake 2024年8月推出Unified Iceberg Tables,助力客户高效管理和运用Iceberg数据,让客户的Iceberg数据在Snowflake的专业管理下释放更大价值,进一步拓展了Iceberg在实际业务中的应用边界。
二是Snowflake在推进数据生态发展的道路上持续发力,不断扩大与各方合作以强化对Apache Iceberg开源表格式的支持。
Snowflake与主要云基础设施公司、数据湖仓一体提供商Dremio以及流数据处理公司Confluent构建起紧密的互操作性,打通数据流通的各个环节,让数据在不同平台间顺畅流转。
Snowflake与Microsoft深化合作,全力实现Snowflake和Microsoft Fabric数据分析平台之间的双向数据访问,使得双方用户都能突破平台限制,便捷地获取所需数据,无论是用于日常的数据分析,还是前沿的人工智能应用程序及模型开发,都有了更广阔的数据资源池。
Snowflake坚定支持Iceberg主要基于多重考量:从市场反馈来看,Iceberg已在业界崭露头角,市场潜力巨大;从技术特性上讲,Iceberg能够随着时间推移灵活改进表架构而无需繁琐重写,让企业轻松应对数据结构的动态变化;其灵活分区的设计使数据管理更加精细、高效;极具特色的“时间旅行”功能,便于企业随时回溯历史数据进行查询,精准挖掘数据价值,这些特性精准匹配了企业在数据处理、分析与利用等多方面的核心诉求,与Snowflake致力于为客户提供高效数据解决方案的目标不谋而合。
多家湖仓一体企业持续支持Iceberg性能提供和功能扩展。例如Dremio著提高了Iceberg数据湖的查询性能,同时最大程度减少用户干预操作。
其核心亮点聚焦两大全新功能:Live Reflections(实时反射)与ResultSet Caching(结果集缓存)。Dremio Reflections作为公司数据湖引擎的关键特性,通过构建优化的预计算数据呈现形式,为查询加速赋能。它形似物化视图,却更加灵活,深度融入Dremio架构体系,进而实现无需挪动、复制数据,就能高速且交互式地查询存储于数据湖内的大规模数据集。
实时反射功能够全方位监控数据湖中的活动轨迹,精准洞察高频使用的查询,进而针对性加速。一旦基本Iceberg表出现变更,它便能自动更新物化视图与聚合结果,时刻保障最佳查询性能。用户借助系统智能推荐,选用最具价值、利于系统整体性能的反射配置,轻松实现查询加速,全程无需操心维护事宜。
结果集缓存功能可将源自所有数据源的查询响应速度提升高达28倍,其秘诀在于存储的并非单纯的查询,而是频繁访问的查询结果。
此外,新上线的读取时合并功能让Iceberg表的写入与读取操作效率飙升85%。基于通知的自动读取特性可自动监控对象存储中的新文件,一旦察觉,立即自动获取,确保数据湖持续更新,无缝衔接新数据。显然,Dremio此番创新,切实为Iceberg数据湖的高效运用筑牢根基,开启全新的数据查询篇章。
Delta Lake和Iceberg并驾齐驱削弱了湖仓一体架构的价值。随着时间的推移,许多其他开源和专有引擎都采用了这些格式。但是,他们通常只采用其中一种标准,而且通常只采用该标准的一部分,从而导致企业数据碎片化和孤立,削弱了湖仓一体架构的价值。
Dremio在“2024年数据湖仓一体现状报告”显示,31%的受访者使用Apache Iceberg,而39%的受访者使用Delta Lake。
然而,在未来三年内,29%的受访者预计将采用Iceberg,而Delta Lake的这一比例仅为23%。
报告认为,两个标准之间的竞争其实是两个阵营之间的竞争,问题不在于确定哪个标准更好,而在于投资其中哪种格式带来收益更大。
Iceberg优势得到进一步的认可。存储和分析大量数据的需求导致了数据湖的广泛采用。数据湖提供了一种经济高效的方式来大规模存储结构化和非结构化数据,使组织能够打破数据孤岛并从各种数据源获得见解。
然而,随着规模和复杂性的增长,数据湖变得越来越难以高效管理和查询。缺乏事务一致性、架构实施和性能优化导致许多数据湖实施成为“数据沼泽”——杂乱无章、难以导航且难以从中提取价值。
Apache Iceberg是一种开放表格式,旨在应对这些挑战,并使数据湖的性能更高、更易于管理,并且能够适应各种使用案例。
Iceberg通过为数据湖带来一组类似仓库的功能(通常称为数据湖仓一体),在现代数据湖架构中发挥着至关重要的作用:
Iceberg为湖中存储的数据文件提供了一个表抽象层,允许用户使用熟悉的SQL命令与数据进行交互,从而更轻松地查询和管理湖中的数据。
Iceberg支持ACID事务,确保数据的一致性和可靠性。使用ACID事务,多个用户可以同时向同一个表读取和写入数据,而不会发生冲突或数据损坏。这在数据湖环境中尤为重要,因为数据不断更新并由多个用户和应用程序访问。
Iceberg支持Schema演变。随着数据的发展,Iceberg允许用户轻松地在表中添加、删除或重命名列,而无需重写整个数据集。这种灵活性使组织能够适应不断变化的数据要求并避免昂贵的数据迁移。
Iceberg提供强大的优化功能,可以提高数据湖中的查询性能。其中一种优化是数据压缩,它涉及将小数据文件合并为较大的数据文件,从而减少查询执行期间需要扫描的文件数量。Iceberg还支持分区修剪,这允许查询跳过不相关的分区,从而显著减少需要处理的数据量。
Iceberg支持时间旅行,即用户可以查询表的历史版本。这对于审计、调试和重现结果特别有用。通过时间旅行,用户可以轻松比较数据随时间的变化并跟踪其数据的沿袭。
通过将这些类似仓库的功能引入数据湖,Iceberg使其更具可用性和适应性,使组织能够运行复杂的查询、执行实时更新并支持各种工作负载,包括批处理、流式处理和机器学习。
为什么采用Iceberg作为数据湖的新标准?由于几个令人信服的原因,公司越来越多地将Iceberg用于其数据湖架构。
Iceberg的主要优势之一是其开放格式,它避免了供应商锁定。与专有数据格式不同,Iceberg是一个开源项目,由不断壮大的开发人员和组织社区提供支持。这意味着公司可以将Iceberg与各种工具和平台一起使用,使他们能够灵活地选择最适合自己需求的解决方案。
标准化是采用Iceberg的另一个重要驱动力。随着Iceberg的日益普及,公司可以依靠一组通用的规则和约定来存储和访问数据,从而确保用于查询或管理数据的不同应用程序之间的一致性和可靠性。
数据管理和查询优化对公司很有吸引力,因为它们提供了一种更简单的数据操作方法。借助Iceberg,数据湖项目可以更快地启动,并且成为数据工程资源汇的风险更小。
最后,Iceberg使公司能够将其数据湖使用案例扩展到传统SQL分析之外。借助 Iceberg对实时更新和流数据摄取的支持,公司可以构建实时应用程序和数据管道,以便在数据到达时对其进行处理。Iceberg还与机器学习框架很好地集成,使数据科学家能够直接使用存储在湖中的数据训练模型。
专家预言,2025年数据分析的标准将是数据湖仓一体。全世界已经看到了各种各样的分析模式:数据湖、数据仓库、内存分析、嵌入式分析等。但到2025 年,数据分析的标准将是数据湖仓一体,这是基于Iceberg成为湖仓一体事实上的标准作出的判断。
一大理由是开放数据格式的标准化,推动互操作性。数据湖仓一体的两个最大支持者是Snowflake和Databricks。企业已经厌倦了Snowflake与Databricks之争,以寻求获得不断发展的数据架构,
企业希望跨不同平台、合作伙伴和供应商无缝组合数据。随着企业优先考虑访问及时、高质量的数据,开放数据格式将不再是可有可无的,而是企业取得成功的必要条件。
那些未能接受开放标准的企业可能会失去竞争优势,而那些采用标准的企业将能够提供高质量的产品和实时的跨平台数据洞察。
另一大理由是节省资金,减少对重复数据存储的需求。到2025年,预计超过一半的分析工作负载将在湖仓一体架构上运行,是由湖仓一体提供的成本节省和灵活性驱动的。
目前,公司正在从云数据仓库转向湖仓一体,不仅仅是为了节省资金,也是为了简化数据访问模式,并减少对重复数据存储的需求。
大型组织报告称,湖仓一体节省了超过50%的成本,对于具有大量数据处理需求的企业来说,这是一个好消息。
数据湖仓一体市场未来看好。数据湖仓一体概念因其灵活性和规模而广受欢迎。Databricks 2024年发布的研究发现,在接受调查的600名技术领导者中,近3/4已经采用了湖仓一体架构,其余公司预计将在未来三年内采用。
SNS Insider Pvt估计,数据湖市场每年将增长21%以上,到2030年将达到570亿美元。
国内的市场研究机构爱分析则认为,2022年中国湖仓一体平台软件市场规模仅为15.2亿元,预计到2025年,这一数字有望达到97.6亿元,2022-2025三年复合增长率高达86%。
IDC 2024年发布的数据显示,数据量的快速增长、对数据管理需求的升级以及技术架构复杂度和独立开发成本的上升,都将推动企业开始越来越多地考虑湖仓一体的管理解决方案。同时,多模数据管理、实时化将会是数据管理服务演进的两个重要方向。
最终入选IDC的报告的厂商包括阿里云、柏睿数据、滴普科技、华为云、镜舟科技、科杰科技、偶数科技、数新网络、腾讯云、星环科技、新华三、亚马逊云科技、亚信科技。
湖仓一体在技术、应用、生态与安全合规等方面的发展趋势不用忽视。从长远来看,湖仓一体不会取代数据湖,数据科学家需要自由漫游,而不受关系表结构的阻碍来发现模式和开发模型;湖仓一体也不会取代专门为报告创建的专用数据仓库或数据集市。
IDC认为Gen AI带动底层多种数据架构组合能力,包括多模态的数据管理、数据全链路分析、数据血缘分析、数据跨结构存储和自动化流动等,湖仓、实时成为用户建设、更新数据平台最关心的方向
在技术方面,中国数据湖仓一体市场朝着多模态数据管理融合迈进,以适应人工智能等应用需求。存算分离架构不断深化,灵活调配计算与存储资源,提升资源利用率与扩展性。
在应用层面,数据湖仓一体市场在各行业广泛渗透,如金融领域,助力风险管理与精准营销等;制造业中,实现生产监控与供应链协同管理;能源电力行业,支撑能源调度与智能电网建设;政府与公共服务领域,推动数据共享与决策优化;智能驾驶行业,为自动驾驶算法训练等提供数据支持,赋能各行业数字化转型,推动业务发展与创新。
未来数据湖仓一体与AI将深度融合,为AI模型提供数据支撑。在云原生趋势下,积极构建云原生生态,与云服务深度整合,实现资源弹性调配。同时跨平台与互操作性不断增强,打破数据孤岛,促进数据共享。
来源:数据猿