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规范。