当前位置: 首页 > news >正文

hudi系列-数据写入方式及使用场景

hudi支持多种数据写入方式:insert、bulk_insert、upsert、boostrap,我们可以根据数据本身属性(append-only或upsert)来选择insert和upsert方式,同时也支持对历史数据的高效同步并嫁接到实时流程。

这里的使用技术组合为flink + hudi-0.11

upsert

这是hudi默认的写入方式,是包含了INSERT和UPDATE两种操作,如何区分两种操作?在数据写入之前会进行一个"tag"过程,即通过查找索引来确定记录的位置,如果是UPDATE操作,那么我们会得到记录的旧位置,否则将会为INSERT的记录分配一个新位置,"相同"的记录被组织在一起,还能进行小文件方面的优化。这种写入方式适合数据会更新(不会重复)而且需要保留变更数据的场景(Changelog Mode),结合flink进行近实时流式计算。

insert

单纯的插入操作,由于不需要判断记录是否属于更新,因此省略了"tag"过程,速度会比upsert快得多,但是不能保证数据是去重的,对于append-only的数据(日志、行为)很适合使用这种方式

  • MOR表:采用的小文件优化策略与upsert一样,就是少维护了基于flink状态的全局索引
  • COW表:每次写都会直接生成新的parquet文件,写过程并不会进行小文件优化,但可以通过clustering进行来重新调整。

http://www.lryc.cn/news/39481.html

相关文章:

  • C # FileStream文件流
  • Go语言中的保留字和运算符详解
  • Linux编译之(1)C语言基础
  • CPU平均负载高问题定位分析
  • Python蓝桥杯训练:基本数据结构 [二叉树] 中
  • 读取 DTC 信息服务 (0x19) – UDS 协议
  • Hive 分区表新增字段 cascade
  • 【Java版oj】day08两种排序方法、最小公倍数
  • FinOps,从概念到落地 | UGeek大咖说第一期直播回顾(上)
  • k8s java程序实现kubernetes Controller Operator 使用CRD 学习总结
  • Unity笔记:修改代码执行的默认打开方式
  • Linux IPC:匿名管道 与 命名管道
  • 阿里研发工程师JAVA暑期实习一面
  • 第十四届蓝桥杯三月真题刷题训练——第 11 天
  • 机器学习入门——线性回归
  • Microsoft Word 远程代码执行漏洞(CVE-2023-21716)
  • Android kotlin 系列讲解(数据篇)SharedPreferences存储及测试
  • 一文了解Web Worker
  • 接口文档包含哪些内容?怎么才能写好接口文档?十年测试老司机来告诉你
  • java面试八股文之------Java并发夺命23问
  • CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)
  • 【MySQL】002 -- 日志系统:一条SQL更新语句是如何执行的
  • C++---背包模型---数字组合(每日一道算法2023.3.14)
  • 并查集(不相交集)详解
  • 10个最频繁用于解释机器学习模型的 Python 库
  • final关键字:我偏不让你继承
  • 8大主流编程语言的适用领域,你可能选错了语言
  • 关于Python库的问题
  • 好记性不如烂笔头(2)
  • Java for循环嵌套for循环,你需要懂的代码性能优化技巧