
hudi
文章平均质量分 54
Hudi 文章聚集地
岚天逸剑
这个作者很懒,什么都没留下…
展开
-
Hudi表创建时HDFS上的变化
执行 drop table 后,会将表目录如 hdfs://hadoop-cluster-01/user/zhangsan/warehouse/test.db/t71 删除掉。上面列了两个“.log.”文件,分别为第一次 insert 后和第二次 insert 后的结果,为方便对比观察放在了一起。分区的第 1 笔插入总是会生成“.parquet”文件,而不是“.log.”文件。原创 2023-05-31 17:25:51 · 1169 阅读 · 0 评论 -
Hudi表类型和查询类型
设置 hoodie.compact.inline 为 true 启用同步压缩,设置为 false 启用异步压缩,默认为 false。hoodie.compact.inline.max.delta.commits 控制最近一次压缩后新产生多少个 commits 后启动压缩,而 hoodie.compact.inline.max.delta.seconds 则控制最近一次压缩后多久启动压缩,压缩策略通过 hoodie.compaction.strategy 指定。查询指定时间范围内新增或修改的数据。原创 2023-05-30 12:41:10 · 997 阅读 · 0 评论 -
Hudi的OverwriteNonDefaultsWithLatestAvroPayload效果测试
从上测试可以看到第 3 次的插入覆盖了第 2 次的插入,原因是第 2 次的结果还没有落地形成 basefile(基础文件,即 parquet 列式文件),还处于 logfile 状态(日志文件,即行式的 avro 文件),基于 precombine 覆盖了。原创 2023-05-30 10:44:57 · 847 阅读 · 0 评论 -
Hudi写语义保证
Hudi 为 Hadoop Upsert and Incremental 的缩写,Incremental 即 Incremental pull,也就是增加拉取,是一种类似于消息队列的流式消费。原创 2023-05-19 09:32:05 · 371 阅读 · 0 评论 -
Hudi - Could not create payload for class
测试 insert 时,hoodie.datasource.write.payload.class 有影响,而 hoodie.compaction.payload.class.class 没有影响,即使设置为错误值。原创 2023-05-18 16:13:02 · 554 阅读 · 0 评论 -
flink之java.lang.NumberFormatException: For input string错误
Flink创建表时没有指定分区,但在Flink读取表时却定义了“hoodie.datasource.write.partitionpath.field”的值。使用flink读取一张hudi表,将数据写入到另外一张hudi表。原创 2023-05-17 15:59:42 · 678 阅读 · 0 评论 -
Hudi的ro和rt表
【代码】Hudi的ro和rt表。原创 2023-05-16 16:29:12 · 1178 阅读 · 1 评论 -
Hudi表数据重复原因
测试中,发现虽然显示设置为 upsert,且也按规范设置了 primaryKey、preCombineField,type 等,但查出的结果仍然存在重复。反复测试,重复的数据稳定为 2,且同一数据的一笔提交时间也保持不变。结果显示同一数据分区相同,但来自不同的 HDFS 文件。这个问题的原因是 drop 掉一张 hudi 表时,对应的表文件没有被删除,导致以同样路径再次创建后,select 仍然能查出来,这时显示重复的原因。但反复 create 和 drop,总是只有两个文件,并没有增加新的。原创 2023-05-16 12:49:38 · 967 阅读 · 0 评论 -
正确DROP掉MOR类型的HUDI表
【代码】正确DROP掉MOR类型的HUDI表。原创 2023-05-16 09:24:05 · 518 阅读 · 0 评论 -
Flink MySQL CDC connector 使用注意事项
也是个 BUG,估计后续会修复。是个 BUG,估计后续会修复。库名和表名不能有点号。原创 2023-05-11 19:03:19 · 244 阅读 · 0 评论 -
parquet is not a Parquet file (length is too low: 0)
当执行 SparkSQL 遇到这个错误时,可能是因为对应分区的数据全被删除了,变成了空分区,解决办法是删除该分区。原创 2023-05-11 11:37:31 · 772 阅读 · 0 评论 -
hudi的bucket.index相关配置
上表中的 xxxx 可取值:parquet、orc、hfile,相关定义的文件。hudi的bucket.index相关配置的源码文件为。原创 2023-05-10 11:18:21 · 1521 阅读 · 0 评论 -
Hudi的Index类型
是 hoodiekey 到文件组(File Group)或者文件 ID(File ID)的映射,hoodiekey 由 recordkey 和 partitionpath 两部分组成。原创 2023-05-10 11:16:03 · 1695 阅读 · 0 评论 -
Hudi的precombine.field释疑
从上面的 precombine.field 定义可以看到,precombine.field 同 write.precombine.field、hoodie.datasource.write.precombine.field 是一样的,最底层用的都是 hoodie.datasource.write.precombine.field。从上面还没看出 hoodie.table.precombine.field 同其它三个有和关系,实际上也是一样的,这从。它们是完全相同,还是有什么关系了?原创 2023-05-10 09:44:38 · 2620 阅读 · 0 评论 -
Flink创建Hudi的Sink动态表
工厂类 HoodieTableFactory 提供的创建动态表接口 createDynamicTableSource 和 createDynamicTableSink,对应的源码文件为:https://github.com/apache/hudi/blob/master/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/table/HoodieTableFactory.java。原创 2023-05-09 16:41:35 · 1534 阅读 · 0 评论 -
Hudi的Flink配置项(1)
备选 keys,可理解为别名,当指定的 key 不存在是,则找备选 keys,在这里指配置项的名字。原创 2023-05-09 15:43:50 · 1226 阅读 · 0 评论 -
Hudi学习笔记5 - Hudi配置分析(1)
Hudi 官方配置文档:https://hudi.apache.org/docs/configurations,从源码分析可以看到配置项 hoodie.payload.ordering.field 已经废弃,取而代之的是 hoodie.datasource.write.precombine.field。原创 2023-05-08 15:49:50 · 814 阅读 · 0 评论 -
Hudi学习笔记4 - Hudi配置之Spark配置
Hudi的Spark配置原创 2023-05-08 15:44:44 · 849 阅读 · 0 评论 -
Hudi学习笔记2 - Hudi配置之FlinkSQL配置
FlinkSQL的hudi配置原创 2023-05-08 15:40:22 · 912 阅读 · 0 评论 -
Hudi学习笔记2 - Hudi配置
Flink SQL source/sink connectors 的配置,如:index.type、write.tasks、write.operation、clean.policy、clean.retain_commits、clean.retain_hours、compaction.max_memory、hive_sync.db、hive_sync.table、hive_sync.metastore.uris、write.retry.times、write.task.max.size 等。原创 2023-05-06 17:03:35 · 908 阅读 · 0 评论 -
Hudi学习笔记1
严格模式,为纯 insert 模式,但如果相同 tblproperties 的 primaryKey 已经存在,亦即 hoodie.datasource.write.recordkey.field 指定的已存在,则不执行插入,否则插入。如果设置为 bulkinsert,还得同时将 hoodie.sql.bulk.insert.enable 值设置为 true,注意 hoodie.sql.bulk.insert.enable 值默认为 false。是否使用 hive 风格的表分区。原创 2023-05-06 12:43:13 · 2910 阅读 · 0 评论 -
upsert部分hudi表字段报错“Expected table’s schema”
【代码】upsert部分hudi表字段, 当 insert into 一个 hudi 表时,如果只指定了部分字段,则运行时报错“Expected table's schema”。原创 2023-04-27 21:34:55 · 299 阅读 · 0 评论 -
Flink MySQL CDC 增量同步要求源表有主键
【代码】Flink MySQL CDC 增量同步要求源表有主键。原创 2023-03-14 09:38:35 · 1241 阅读 · 1 评论