Data Lake, Warehouse o Mart: ¿Cuál Elegir?
Los datos se han convertido en un activo del alto valor estratégico para todas las empresas, permitiéndoles obtener información valiosa para la toma de decisiones. Para lograrlo, existen diferentes herramientas y conceptos en el mundo de la ingeniería y la ciencia de datos, como son Data Lake, Data Warehouse y Data Mart. En este artículo, te explicaré cada uno de ellos y cuál es la mejor opción.
DataLake: Un Data Lake es un repositorio de datos en el cual se almacenan los datos en su formato original, organizados en una estructura de directorios con jerarquía de carpetas definidas por el Ingeniero de datos al momento de la ingesta . Permite la integración de datos de diferentes fuentes para su posterior análisis, lo que lo hace ideal para proyectos de Big Data. Es una solución escalable y flexible, en un DataLake puedes almacenar cualquier tipo de datos, desde archivos csv, json, xls, imágenes, videos etc. hasta archivos en formato parquet, orc, delta para luego ser usados y consumidos en procesos de integración, análisis de datos, Machine Learning etc. una de sus principales características es el uso del concepto ELT (Extact Load, Transformation) que varia del ETL (Extract, Transformation & Load).
Data WareHouse: Un Data Warehouse es una base de datos centralizada y estructurada, generalmente se usa un motor de base de datos relacional como Oracle, Sql Server, PostgreSQL aunque mas recientemente se suelen implementar en bases de datos NoSQL de tipo Columnar que están especialmente diseñadas para grandes consultas y escalamiento horizontal. Integra los datos de diferentes fuentes, los limpia y los transforma en un formato común para su análisis. Se utiliza para soportar la toma de decisiones de negocio, y es una solución más sencilla y estructurada que un Data Lake. La gestión de administración de la bases de datos es fundamental para mantener el rendimiento en los procesos de lectura de datos lo cual impacta el rendimiento de aplicaciones BI.
Data Mart: Un Data Mart es una versión reducida y especializada de un Data Warehouse, enfocada en un área de negocio específica. Contiene datos pre procesados y optimizados para la toma de decisiones de esa área, lo que lo hace ideal para proyectos específicos de análisis de datos, también hace uso del concepto de modelado multidimensional y se implementa en la mayoría de los casos en bases de datos relacionales, por su alcance enfocado a un tema o área de negocio es mas fácil de gestionar, ejemplo de un datamart seria un esquema para la consulta de ventas o compras de una empresa.
¿Cual de estos necesito?
La respuesta a esta pregunta depende del proyecto y las necesidades de cada empresa. Un Data Lake es ideal para proyectos de Big Data, en los que se necesite integrar datos sin estructurar de diferentes fuentes, mientras que un Data Warehouse es más recomendable para proyectos con menos cantidad de datos y en formatos estructurados. Por otro lado, un Data Mart es la mejor opción para proyectos específicos de análisis de datos de un área de negocio en particular, en general la selección dependerá mucho de factores tales como: presupuesto definido para el proyecto, el tiempo requerido para el desarrollo e implementación, la arquitectura definida si es 100% cloud, on-premise o hibrido, el nivel de madurez analítica de la empresa (Este tema lo trataremos a profundidad mas adelante) entre otros aspectos fundamentales.
En general para proyectos pequeños donde la cantidad de registros y la complejidad no es alta es recomendable usar el concepto de DataMart o Data WareHouse según sea necesario, ten en cuenta que siempre es recomendable trabajar bajo el concepto de victorias tempranas que agreguen valor al negocio; Por otra parte si el proyecto involucra una enorme cantidad de datos en formatos estructurados o semiestructurados lo mas recomendable sería usar un DataLake que pueda escalar en el tiempo, que no dependa de una estructura fija y pueda cambiar rápidamente, esta implementación es altamente recomendada en entornos cloud, pero un punto de vista mas profundo sería integrar un DataLake y un Data Warehouse bajo un esquema de arquitectura mas amplio y definido donde ambos se integran en un objetivo común.
Si estas en este momento implementando un proyecto y requieres algún tipo de asesoría, consulta o ayuda no dudes en contactarme al email: fsalazars@uoc.edu