Apache Hudi数据湖的Marker机制

  • Post author:
  • Post category:其他




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

direct

将marker直接写入到HDFS,创建一个data file就会在相同目录下创建一个marker。marker文件内容为空

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



4. Timeline Server Markers

timeline server

客户端只管发送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的时间间隔,单位:毫秒



版权声明:本文为yy8623977原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。