Přeskočit na obsah
Data Lakes

Apache Hudi — inkrementální zpracování v data lake

9 min čtení
Apache HudiData LakeUpsertCDC

Apache Hudi je navržený pro efektivní aktualizace dat v data lake. Ideální pro CDC pipeline s častými upserty.

Hudi — upserty v data lake

Uber vyvinul Hudi pro miliardy záznamů s častými aktualizacemi.

Dva typy tabulek

  • Copy-on-Write — přepíše soubor; optimální pro čtení
  • Merge-on-Read — delta logy; optimální pro zápis
hudi_opts = {
    'hoodie.table.name': 'orders',
    'hoodie.datasource.write.recordkey.field': 'order_id',
    'hoodie.datasource.write.precombine.field': 'updated_at',
    'hoodie.datasource.write.operation': 'upsert',
}

df.write.format("hudi").options(**hudi_opts)\
    .mode("append").save("/data/hudi/orders")

# Inkrementální čtení
spark.read.format("hudi")\
    .option("hoodie.datasource.query.type", "incremental")\
    .load("/data/hudi/orders")

Shrnutí

Hudi je optimální pro CDC a časté aktualizace. CoW a MoR strategie vyvažují čtení vs zápis.

CORE SYSTEMS tým

Enterprise architekti a AI inženýři. Stavíme systémy, které fungují.