Revisa Delta Lake completo y reduce deuda P2 - #11
Merged
Conversation
Co-authored-by: Iago Prieto Lamas <IagoPL@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objetivo
Cerrar deuda P2 de Delta Lake y convertir el manual en una introducción técnica real al formato/protocolo (Parquet +
_delta_log), sin presentarlo como Databricks Lakehouse ni como motor de consultas.Capítulos
format("delta"), catálogo opcionalUSING delta LOCATION, append/overwrite, particionado intro, enforcement vs evolution (WITH SCHEMA EVOLUTION/withSchemaEvolution(), nomergeSchema=truepor defecto),DeltaTable_delta_log, conflictos, reader/writer protocol y table features, storage sin receta cloudDeltaTableupsert decustomers, coste/clave/duplicados en source, CDF como feature aparte (no on por defecto, retención = VACUUM)VERSION/TIMESTAMP AS OF,versionAsOf,DESCRIBE HISTORY≠ leer snapshot, time travel ≠ backup, VACUUM defaults 7d/30d, noRETAIN 0 HOURScomo prácticaOPTIMIZE/executeCompactionOSS, Z-Order puntual, clustering automático etiquetado como DatabricksreadStream/writeStream,checkpointLocation≠ log, exactly-once acotado al sink Delta,skipChangeCommitsvs CDF,foreachBatch+ MERGE e idempotenciatxnAppId/txnVersionDelta Lake OSS
Comprobado contra docs.delta.io (batch, DML, streaming, CDF, concurrency, versioning, optimizations-oss, utilities, Kernel) y delta-io/delta.
Enseñado como OSS: path tables, Spark SQL/
DeltaTable, schema enforcement, MERGE/UPDATE/DELETE, time travel, VACUUM,OPTIMIZE+ Z-Order, Structured Streaming, CDF opt-in, protocol/table features,skipChangeCommits.Evitado o etiquetado como Databricks / producto: Databricks Runtime, Databricks SQL, Unity Catalog (producto; se menciona que existe un UC OSS aparte), Predictive Optimization, Auto Optimize como producto, Liquid Clustering automático gestionado. Las keys
spark.databricks.delta.*que aparecen en la doc OSS se marcan como config del runtime, no como receta de plataforma.No se documenta Iceberg en profundidad (siguiente PR).
Transaction log
_delta_log(JSON + checkpoints)._delta_loges protocolo interno: no editar/borrar commits a mano.Operaciones
UPDATE/DELETE/MERGEreescriben ficheros; la condición y la clave importan; duplicados en source son un problema.HISTORYlista commits;VACUUMborra data files (default 7 días) y el log se poda a ~30 días.OPTIMIZEOSS; Z-Order no “siempre mejora todo”.Streaming
writeStream+checkpointLocation;readStreamconstartingVersion/ rate limits.skipChangeCommitso CDF._delta_log.Auditoría
Los 8 capítulos quedan en P3, sin flags de plantilla/ejemplo/duplicado. Informes solo con
npm run docs:audit.Fuentes oficiales
Release estable usada para verificar compatibilidad: Delta Lake 4.4.0 (2026-08-20; Spark 4.0.1 / 4.1 / 4.2). No se copia la instalación
4.0.0del quickstart. El manual no fija versión en cada capítulo.Validación
Local, todo OK:
No fusionar este PR. El siguiente bloque (Iceberg) va en una PR independiente.