首页 > 其他分享 >Hudi学习笔记(1)

Hudi学习笔记(1)

时间:2023-05-06 12:56:29浏览次数:49  
标签:index Hudi SIMPLE 默认 学习 write 笔记 hoodie primaryKey

使用注意

  • 从 0.10.0 版本开始,primaryKey 为必须的,不再支持没有主键的表。

  • primaryKey、primaryKey 和 type 均大小写敏感。

  • 对于 MOR 类型的表,preCombineField 为必须的。

  • 当设置 primaryKey、primaryKey 或 type 等 hudi 配置时,tblproperties 优先于 options 。

  • 使用 Spark SQL 创建 hudi 表时,默认设置:hoodie.datasource.write.hive_style_partitioning=true 。

Hudi 0.13.0 新功能

2023/2/22 日发布(https://hudi.apache.org/releases/release-0.13.0/)。

  • PartialUpdateAvroPayload

开箱即用支持部分负载更新。

  • 一致性哈希索引(Consistent Hashing Index)

set hoodie.index.bucket.engine='CONSISTENT_HASHING'

  • 多客户端写入的早期冲突检测(OCC)

set hoodie.write.concurrency.early.conflict.detection.enable='true'

  • 支持 支持 Flink 1.16

  • 支持 Pulsar 数据源

  • 更新 CDC(Change-Data-Capture)

注意 CDC 仍是实验性功能,仅支持 COW 表,CDC 查询尚不支持 MOR 表。

  • 新增元数据管理服务 Metaserver

hoodie.metaserver.enabled=true
hoodie.metaserver.uris=thrift://:9090

注意目前为实验性功能。

常用表属性

  • hoodie.datasource.write.hive_style_partitioning

是否使用 hive 风格的表分区。使用 Spark SQL 创建的 hudi 表默认为 true,使用 Flink SQL 创建的 hudi 表默认为 false 。

  • hoodie.sql.insert.mode

设置数据插入模式,有三种取值(默认为 upsert):

  • upsert

更新插入模式,是否更新依赖 tblproperties 的 preCombineField 指定的值(一般为 BIGINT 类型的时间戳值),亦即 hoodie.datasource.write.precombine.field 的值。

  • strict

严格模式,为纯 insert 模式,但如果相同 tblproperties 的 primaryKey 已经存在,亦即 hoodie.datasource.write.recordkey.field 指定的已存在,则不执行插入,否则插入。

  • non-strict

非严格模式,也为纯 insert 模式,不会关系 primaryKey 是否已经存在,允许重复。

  • hoodie.datasource.write.operation

设置写操作,有三种取值(默认为 upsert):

  • upsert

更新插入。

  • insert

普通插入。

  • bulkinsert

批量插入。如果设置为 bulkinsert,还得同时将 hoodie.sql.bulk.insert.enable 值设置为 true,注意 hoodie.sql.bulk.insert.enable 值默认为 false 。

  • hoodie.index.type

设置索引类型。对 spark 引擎默认为 SIMPLE,对 flink 引擎默认为 INMEMORY。可选取值有:BLOOM | GLOBAL_BLOOM |SIMPLE | GLOBAL_SIMPLE | INMEMORY | HBASE | BUCKET。

  • hoodie.bucket.index.num.buckets

设置每个分区的桶数,注意表创建后不能修改,仅当 hoodie.index.type 值为 BUCKET 时有效。

  • hoodie.index.bucket.engine

设置桶索引引擎类型,默认为 SIMPLE,可选的包括:SIMPLE | CONSISTENT_HASHING。SIMPLE 为固定个数的桶,CONSISTENT_HASHING 支持动态调整桶数。

  • hoodie.simple.index.parallelism

仅适用 hoodie.index.type 为 SIMPLE。用于指定索引查询并行度,默认为 100,同 Spark Shuffle 相关。

  • hoodie.write.concurrency.early.conflict.detection.enable

版本:0.13.0(实验性的)

是否启用控制乐观并发控制 OCC(Optimistic Concurrency Control),默认为 false,即关闭 OCC,这时不能有多写入者。

标签:index,Hudi,SIMPLE,默认,学习,write,笔记,hoodie,primaryKey
From: https://www.cnblogs.com/aquester/p/17376908.html

相关文章

  • 外设驱动库开发笔记53:MAX31856热偶变送器驱动
      在我们的产品中经常有需要温度检测的地方,而热电偶温度检测电路是我们常用的。热电偶温度检测的方法很多,有时出于简单方便的考虑我们会选择热偶温度变送器来实现,这一篇我们就来讨论使用MAX31856热电偶温度变送器实现温度的检测。1、功能概述  MAX31856可以对任何类型热电偶的......
  • Python之路,Day21 - 常用算法学习
    本节内容算法定义时间复杂度空间复杂度常用算法实例 1.算法定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,......
  • MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
    锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须......
  • 差分约束学习笔记
    2023.5.6写的太烂了重新写差分约束系统定义差分约束系统是一种特殊的\(n\)元一次不等式组,它包含\(n\)个变量\(x_{1},x_{2},...,x_{n}\)以及\(m\)个约束条件,每一个约束条件都是两个其中的变量做差构成的,形如\(x_{i}-x_{j}\lec_{k}\),其中\(1\lei,j\len,i\nej,1\l......
  • kotlin学习
    kotlin方法一般不能接受空值,硬加能接受空值就必须加? funmethod(value:String?){println(value)}varnums=1..100表示1到100的数组varnums1=1until100表示1到99的数组for(ainnumsstep2){println(a)}会显示13579  step表示跳几个元素  nums.......
  • Go笔记(十四):通道 channel
    1、通道通道channel是Go提供的一种用于各个协程(goroutine)之间的数据共享,保证数据同步交换的机制。协程是轻量级线程,类似于Java中的线程。2、通道的类型2.1、无缓冲通道用于同步通信,可保证在发送和接收数据时完成两个goroutine(协程)的数据交换。2.2、缓冲通道......
  • Go笔记(十五):并发编程
    一、协程的创建Go语言支持并发,只需要通过go关键字来开启goroutine(协程)即可。goroutine(协程)是轻量级线程,goroutine(协程)的调度是由Golang运行时进行管理的。goroutine语法格式(创建协程):go函数名(参数列表)示例代码如下:1packagemain2imp......
  • Vue学习
    vue第一个案例vue.js开发版本vue.min.js生产版本(压缩版)第一个案例:<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title><scripttype="text/javascript"src=&q......
  • httprunner 4.x学习 - 5. validate 断言总结
    前言HttpRunner4.x支持两种(jmespath和正则)提取返回结果的方式,并且内置了丰富的校验结果的方式assert校验方式validate可以支持的校验方式assert缩写功能equal"eq","equals","equal"相等less_than"lt","less_than"小于less_or_equals"le&q......
  • nmap学习
    1、nmap简介Nmap是一款用于网络发现和安全审计的网络安全工具,它是自由软件。软件名字Nmap是NetworkMapper的简称。通常情况下,Nmap用于:列举网络主机清单、管理服务升级调度、监控主机、服务运行状况,Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信......