开源数据湖三剑客 Apache hudi、Apache iceberg 、Databricks delta 近年来大动作不断。

2021年8月,Apache Iceberg 的创始人 Ryan Blue、Dan Weeks 和 Netflix 数据架构总监 Jason Reid 宣布从风投 a16z 处拿到了 A 轮融资,正式成立围绕 Apache Iceberg 构建新型数据平台的商业公司 Tabular。

2022年2月,Apache Hudi 也不甘示弱,创始人 Vinoth Chandar 发文官宣基于 Hudi 构建的商业公司和产品 Onehouse,其已经获得 Greylock Ventures 和 Addition 的 800 万美元种子轮投资。

2022年6月,Delta Lake 背后的大数据巨头公司 Databricks,也许是迫于 Iceberg、Hudi 的压力,也许是为了能抢占到市场, 宣布将 Delta Lake 云数据平台完全开源(即 Delta Lake 2.0)。

当开源扯上了商业,一切就都没有那么简单了,这三家之间的明争暗斗也随之拉开序幕。首先是 Databricks 在官宣 Delta Lake 2.0 时,把 Hudi 和 Iceberg 秒成了渣渣(如下图)。

接下来的剧本当然是 Apache Hudi 和 Apache Iceberg 不服,质疑测试的准确性。国内网易数帆的兄弟发表了《从 Delta 2.0 开始聊聊我们需要怎样的数据湖》,虽然言语看起来很客气,但是字里行间都是在反击,最后顺势推了一波数帆的开源产品 Arctic (底座是Iceberg)。Hudi 背后的公司 onehouse 也在第二天发表了一篇文章,质疑测试的准确性并给了他们测试的结果(如下图)。

事后 databricks 没有再回应,看来 databricks 的战略是只引战不恋战。

开源社区建设

2023年了,我们再来看看hudi iceberg delta2 三大社区的发展现状。首先看看截止到目前github的一些开源数据指标。

Github Star 数量,能反应出项目的知名度,目前来看 Delta Lake 是最高的,但是今年来看三者的差距在减小。

Github watchers 和 forks 数量,hudi 略高,整体上也是不相上下。

Github 贡献者数量,这个指标是2022年12月的贡献者数量和 commit 次数,hudi的优势较明显。

Github PR 和issue,同样是2022年12月的数据,PR是指贡献者提交的提案数量,issue是指贡献者提交的问题数量,是可以反映出项目活跃度的,Delta Lake 的活跃度明显低于 Iceberg 和 Hudi 很多。

贡献者所在公司分布

Apache Hudi

从这个分布图可以看出,Hudi 在国内的应用很广,包括国内的三个大厂阿里巴巴、腾讯、字节跳动,国外的话主要是 Uber 和 Amazon。

Apache Iceberg

Iceberg 在国内的厂商同样非常多,腾讯一马当先,是贡献者数量最多的团队,国内的字节 、网易也紧随其后,相比腾讯 Iceberg 和 Hudi 通吃的战略,阿里在 Iceberg 的投入就少了非常多,国外的贡献者也非常多,包括 Netflix、Apple 等等

Delta Lake

Delta 的开发者则主要以国外为主,作为母公司的 Databricks 贡献量稳居第一,微软紧随其后,国内的公司比较少见,仅京东、移动等几家有少来量的贡献。

从这些图中我们可以得到一些结论,似乎有大量国内公司参与的开源项目,活跃度都会相对比较高一些,且国内的大家对 Apache 基金会的项目热情会高一些。

特性对比

图来自于 ONEHOUSE 官网,所以可能偏向性会比较明显,仅供于参考。图更新于23年1月。

1. 读写特性



2. 表服务

3. 平台支持

2023 年,数据湖市场的争夺将正式进入白热化阶段,国内的开发者在这场争夺战中也将发挥着非常重要的作用,毕竟数据湖、湖仓一体等概念都已经被炒得火热,引入数据湖的公司在未来也会越来越多,数据湖的搭建、应用和开发能力也会逐渐成为大数据工程师的必备技能。在这之前,希望这篇文章能够帮助你做好 Hudi 、Iceberg、Delta Lake 这道选择题。

均有商业公司支持!2023再看数据湖 hudi iceberg delta2 社区发展现状!的更多相关文章

  1. 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理

     2014年9月的时候,写过一篇面试的总结性质的文章,"2014年武汉的IT行情好像不太好". 原文地址:blog.csdn.net/fansunion/article/detai ...

  2. mysql索引设计的注意事项(大量示例,收藏再看)

    mysql索引设计的注意事项(大量示例,收藏再看) 目录 一.索引的重要性 二.执行计划上的重要关注点 (1).全表扫描,检索行数 (2).key,using index(覆盖索引) (3).通过ke ...

  3. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  4. 再看Lambda架构

    博客原文地址 最*看了一本<大数据系统构建>的书,发现之前对于Lambda架构的理解还是不够深入和清晰. 之前对Lambda架构的理解 Azure文档上有一张Lambda架构的图, 同时也 ...

  5. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  6. 再看 AspriseOCR - OCR应用开发 -20151124

    再看 AspriseOCR - OCR应用开发 我写这个博文时间为 2015/11/24日,注意时间因为,网上很多文章时间上很久远,有的已经不能参考了 很多人面对从图片中识别文字或者数字0~9  A~ ...

  7. Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service

    原文:Android菜鸟的成长笔记(17)-- 再看Android中的Unbounded Service 前面已经写过关于startService(Unbounded Service)的一篇文章:&l ...

  8. D语言需要大公司支持

    Facebook开源flint:一个用D语言编写的C++静态代码分析器 http://www.csdn.net/article/2014-02-27/2818565-Building-and-open ...

  9. 再看case语句

    再看case语句,case语句只处理单条记录,而不是set 列名的使用,可以当做数值来使用: case when 后面简直是完美的的,什么东西都是能放的,只要是一个逻辑上的true/false的逻辑就 ...

  10. android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

    android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

随机推荐

  1. 如何在IDEA中自定义模板、快速生成完整的代码?

    文章目录 1.修改现有的模板 2.自定义模板 3.在代码中测试自定义模板 1.修改现有的模板 打开设置面板- settings 2.自定义模板 选择定义模板组 选择创建模板 define 代表应用的范 ...

  2. golang中的一些实用功能

    0.1.索引 https://waterflow.link/articles/1663921524839 通过使用一些通用代码来节省时间,而无需单独实现它们.以下是一些开发中经常会用到的函数实现的列表 ...

  3. virtualenv +virtualenvwrapper

    一.虚拟环境virtualenv 1.安装:pip3 install virtualenv 2.创建虚拟环境:virtualenv venv #venv为虚拟环境目录名,目录名自定义 #virtual ...

  4. jquery的toggle()函数,显示/隐藏交替

    <!DOCTYPE html> <html lang="en"> <head> <script src="jquery.js&q ...

  5. mybatis-增删改查和配置

    加入log4j日志功能 加入依赖 <!-- log4j日志 --> <dependency> <groupId>log4j</groupId> < ...

  6. 1、ArrayList源码解析

    目录 1 概述 2 底层数据结构 3 构造函数 4 自动扩容 5 set() get() remove() 6 Fail-Fast机制 1 概述 ArrayList实现了List接口,是 顺序容器,允 ...

  7. AIR32F103(六) ADC,I2S,DMA和ADPCM实现录音播放功能

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  8. 使用 Bytebase 管理 Rainbond 上的应用数据库

    在应用的发布过程中数据库的结构变更一直是最复杂也是风险最大的环节,而 Bytebase 可以对这一过程进行全生命周期的管理.在 Rainbond 中安装 Bytebase,轻松管理部署在 Rainbo ...

  9. java.util.Date和java.util.Calendar

    Date date = new Date();//分配初始化一个Date()对象 Calendar cal = Calendar.getInstance();//获取一个基于当前时间的日历 int d ...

  10. 【每日一题】【小根堆&边出队边入队后续节点&注意判空】23. 合并K个升序链表-211128/220213

    给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 答案1(参数是数组): /** * Definition for singly-linked li ...