DuckDB放大招,Databricks和Snowflake都坐不住了
DuckDB放大招,Databricks和Snowflake都坐不住了
作者:航标
来源:IT精选
标准历来都是竞争的焦点,表格式标准正是如此。作为大数据领域的关键基础设施之一,谁掌握了表格式标准的话语权,在大数据市场就将占据非常有利的位置。为此,Databricks和Snowfalke一直在暗暗较劲。为此,2024年6月Databricks以10亿美元收购了Iceberg背后的公司Tabular。 那个时候,相信很多人认为,数据文件的表格式标准之争已尘埃落定。毕竟,Databricks同时手握Iceberg和Delta Lake两大标准,特别是Iceberg大有表格式事实标准之势。然而,最近,随着新的表格格式标准DuckLake的出现,这场看似终结的战争突然生变——DuckLake可能颠覆现有表格式标准竞争格局,甚至让Databricks的10亿美元收购Tabular变得可有可无。 表格式标准为何重要?数据分析需求已成为最普遍的业务诉求之一。为满足这一需求,数据仓库率先诞生,随后数据湖技术兴起,最终演进出湖仓一体架构。然而无论是数据湖还是湖仓一体架构,都面临着核心挑战——如何在保留数据湖灵活性的同时,赋予其接近数据仓库的易用性、可靠性与性能表现。 相较于数据仓库中经过清洗的结构化数据(依托数据库实现事务管理与完整CRUD操作),数据湖存储原始数据(涵盖结构化、半结构化及非结构化数据),通常采用对象存储等文件系统实现低成本扩容。但其设计存在显著短板:缺乏事务一致性保障、难以支持高效数据更新删除、时间旅行能力受限,且Schema管理高度依赖人工干预。尤其当业务需求要求Schema动态演进时,纯文件存储机制极易引发查询时Schema不一致问题,导致数据读取异常。 表格式标准(如Iceberg等)正是为破解上述困局而生。作为构建现代化生产级数据湖的核心基础设施,其通过在底层存储之上构建元数据管理层,系统性解决了传统数据湖在事务一致性、可靠数据演进、时间旅行、Schema治理、多引擎兼容、查询加速及运维简化等关键领域的痛点。 这项技术革新使数据湖得以承载流式数据处理、机器学习特征存储、实时分析等生产级场景,同时维持其开放存储、灵活扩展与低成本的核心优势。 在DuckLake问世前,表格式标准领域已形成Iceberg、Delta Lake与Hudi三足鼎立的格局。三者均为开源项目,且诞生时间相近(2016-2017年间):Hudi由Uber于2016年发起,Iceberg由Netflix于2017年开源,Delta Lake则由Databricks于2017年正式发布。 尽管Iceberg在早期性能评测中并非全面领先,但其架构设计展现出更强的前瞻性和中立性。当前AWS、Azure、GCP三大云厂商均将Iceberg纳入技术栈,而Snowflake与Databricks出于竞争考量,也持续推动Iceberg生态发展。 2024年6月Databricks还以10亿美元收购了Iceberg创始团队创立的Tabular公司,来提升Databricks在表格式标准的话语权。当时,不少人预测,表格式标准的竞争就该以Iceberg+Delt lake的融合结束了。然而,DuckDB登场了,它提出了另外一种构想,使得这个故事的结局也就有了变数。 DuckLake的创新:用数据库管理元数据DuckDB是由荷兰技术团队于2022年推出的开源嵌入式数据库管理系统,专为分析型查询设计,采用C++编写并基于MIT协议开放。 DuckDB被誉为"数据科学领域的SQLite",其无需独立服务器进程,可直接嵌入宿主应用运行,并通过列式存储架构与向量化查询执行引擎的协同设计,DuckDB在聚合计算、数据扫描及复杂分析场景中展现出卓越性能,自发布以来广受好评,并获得Google、Facebook和Airbnb等企业的技术认可。 在DuckDB团队看来,主流表格式标准(如Iceberg与Delta Lake)均存在根本性瓶颈——元数据管理效率不足。以Iceberg为例,其根文件需完整记录所有快照信息及模式定义,导致元数据膨胀问题显著。 DuckDB官方技术文档指出:"每次数据变更都会生成完整历史记录文件,而两级清单文件机制虽能缓解小文件问题,但在对象存储场景下仍效率低下。特别是小规模数据修改场景,现有清理流程复杂且缺乏标准化支持。" DuckDB认为与其通过各种文件来维护变更,还不如把这个工作交给数据库。于是,DuckDB 提出了两个理念: 1. 将数据文件以Parquet等开放格式存放在S3、Azure Blob等对象存储服务中,确保架构可扩展性并规避供应商锁定风险; 2. 将元数据管理职责完全移交至专业数据库系统,通过标准化SQL接口替代传统文件系统操作。 基于上述理念,DuckDB团队开发了同源开源项目DuckLake。该格式标准通过集成SQL数据库(如DuckDB自身或PostgreSQL、MySQL等兼容系统)实现元数据集中管理,同时保持数据存储层的开放性与灵活性。配套发布的DuckDB扩展模块更可将其转化为轻量级元数据服务引擎,用户既可在本地笔记本运行完整环境,也可横向扩展至云端集群。 是颠覆还是搅局?DuckLake的发布引发技术界热议。AWS副总裁Andy Warfield指出:"该方案直击传统表格式标准的元数据管理顽疾,其创新思路与主流社区改进方向形成有趣对照。我们团队已开展技术验证,初步结果令人振奋。" 卡内基梅隆大学数据库专家Andrew Pavlo则从学术视角予以肯定:"采用关系型数据库管理元数据目录是务实选择,这与现代数据库系统的设计哲学高度契合。" 但质疑声同样存在。Snowflake首席工程师Russell Spitzer认为:"元数据存储介质(文件系统或数据库)属于实现细节,关键在于标准API的完备性。Iceberg社区已着手优化元数据管理,技术路线之争仍需观察。" 前AWS工程师Jake Ye在技术博文中提出不同视角:"尽管SQL数据库方案具有吸引力,但JSON-based协议在跨系统互操作领域正获得更多支持。" 显然,当前断言DuckLake的技术走向尚为时过早,但其潜在影响不容忽视——若数据湖元数据管理能简化至等同于MySQL运维,现有大数据技术栈或将面临重构压力。这场由DuckDB发起的"元数据管理革命",本质是架构思维之争:究竟是颠覆式创新更胜一筹,还是渐进改良更具生命力?市场终将给出答案。 |