dbt sigue siendo una opción sólida y sensata para implementar transformaciones de datos en pipelines ELT. Nos gusta que favorece un enfoque riguroso de ingeniería y habilita prácticas como modularidad, capacidad de prueba y reutilización de transformaciones basadas en SQL. dbt se integra bien con muchos data warehouses en la nube, lakehouses y bases de datos, incluidos Snowflake, BigQuery, Redshift, Databricks y Postgres, y cuenta con un ecosistema saludable de paquetes comunitarios. El soporte nativo que se introdujo recientemente (en dbt core 1.8+ y la experiencia recién introducida de dbt Cloudsin versión”) para las pruebas unitarias, refuerza aún más su posición en nuestro conjunto de herramientas. A nuestros equipos les gusta la nueva característica de pruebas unitarias, ya que les permite definir fácilmente datos de prueba estáticos, establecer expectativas de salida y probar tanto los modos de actualización incremental como de actualización completa de sus pipelines. En muchos casos, esto les ha permitido retirar scripts desarrollados internamente, manteniendo el mismo nivel de calidad.
dbtcontinúa siendo nuestra herramienta preferida para transformación de datos en flujos de trabajo ELT. Nos gusta que se presta al rigor de la ingeniería y habilita prácticas como modularidad, testabilidad y reusabilidad de transformaciones SQL. dbt está disponible en ambos formatos, como código libre y como software como servicio, y tiene un ecosistema sano, incluyendo un repositorio con paquetes para pruebas unitarias, calidad de datos y observabilidad de datos, por nombrar unos cuantos. Algunos paquetes que merece la pena mencionar son dbt-expectations y dbt-unit-testing que facilitan las verificaciones de la calidad de los datos y las pruebas unitarias de las transformaciones, respectivamente. dbt se integra bien con una variedad de almacenes de datos en la nube, lakehouses y bases de datos como Snowflake, BigQuery, Redshift, Databricks y Postgres. Cuando trabajamos con datos estructurados en los que es posible establecer transformaciones en SQL, nuestros equipos prefieren dbt — que es el motivo por el que lo movemos a Adopt.
Desde la última vez que escribimos sobre dbt, lo hemos utilizado en algunos proyectos y nos gusta lo que hemos visto. Por ejemplo, dbt hace que la parte de transformación de los pipelines ETL sea más accesible para los consumidores de los datos en vez de solo para los ingenieros de datos que los construyen. Al mismo tiempo, fomenta la aplicación de buenas prácticas de ingeniería, como el versionamiento, las pruebas automatizadas y los despliegues. SQL sigue siendo la lengua franca del mundo de los datos (incluyendo bases de datos, almacenes de datos, motores de consulta, lagos de datos y plataformas de analítica) y la mayoría de estos sistemas lo soportan en cierta medida. Esto permite que dbt sea utilizado frente a estos sistemas para realizar transformaciones con la sola construcción de adaptadores. El número de conectores nativos ha crecido e incluyen aquellos para Snowflake, BigQuery, Redshift y Postgres, al igual que la gama de complementos de la comunidad. Vemos que las herramientas como dbt ayudan a que las plataformas de datos brinden más capacidades de auto-servicio.
La transformación de datos es una parte esencial de los flujos de trabajo de procesamiento de datos: filtrar, agrupar o unir múltiples fuentes en un formato que sea adecuado para el análisis de datos o para alimentar modelos de machine learning. dbt es una herramienta open-source y un producto comercial SaaS que proporciona capacidades de transformación simples y efectivas a los analistas de datos. Los frameworks y herramientas actuales para la transformación de datos, o bien pueden entrar en el grupo de potentes y flexibles — que requieren un conocimiento íntimo del modelo de programación y los lenguajes del framework como es el caso de Apache Spark — o en el grupo de las herramientas con una interfaz de usuario simple tipo drag-and-drop que no se prestan a prácticas fiables de ingeniería como las pruebas y despliegues automatizados. dbt rellena un nicho: usa SQL -una interfaz ampliamente comprendida- para modelar transformaciones simples en lotes, al tiempo que proporciona herramientas de línea de comando que animan a aplicar buenas prácticas de ingeniería como el versionado, las pruebas y el despliegue automatizados; esencialmente implementa modelado de transformación basado en SQL como código. dbt soporta actualmente múltiples fuentes de datos, incluyendo Snowflake y Postgres, y ofrece varias opciones de ejecución, como Airflow y la propia oferta de Apache en la nube. Su capacidad de transformación se limita a lo que ofrece SQL, y no soporta transformaciones de streaming en tiempo real en el momento que escribimos estas líneas.