Data Lakes
Delta Lake — ACID transakce pro data lake
Delta Lake je open-source storage layer pro spolehlivý data lake. ACID transakce, schema enforcement a time travel nad Parquet.
Proč Delta Lake
Řeší nekonzistentní čtení a chybějící schema enforcement transakčním logem.
Klíčové funkce
- ACID transakce
- Schema enforcement/evolution
- Time travel
- MERGE (upsert)
from delta import DeltaTable
df.write.format("delta").save("/data/orders")
# Time travel
spark.read.format("delta").option("versionAsOf", 5).load("/data/orders")
# MERGE
dt = DeltaTable.forPath(spark, "/data/orders")
dt.alias("t").merge(new.alias("s"), "t.order_id = s.order_id")\
.whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()
OPTIMIZE delta.`/data/orders` ZORDER BY (customer_id) VACUUM delta.`/data/orders` RETAIN 168 HOURS
Shrnutí
Delta Lake přidává spolehlivost warehouse do data lake. Základ lakehouse architektury.