Раздел Hudi и upsert не работают

#pyspark #apache-hudi

Вопрос:

что не так в этой конфигурации ,

ключи разделов не работают в HUDI, а также все записи обновляются в наборе данных 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'}
 

Мое использование состоит в том, чтобы завершить логику upsert с помощью hudi и разделить с помощью hudi . Upsert частично работает, поскольку он обновляет весь набор записей , как если бы у меня было 10 тыс. записей в необработанном ведре, при выполнении upsert для 1 тыс. записей он обновляет время hudi для всех 10 тыс. данных.

Ответ №1:

Изменились ли ваши ключи разделов? По умолчанию hudi не использует глобальные индексы, но для каждого раздела у меня были проблемы, похожие на ваши, когда я включил глобальный индекс, он работал. Попробуйте добавить эти настройки:

  "hoodie.index.type": "GLOBAL_BLOOM",                 # This is required if we want to ensure we upsert a record, even if the partition changes
 "hoodie.bloom.index.update.partition.path": "true",  # This is required to write the data into the new partition (defaults to false in 0.8.0, true in 0.9.0)
 

Я нашел ответ в этом блоге: https://dacort.dev/posts/updating-partition-values-with-apache-hudi/

Здесь вы можете увидеть более подробную информацию об индексах hudi: https://hudi.apache.org/blog/2020/11/11/hudi-indexing-mechanisms/