Jerga Real de Trinchera,
Cero Definiciones de Memoria.
Conceptos técnicos de Data Engineering que no se explican con analogías vagas ni prosa de manual. Cada término supera dos filtros de curación: evidencia de uso en el ecosistema real y verificación contra documentación oficial primaria.
"Empuja los filtros de una consulta hasta el lector columnar del archivo, descartando row groups enteros en disco antes de transferir bytes a memoria RAM."
↳ Documentación oficial de Spark con flag activo desde versión 1.2
Decisión 15: Filtro determinista previo al LLM. La misma regla de oro: descartar el 90% antes de pagar el recurso caro (en disco, I/O; en pipelines, llamadas al modelo).
Contenedores
Empaquetar el entorno junto con el código para que "en mi máquina funciona" deje de ser una explicación. Es además la unidad que ejecutan casi todos los orquestadores y servicios gestionados.
Git
El historial del proyecto también es dato: qué cambió, cuándo y por qué. En un pipeline pesa doble, porque la configuración —el catálogo, el grafo— vive en el repo, y el diff de un YAML es la revisión de calidad de ese dato.
Dos agentes trabajando en paralelo sobre el mismo repo hicieron git add casi al mismo tiempo y se pisaron: dos tareas independientes terminaron dentro de un mismo commit. Se separaron con un rebase antes de empujar. El árbol de trabajo es estado compartido y git no lo protege por vos.
Línea de comandos
Casi todo lo que corre un pipeline vive detrás de una shell: variables de entorno, códigos de salida, tuberías, cron. Sin esto no podés leer por qué falló un job en un runner al que no le podés hacer clic.
Python para datos
Es el pegamento del pipeline: pedirle datos a una API, normalizarlos, escribirlos a una base y fallar de forma legible cuando algo no sale. No es Python de aplicación web; es Python que corre solo, sin nadie mirando la pantalla.
parse_releases descartaba con un continue cualquier release cuya versión o fecha no se pudiera leer, y no logueaba nada. Los datos no aparecían y no había forma de enterarse: la corrida terminaba en verde. Ahora deja un warning con el tag_name crudo. Un descarte silencioso es peor que un except que se traga el error, porque acá ni siquiera hubo un error que tragar.
SQL
Es el lenguaje en el que se hacen las preguntas a los datos. Todo lo demás de la ruta asume que ya podés expresar un join, una agregación y una ventana sin pelearte con la sintaxis.
Llevando la bitácora, el Día 3 estudié por qué un WHERE con NULL no devuelve las filas que uno espera: NULL no es igual ni distinto a nada, así que hay que preguntarle IS NULL. Mis errores propios de esos días fueron más chatos y más repetidos: COUNT() vacío, SELECT * junto a GROUP BY, MOD() en vez de %.
Batch y streaming
Procesar en lotes acotados o evento por evento a medida que llegan. La diferencia que importa no es la velocidad, es qué garantías necesita el caso de uso y cuánta infraestructura hay que operar para darlas.