Cuando el orden de los factores sí altera el producto.
Con distintos orígenes, formatos o características, nuestros datos siempre van a tener la necesidad compartida de ser transportados y almacenados de una forma eficaz, segura y fiable.
Las soluciones basadas en la nube se van consolidando con respecto a los sistemas On-premise al mismo tiempo que se van revisando y actualizando las estrategias recomendadas para gestionar nuestros datos. Tradicionalmente la estrategia estándar para movilizar la información se ha basado en los procesos ETL (Extract, Transform, Load).
¿Qué es ETL?
Veamos un poco más detenidamente el significado de estas siglas:
- E: extracción de los datos sin procesar de una o varias fuentes. Estos datos pueden tener diferentes orígenes y formatos como JSON, CSV o XML.
- T: transformación de los datos a un formato compatible con nuestro destino. Las transformaciones más habituales consisten en aplanar los datos, adaptar los formatos numéricos y de fechas, gestión de los valores nulos…
- L (load): carga de datos en destino y disponibilización para las áreas de negocio.
Si bien ETL sigue siendo una estrategia totalmente válida y todavía utilizada en muchos entornos de trabajo, con el incremento de los volúmenes de los datos y la creciente necesidad de tener la información disponible lo más cerca posible del tiempo real, se han desarrollado nuevos modelos y herramientas para optimizar al máximo el tiempo requerido para desarrollar estos procesos.
Las soluciones basadas en la nube de tipo SaaS (Software as a Service) están imponiéndose en las grandes empresas y Snowflake es una de las principales plataformas SaaS a nivel mundial. Con Snowflake podemos optimizar los tiempos de consulta y gestión de nuestra información, pero ¿podemos aprovechar también las características de una solución basada en la nube para que los procesos de transformación de datos sean más eficaces?
¿Qué es ELT?
Una variante de la estrategia ETL que se ha vuelto popular en los últimos años con el auge de la nube y el uso de herramientas de integración de datos más sofisticadas es ELT (Extract, Load, Transform).
En la estrategia ELT, se extraen los datos de la fuente, se cargan en un sistema de destino en la nube (como Snowflake) y una vez que los datos ya están en el sistema de destino, es cuando se transforman.
El cambio en el orden puede parecer trivial, pero permite una reestructuración completa de nuestra forma de trabajar y de los resultados que obtendremos.
En esta primera imagen podemos ver un ejemplo de infraestructura basada en un sistema ETL donde los procesos de transformación tienen lugar antes de la carga en el sistema destino.
En esta segunda imagen vemos un ejemplo de ELT en el que se eliminan los procesos de transformación previos a la carga en el sistema destino.
ETL vs ELT. ¿Qué estrategia elegir?
Ambas soluciones tienen sus ventajas y desventajas y la elección de una u otra dependerá de las necesidades y requisitos de nuestro proyecto. Veamos a través del análisis de diversos parámetros, las principales diferencias entre estas dos soluciones para un escenario en el que tendremos que trabajar con grandes volúmenes de datos y en el que es importante tener el acceso a la información en el menor tiempo posible:
Costes
ETL: al estar basado en una solución On-premise requerirá una elevada inversión inicial para empresas pequeñas y medianas.
ELT: con una solución SaaS, la inversión inicial es muy baja puesto que no requiere de ningún tipo de infraestructura local, teniendo que pagar únicamente en función del tiempo de uso del procesamiento y del almacenamiento requerido.
Tiempos de carga
ETL: los datos deben cargarse primero en un sistema intermedio donde realizar las transformaciones y posteriormente volver a cargarlos en el sistema de destino.
ELT: los datos se cargan directamente y sin transformar en el sistema de destino.
Tiempos de transformación
ETL: determinados por el Hardware en negocio. Puede ser muy caro de adquirir y mantener.
ELT: flexible en función de las necesidades pudiendo asignar estática o dinámicamente soluciones Multi-Cluster de Warehouse Virtuales.
Complejidad de implementación
ETL: Podría considerarse el estándar, con décadas de implementación y múltiples herramientas establecidas con amplia documentación sobre la operatividad. Es una opción sencilla de gestionar.
ELT: Es una alternativa relativamente nueva que requiere conocimientos especializados en el SaaS escogido.
Disponibilidad de la información
ETL: Debido a los tiempos de carga y transformación, más el tiempo añadido al tener que generar los procesos por separado, se incrementa el tiempo necesario para que la información esté disponible.
ELT: Gracias a la flexibilidad de poder asignar dinámicamente los recursos necesarios para realizar las transformaciones, es posible conseguir resultados NRT (Near Real Time).
Conclusiones
Entonces, ¿siempre es mejor una estrategia ELT frente a ETL? En la informática en general y en el mundo de los datos en particular, son pocos los casos en los que una solución es siempre preferible frente a otra. Como ocurre en la mayoría de las situaciones, la estrategia más adecuada para nuestro negocio dependerá de sus características y necesidades.
En entornos con grandes volúmenes de datos y la necesidad de tener la información disponible lo antes posible, las ventajas de la estrategia ELT son incontestables.
Sin embargo, en entornos donde el volumen de datos sea pequeño y no sea vital disponer de la información en tiempo real, la estrategia ETL puede seguir siendo una buena opción, ya que podremos gestionarla con equipos de hardware económicos y será más sencillo de gestionar y administrar, pudiendo trabajar con herramientas con las que ya estemos familiarizados y que no requieran un alto grado de especialización.
En hiberus somos Service Partner Select de Snowflake y contamos con un equipo certificado en la plataforma que tiene una gran experiencia en el desarrollo de estrategias de datos. Podemos ayudarte a diseñar, migrar, implantar y sacar el máximo partido de las soluciones Snowflake más adecuadas para tu negocio. ¿Hablamos?
¿Quieres más información sobre nuestros servicios de Snowflake?
Contacta con nuestro equipo de Snowflake