Conceptos clave de ETL: source, target y staging

Resumen

Si trabajas con datos, entender los conceptos clave de un proceso ETL te permite mover información entre sistemas con criterio. Aquí verás qué es un source, un target, un staging, un data warehouse, un data lake y un data lakehouse, y cómo se conectan en un flujo real de ingeniería de datos.

¿Qué es un source y qué es un target en ETL?

Todo proceso ETL empieza en un punto y termina en otro. Esos dos extremos son el source y el target, y cada uno puede tomar formas muy distintas según el caso de uso.

El source es el origen de donde extraes los datos. Puede ser una base de datos, un repositorio, una API o cualquier estructura que entregue información. No importa el formato: si puedes leer datos de ahí, es una fuente válida.

El target, en cambio, es el destino donde cargas los datos ya transformados. Lo más común es que sea una base de datos columnar como Redshift, Snowflake o BigQuery. También puede ser una base transaccional como PostgreSQL, Oracle o MySQL, o incluso un repositorio de archivos como S3 o Cloud Storage.

¿Qué diferencia hay entre source y target? El source es de dónde sacas los datos; el target es a dónde los llevas. Uno alimenta el proceso, el otro lo cierra.

¿Para qué sirve el área de staging?

Entre el source y el target hay un espacio intermedio llamado staging. Es un área de paso, casi siempre en memoria, donde realizas las transformaciones antes de cargar los datos finales.

El staging no es el lugar donde reposa la información para análisis ni para machine learning. Es una zona temporal. Aunque vive en memoria, también puedes guardar partes de la transformación en una base de datos para retomarlas después y completar el cargue.

¿Qué es un data warehouse y cómo se estructura?

Un data warehouse es literalmente una bodega de datos con estructura definida, alimentada desde múltiples fuentes. Hoy la mayoría vive en la nube sobre bases columnares como BigQuery, Redshift o Snowflake.

Una forma muy usada de organizar la información dentro del data warehouse es el modelo estrella. En el centro pones una tabla de hechos con las métricas importantes de tu negocio, y alrededor pones tablas de dimensiones que describen cómo consultar esas métricas.

Piensa en una métrica de ventas. La tabla de hechos guarda cuánto se pagó por cada venta, y las dimensiones describen el contexto:

  • Producto.
  • Cliente.
  • Proveedor.
  • Tiempo.

Para un proyecto ETL de comercio internacional, por ejemplo, la tabla de hechos podría guardar el monto de la transacción de importación o exportación, el peso y las cantidades. Las dimensiones serían países o regiones, códigos de producto, descripciones, años y el tipo de operación.

¿Qué es el modelo estrella? Es una forma de organizar un data warehouse con una tabla central de métricas y tablas de dimensiones alrededor que dan contexto a esas métricas.

¿En qué se diferencian data lake, data warehouse y data lakehouse?

No todos los datos necesitan estructura previa. Aquí entran el data lake y el data lakehouse, que cambian el enfoque sobre cuándo y cómo transformas la información.

¿Qué es un data lake y cuándo conviene usarlo?

Un data lake casi siempre es un file system, no una base de datos. Es un repositorio donde guardas archivos en su formato raw, tal como vienen del source, sin transformaciones.

La ventaja es el costo. Guardar archivos en disco duro es mucho más barato que sostener un data warehouse completo. La desventaja es que no tienes compatibilidad analítica directa: no puedes hacer SQL sobre el lake como lo harías sobre un warehouse.

El data lake funciona muy bien cuando necesitas datos crudos para entrenar modelos de machine learning o procesos de inteligencia artificial.

¿Qué resuelve el data lakehouse?

El data lakehouse es la combinación de un data lake y un data warehouse. Mantienes los archivos en formato crudo dentro de un file system, pero agregas una capa de consulta SQL o un motor como Spark encima.

Con estructuras tipo Delta Lake, puedes dejar los datos en archivos entendibles por el lakehouse y aplicar SQL u otros lenguajes directamente sobre ellos, sin transformarlos antes. Ganas el costo bajo del lake y la capacidad analítica del warehouse.

¿Cuándo usar ETL y cuándo ELT?

El orden de las letras importa. En ETL extraes, transformas y luego cargas. En ELT extraes, cargas y transformas al final.

El flujo ELT encaja perfecto con el data lakehouse. Llevas los datos del source al file system en su formato crudo, sin tocarlos. La transformación ocurre después, según lo que necesites: un modelo de inteligencia artificial, un análisis puntual o una consulta sobre estructuras específicas.

¿Cuál es la diferencia entre ETL y ELT? En ETL transformas antes de cargar; en ELT cargas primero los datos crudos y transformas cuando los vas a usar. ELT es ideal para alimentar un lakehouse desde múltiples fuentes.

Estos conceptos son la base para diseñar cualquier flujo de datos serio. ¿Cuál de estos modelos se ajusta mejor al proyecto que tienes en mente? Cuéntame en los comentarios.