En los últimos años el ámbito del análisis de datos ha evolucionado rápidamente y la arquitectura que hemos estado usando ha evolucionado bastante. Por eso quiero compartir la arquitectura de datos promedio que utilizamos en Jortilles.
Como siempre, cada caso es distinto y esta solución no sirve para todos. Pero si que es un buen punto de partida para una empresa / organización media. A partir de aquí se abre todo un abanico de posibilidades.
Partimos de la primera elección. On Premime o en el cloud? Es la primera pregunta que debemos responder porque de esta respuesta dependen muchas cosas.
On Premise
En el caso de que decidamos desplegar en nuestra infraestructura el dibujo se podría parecer mucho a esto:
La elección de Jortilles para la ingesta de datos es la combinación de Apache Ariflow y Apache Hop.
- Apache Hop es la herramienta ETL muy potente y versátil. Y su enfoque hace que sea muy sencilla de utilizar y gestionar. Si no conoces Apache Hop puedes echarle un vistazo a su documentación o a nuestro Hola Mundo.
- Apache Airflow es un Planificador / orquestador de procesos ETL magnifico. Apache hop es magnifico. Pero le falta la parte de planificación, gestión y orquestación. Esta funcionalidad de gestión nos lo ofrece Apache Airflow. Planificar cuando se ejecutarán los procesos ETL. Qué hacer en caso de que fallen. etc. Si no conoces Apache Airflow tenemos un Hola Mundo que quizás te interese. En organizaciones pequeñas que no necesitan de esta gestión avanzada de los procesos ETL gestionamos las planificaciones con una simple tarea programada.
En lo que se refiere a la base de datos. La elección es Vertica cómo base de datos analítica on premise. Vertica ofrece una vestión sin coste para bases de datos menores a un tera de datos. En caso de un usar Vertica, y dependiendo del contexto, usaríamos PostgreSQL. que es la base de datos relacional open source más avanzada.
La visualización de datos, en Jortilles se hace por defecto con EDA. La herramienta de visualización de datos que nos permite una mayor velocidad de desarrollo y resultados óptimos. Todos los usuarios que prueban EDA no quieren cambiar.
En el cloud
En el caso de que nos decidamos por una arquitectura cloud la arquitectura varía ligeramente. Jortilles cada vez ve esta opción con mejores ojos. Especialmente en organizaciones muy pequeñas por falta de recursos y organizaciones grandes por escalabilidad. La arquitectura cloud nos permite disfrutar del famoso pago por uso. Este planteamiento, aunque a primera vista nos puede parecer caro si lo contemplamos aisladamente. Cuando hacemos un análisis más profundo, el ahorro que supone en cuanto a administración y gestión de infraestructura es considerable por lo que no sale tan caro y en ocasiones incluso permite ahorrar costes.
En cuanto a la capa de aprovisionamiento de datos. Seguimos optando por la combinación de Airflow y Hop. En ese punto no hay cambios.
En lo que hace referencia a la base de datos. Llevamos algún tiempo jugando con Snowflake y esta tan bien hecha que es difícil no recomendarla cómo base de datos cloud. En cuanto a los costes. Recuerda que tienes que contar todo el gasto que te supone una base de datos. No es sólo la máquina, sino las horas de DBA, la administración de las máquinas, etc. Al final no resulta tan caro si lo sumas todo.
Finalmente. En cuanto a la visualización de datos. Edalitics es la versión cloud de EDA. Todo lo dicho para Snowflake aplica también para Edalitics. Además de estar «siempre a la última».