Carga de datos ETL con Pentaho a Redshift

Resumen

La carga es el último paso de un pipeline ETL y en Pentaho se resuelve con un componente llamado Table Output. Si ya limpiaste tus datos, conectar la salida a Redshift, S3, JSON o CSV toma pocos minutos y deja todo listo para análisis.

¿Qué hace el paso de carga en un pipeline ETL?

La carga toma el dataset transformado y lo escribe en un destino final. En Pentaho ese destino lo defines desde la sección output del diseñador, donde aparecen todos los targets disponibles para tu flujo.

¿Qué es Table Output en Pentaho? Es el paso que inserta los registros procesados directamente en una tabla de base de datos, mapeando columnas y manejando commits por lote.

Entre las opciones que tienes para cerrar un pipeline aparecen varias rutas según tu arquitectura:

  • Cargar a un data warehouse como Redshift, BigQuery, Snowflake u Oracle.
  • Enviar el resultado a S3 como almacenamiento intermedio.
  • Generar archivos planos en CSV, JSON o XML.
  • Producir sentencias insert listas para ejecutar.

Cada destino responde a una necesidad distinta, así que la elección depende de quién consume los datos después.

¿Cómo configurar Table Output hacia Redshift paso a paso?

El flujo parte del dataset limpio, en este caso Quantity, y conecta con una copia hacia el nodo Table Output. Antes de configurarlo necesitas tener creada la conexión a Redshift, que se levanta igual que una conexión a Postgres.

Dentro del paso debes definir tres elementos clave:

  • El esquema destino, que aquí se llama etl_test.
  • La tabla destino, que coincide con Quantity.
  • El tamaño del commit, configurado cada 1.000 registros aunque podrías bajarlo a 100 si la tabla es pequeña.

El tamaño del commit importa porque controla cada cuántas filas Pentaho confirma la transacción contra la base. Para tablas con pocos registros, lotes más chicos te dan retroalimentación más rápida.

¿Y si los nombres de columnas no coinciden?

Pentaho ofrece un mapeo dentro del mismo paso para emparejar campos del flujo con campos de la tabla destino. En este ejemplo id_quantity y quantity_name se llaman igual en origen y destino, así que el mapeo es directo.

¿Cuándo necesito mapear columnas manualmente? Solo cuando los nombres del dataset no coinciden con los de la tabla destino; si son idénticos, Pentaho los empareja automáticamente.

¿Cómo verificar que la carga funcionó?

Antes de ejecutar conviene consultar la tabla destino desde tu cliente SQL, en este caso DataSpell, para confirmar que está vacía. Después de correr el pipeline, repites la consulta y deberías ver todos los registros insertados.

El proceso termina con un mensaje de inserción y los datos quedan disponibles para análisis posteriores. Esa validación de antes y después es la forma más simple de confirmar que el Table Output hizo su trabajo.

¿Qué otros destinos puedes probar desde Pentaho?

La misma lógica que usaste con Redshift aplica a cualquier otro target. Crear la conexión, mapear columnas y ejecutar. Eso te abre la puerta a experimentar con varios formatos sin reescribir el pipeline completo.

Algunas variantes que vale la pena replicar con el resto de datasets:

  • Exportar a un archivo JSON para integraciones con APIs.
  • Generar un CSV para análisis rápido en hojas de cálculo.
  • Producir XML cuando trabajas con sistemas legacy.
  • Cargar a Oracle, BigQuery o Snowflake según el stack de tu equipo.

Pentaho es gratis, intuitivo y se adapta bien a proyectos de distinto tamaño. Si tienes una idea de pipeline que quieras llevar a esta herramienta, cuéntalo en los comentarios y comparte tu experiencia con la comunidad.