这个配置有什么问题,
分区键在 HUDI 中不起作用,并且所有记录在执行 upsert 时都会在 hudi 数据集中更新。所以无法从表中提取增量。
commonConfig = {'className' : 'org.apache.hudi',
'hoodie.datasource.hive_sync.use_jdbc':'false',
'hoodie.datasource.write.precombine.field': 'hash_value',
'hoodie.datasource.write.recordkey.field': 'hash_value',
'hoodie.datasource.hive_sync.partition_fields':'year,month,day',
'hoodie.datasource.hive_sync.partition_extractor_class': 'org.apache.hudi.hive.MultiPartKeysValueExtractor',
'hoodie.datasource.write.keygenerator.class':'org.apache.hudi.ComplexKeyGenerator',
'hoodie.table.name': 'hudi_account',
'hoodie.consistency.check.enabled': 'true',
'hoodie.datasource.hive_sync.database': 'hudi_db',
'hoodie.datasource.hive_sync.table': 'hudi_account',
'hoodie.datasource.hive_sync.enable': 'true',
'path': 's3://' + args['curated_bucket'] + '/stage_e/hudi_db/hudi_account'}
我的用例是使用 hudi 完成 upsert 逻辑并使用 hudi 进行分区。Upsert 正在部分工作,因为它更新了整个记录集,就像我在原始存储桶中有 10k 条记录一样,在为 1k 条记录执行 upsert 时,它更新了所有 10k 数据的 hudi 时间。