Hudi系列4:Hudi数据写操作流程
创始人
2024-05-10 01:38:37
0

文章目录

  • 一. Hudi数据写流程概述
  • 二. upsert写流程
    • 2.1 Copy On Write类型表,UPSERT 写入流程
    • 2.2 Merge On Read类型表,UPSERT 写入流程
  • 三. insert写流程
    • 3.1 Copy On Write类型表,INSERT 写入流程:
    • 3.2 Merge On Read类型表,INSERT 写入流程
  • 参考:

一. Hudi数据写流程概述

在Hudi数据湖框架中支持三种方式写入数据:UPSERT(插入更新)、INSERT(插入)和BULK INSERT(批量写入)

  1. UPSERT:默认行为,数据先通过 index 打标
    (INSERT/UPDATE),有一些启发式算法决定消息的组织以优化文件的大小

  2. INSERT:跳过 index,写入效率更高

  3. BULK_INSERT:写排序,对大数据量的 Hudi 表初始化友好,对文件大小的限制 best effort(写 HFile)

二. upsert写流程

2.1 Copy On Write类型表,UPSERT 写入流程

  1. 先对 records 按照 record key 去重;

  2. 首先对这批数据创建索引 (HoodieKey => HoodieRecordLocation);通过索引区分哪些 records 是 update,哪些 records 是 insert(key 第一次写入);

  3. 对于 update 消息,会直接找到对应 key 所在的最新 FileSlice 的 base 文件,并做 merge 后写新的 base file (新的 FileSlice);

  4. 对于 insert 消息,会扫描当前 partition 的所有 SmallFile(小于一定大小的 base file),然后 merge 写新的 FileSlice;如果没有 SmallFile,直接写新的 FileGroup + FileSlice;

2.2 Merge On Read类型表,UPSERT 写入流程

  1. 先对 records 按照 record key 去重(可选)

  2. 首先对这批数据创建索引 (HoodieKey => HoodieRecordLocation);通过索引区分哪些 records 是 update,哪些 records 是 insert(key 第一次写入)

  3. 如果是 insert 消息,如果 log file 不可建索引(默认),会尝试 merge 分区内最小的 base file (不包含 log file 的 FileSlice),生成新的 FileSlice;如果没有 base file 就新写一个 FileGroup + FileSlice + base file;如果 log file 可建索引,尝试 append 小的 log file,如果没有就新写一个 FileGroup + FileSlice + base file

  4. 如果是 update 消息,写对应的 file group + file slice,直接 append 最新的 log file(如果碰巧是当前最小的小文件,会 merge base file,生成新的 file slice)log file 大小达到阈值会 roll over 一个新的

三. insert写流程

3.1 Copy On Write类型表,INSERT 写入流程:

  1. 先对 records 按照 record key 去重(可选);
  2. 不会创建 Index;
  3. 如果有小的 base file 文件,merge base file,生成新的 FileSlice + base file,否则直接写新的 FileSlice + base file;

3.2 Merge On Read类型表,INSERT 写入流程

  1. 先对 records 按照 record key 去重(可选);
  2. 不会创建 Index;
  3. 如果 log file 可索引,并且有小的 FileSlice,尝试追加或写最新的 log file;如果 log file 不可索引,写一个新的 FileSlice + base file;

参考:

  1. https://hudi.apache.org/docs/overview/
  2. https://www.bilibili.com/video/BV1ue4y1i7na/
  3. https://yangshibiao.blog.csdn.net/article/details/123124114

相关内容

热门资讯

海外人士热议习近平新年贺词:中...   中新社北京1月1日电 综合中新社驻外记者报道:新年前夕,中国国家主席习近平发表二〇二六年新年贺词...
新疆阿勒泰:“银发族”驭雪正青...   中新社新疆阿勒泰12月31日电 题:新疆阿勒泰:“银发族”驭雪正青春  中新社记者 蒋文月  正...
这份“年度答卷”,我们共同署名   岁序更替,华章日新。当我们站在时间的交汇点,回首,是携手走过的来路;向前,有无限辽阔的未来。这一...
视频丨多国人士:习主席新年贺词...   多国人士表示,习近平主席的新年贺词重申进一步全面深化改革开放和全球治理倡议,向国际社会传递了积极...
惠及超3.6亿人次!2025年...   新华社记者 谢希瑶  记者1日从商务部获悉,2025年,以旧换新相关商品销售额超2.6万亿元,惠...
俄媒:克宫称,“俄一将领在莫斯... 【环球网快讯】据俄新社22日报道,俄罗斯总统新闻秘书、克里姆林宫发言人佩斯科夫称,“俄罗斯一名将领在...
港珠澳大桥2025年客流车流双...   新华社广州1月1日电(记者 王浩明)2025年,经港珠澳大桥珠海公路口岸出入境客流与车流分别超过...
科学与健康|新药来了!检查结果...   一元复始,万象更新。2026年是“十五五”规划的开局之年,展望医疗卫生健康领域,一系列新政将陆续...
东西问丨穆罕默德·曼苏里:中国...   中新社南昌12月31日电 题:中国实践如何助力保障全球粮食安全?  ——专访联合国粮农组织助理总...
一批新规正式施行 事关社会治安...   央视网消息:2026年1月1日起,有一批事关社会治安、保育教育、电动汽车、网络安全等多方面的新规...