Apache Hudi数据湖的Marker机制

目录

  • 1. 目的
  • 2. Marker文件名称结构
  • 3. Direct Write Markers
  • 4. Timeline Server Markers
  • 5. Marker配置参数

1. 目的

一个write开始时,会先创建一个marker,等write完成时,会删除marker。如果marker未删除,表示write失败,会留下部分脏数据文件。标记的作用如下:

  1. marker用于清除脏数据文件
  2. marker用于数据rollback

2. Marker文件名称结构

由3部分组成:

  1. data file名称
  2. the marker extension(.marker)
  3. 创建data file的I/O operation(inserts - CREATE、updates/deletes - MERGE、either - APPEND)

一个marker文件名称的例子:91245ce3-bb82-4f9f-969e-343364159174-0_140-579-0_20210820173605.parquet.marker.CREATE

3. Direct Write Markers

Apache Hudi数据湖的Marker机制_第1张图片
将marker直接写入到HDFS,创建一个data file就会在相同目录下创建一个marker。marker文件内容为空

写入和扫描的时候效率都很低

4. Timeline Server Markers

Apache Hudi数据湖的Marker机制_第2张图片
客户端只管发送Marker请求,利用timeline server进行marker的批量创建、缓存、批量写入到DFS

HDFS目前还不支持timeline server marker

5. Marker配置参数

参数名称 默认值 含义
hoodie.write.markers.type timeline_server_based 可选的参数值:direct、timeline_server_based
hoodie.markers.timeline_server_based.batch.num_threads 20 批量创建marker的线程数
hoodie.markers.timeline_server_based.batch.interval_ms 50 批量创建marker的时间间隔,单位:毫秒

你可能感兴趣的:(#,Hudi,hudi,数据湖,marker,标记机制,湖仓一体)