Este año no me he complicado y le he regalado un puzzle 3D a mi hermana pequeña para su cumpleaños.
Parecía fácil de montar pero ha resultado más complicado de lo que creía. No obstante, di con la clave del éxito: analizar previamente todas piezas, agruparlas según características comunes y afrontar el problema en pequeños grupos.
A medida que lo iba completando, me daba cuenta de la similitud que existe entre el desarrollo de un rompecabezas y la definición de un Data Layer en una aplicación de Business Intelligence.
¿Qué es una aplicación de Business Intelligence?
El Business Intelligence es el conjunto de técnicas y herramientas que permiten obtener conocimiento oculto a través de los datos, con el objetivo de tomar las mejores decisiones para la compañía.
Existen diferentes herramientas en el mercado, cada una con sus particularidades y características. Entre todas, destaca Qlik con sus dos productos (QlikView y Qlik Sense) que permiten a los usuarios ser autosuficientes para realizar sus análisis sin dependencia de otros equipos.
¿Qué es el Data Layer?
Cada aplicación de Business Intelligence debe disponer de su propio modelo de datos, el cuál debe ser robusto y diseñado de forma óptima para extraer el mayor conocimiento del negocio y poder garantizar la calidad del dato mostrado.
Desde el origen hasta la aplicación final, los datos deben fluir a través de diferentes capas, conocido actualmente como Data Layer. Cada una de las capas deberá de cumplir con un objetivo especifico y concreto.
¿Qué capas se han definir en el Data Layer?
Un Data Layer deberá disponer de las siguientes capas:
A) Capa Extractora
La primera capa tiene un objetivo primordial: extraer los datos de origen y guardarlos en un formato lo más comprimido posible. Se deberá aplicar la mínima transformación posible, para poder conservar el mismo formato que en origen. Además, la capa extractora servirá como copia de seguridad por si se perdieran los datos históricos en origen.
Como he comentado al inicio del artículo, el Data Layer y montar un puzzle tiene ciertas similitudes. Para un puzzle, la capa extractora sería como el procedimiento de sacar todas las piezas de la caja y distribuirlas en un lugar común, como por ejemplo una mesa.
B) Capa Entidad
En la segunda capa, se deberá coger toda la información generada por los extractores y aplicar transformaciones en los datos, como por ejemplo nomenclatura (ontología), formato y/o campos calculados.
Si lo trasladamos al escenario del puzzle, la capa entidad sería el procedimiento como agrupar las piezas en diferentes grupos y según características comunes.
C) Capa Funcional
En la tercera capa, se deberán unir diferentes entidades siempre que sea posible y tengan características comunes, con el objetivo de reducir los tiempos de carga y asegurar la reutilización en diferentes aplicaciones finales.
En el caso del puzzle, la capa funcional sería el procedimiento de unir las piezas que contienen los grupos formados en el anterior proceso, para poder obtener una pieza más grande e única.
D) Capa Final
Como ocurre en la primera capa, en la final la transformación de los datos ha de ser mínima. Si todo lo anterior se ha realizado correctamente, implementarla resultará fácil. Sólo se deberá realizar una carga completa de las entidades y/o funcionales que necesitamos para desarrollar los análisis de la aplicación de Business Intelligence.
En el escenario del puzzle, la capa final sería el procedimiento de juntar las distintas partes (tanto piezas grandes como pequeñas) para conseguir completar el puzzle.
¿Cuáles son las ventajas de definir un Data Layer?
Definir un Data Layer desde el inicio de un proyecto de Business Intelligence nos proporcionará una serie de ventajas:
- Plan de recargas: En función de la disponibilidad de los datos en origen, se podrá planificar el orden en el cuál se van a recargar los datos de las aplicación del servidor.
- Performance: Mejorar el rendimiento del servidor garantizando que no se realizarán recargas durante la ventana de servicio en que los usuarios acceden a la plataforma de análisis.
- Reutilización: Crear plantilla y compartir código entre equipos del negocio para utilizar en capas con objetivos similares.
- Quality Assurance: En caso de detección de errores en los datos, permite una rápida identificación de la capa en dónde se ha producido la incidencia.
- Control de versiones: Versionar el código de la ETL de carga de las diferentes capas de datos con herramientas como GitHub.
- Data – Insights: Capacidad de diferenciar dentro del procedimiento de una aplicación de Business Intelligence, la parte de carga y transformación de datos (Data) de la de visualización y análisis de datos (Insights).
Ejemplo práctico: Data Layer en Qlik
Con el objetivo de consolidar los conocimientos adquiridos en el artículo, se ha desarrollado un ejercicio práctico en Qlik Sense en dónde se aprenderá a definir la capa extractora, entidad, funcional y final.
Para empezar, se han definido 4 aplicaciones diferentes, una por cada capa de datos:
- Extractor
- Entidad
- Funcional
- App
Disponemos de diferentes orígenes (principalmente ficheros Excel) que contienen los siguientes datos:
- Clientes
- Productos
- Equipo comercial
- Provincias
- Ventas
- Teléfono móvil (Feedback)
¿Dónde me puedo descargar la app de Qlik Sense?
El material mostrado en el artículo (app, insights, script ETL, imágenes, etc.) se puede descargar a través del siguiente enlace: