更新时间:2025-07-01 GMT+08:00
分享

Flink流式写Hudi表建议

使用SparkSQL统一建表

为了方便在Spark和Flink上都能读写Hudi表,推荐使用SparkSQL统一创建hudi表。

【示例】使用SparkSQL创建hudi表

CREATE TABLE hudi_mor(
  id int,
  name string,
  age INT,
  `date` string
) using hudi OPTIONS(
type = 'mor',  
primaryKey = 'id',
precombineField = 'age',
hoodie.index.type =  'BUCKET',
hoodie.datasource.write.hive_style_partitioning = 'true',
hive_sync.partition_extractor_class = 'org.apache.hudi.hive.MultiPartKeysValueExtractor',
hoodie.bucket.index.num.buckets = '8'
)
location 'hdfs://hacluster/tmp/hudi_mor'
partitioned by (`date`);

使用Spark异步任务对Hudi表进行Compaction

Flink作业中开启Compaction,会额外消耗Taskmanager资源,从而影响Flink作业数据入湖的实时性。推荐在Flink中关闭Compaction,单独启用Spark作业进行异步Compaction,具体操作请参见Hudi数据表Compaction规范

相关文档