Almacén de datos, Lago de datos, Lakehouse. Si ninguna de estas palabras le resuena al menos un poco, está claro que su trabajo no está relacionado con los datos. 👨💻
Sin embargo, ésa sería una premisa poco realista, ya que hoy en día todo está relacionado con los datos, según parece. O como les gusta describirlo a los líderes corporativos:
- Negocio centrado en los datos e impulsado por los datos.
- Datos en cualquier lugar, en cualquier momento y de cualquier manera.
El activo más importante
Parece que los datos se han convertido en el activo más valioso de cada vez más empresas. Recuerdo que las grandes empresas siempre generaban muchos datos, piense en terabytes de datos nuevos cada mes. Eso era todavía hace 10-15 años. Pero ahora, se puede generar fácilmente esa cantidad de datos en unos pocos días. Uno se preguntaría si es realmente necesario, incluso si se trata de algún contenido que alguien vaya a utilizar. Y sí, definitivamente no lo es 😃.
No todo el contenido será de alguna utilidad, y algunas partes ni siquiera una sola vez. A menudo he sido testigo en primera línea de cómo las empresas generaban una enorme cantidad de datos sólo para volverse inútiles tras una carga satisfactoria.

Pero eso ya no es relevante. El almacenamiento de datos -ahora en la nube- es barato, las fuentes de datos crecen exponencialmente, y hoy en día nadie puede predecir lo que necesitará un año después, una vez que se hayan incorporado nuevos servicios al sistema. En ese momento, incluso los datos antiguos pueden llegar a ser valiosos.
Por lo tanto, la estrategia consiste en almacenar tantos datos como sea posible. Pero también de la forma más eficaz posible. De modo que los datos no sólo puedan guardarse eficazmente, sino también consultarse, reutilizarse o transformarse y distribuirse más.
Echemos un vistazo a tres formas nativas de lograr esto dentro de AWS:
- Atenea Base de datos - una forma barata y eficaz, aunque sencilla, de crear una laguna de datos en la nube.
- Redshift Database - una versión en la nube seria de un almacén de datos que tiene el potencial de sustituir a la mayoría de las soluciones on-premise actuales, incapaces de ponerse al día con el crecimiento exponencial de los datos.
- Databricks - una combinación de lago de datos y almacén de datos en una única solución, con algunas bonificaciones por encima de todo ello.
Lago de datos de AWS Athena

El lago de datos es un lugar donde puede almacenar los datos entrantes en forma no estructurada, semiestructurada o estructurada de forma rápida. Al mismo tiempo, usted no espera que estos datos se modifiquen una vez almacenados. Por el contrario, quiere que sean lo más atómicos e inmutables posible. Sólo así se asegurará el mayor potencial de reutilización en etapas posteriores. Si perdiera esta propiedad atómica de los datos justo después de la primera carga en un lago de datos, no habría forma de recuperar esta información perdida.
AWS Atenea es una base de datos con almacenamiento directamente en buckets S3 y sin clústeres de servidores ejecutándose en segundo plano. Esto significa que es un servicio de lago de datos realmente barato. Los formatos de archivos estructurados como parquet o archivos de valores separados por comas(CSV) mantienen la organización de los datos. El bucket de S3 guarda los archivos, y Athena hace referencia a ellos cada vez que los procesos seleccionan los datos de la base de datos.
Athena no admite varias funcionalidades consideradas estándar, como las sentencias de actualización. Por ello, debe considerar Athena como una opción muy sencilla. Por otro lado, le ayuda a evitar la modificación de su laguna de datos atómicos simplemente porque no puede 😐.
Admite la indexación y la partición, lo que permite ejecutar sentencias selectas con eficacia y crear trozos de datos separados lógicamente (por ejemplo, separados por columnas de fecha o clave). También puede escalarse horizontalmente con gran facilidad, ya que esto es tan complejo como añadir nuevos buckets a la infraestructura.
Ventajas y desventajas
Ventajas a tener en cuenta
- El hecho de que Athena sea barato (consiste únicamente en buckets de S3 y costes de uso de SQL por uso) constituye la ventaja más significativa. Si desea construir un lago de datos asequible en AWS, es éste.
- Como servicio nativo, Athena puede integrarse fácilmente con otros servicios útiles de AWS como Amazon QuickSight para la visualización de datos o AWS Glue Data Catalog para crear metadatos estructurados persistentes.
- Lo mejor para ejecutar consultas ad hoc sobre una gran cantidad de datos estructurados o no estructurados sin mantener toda una infraestructura a su alrededor.
Desventajas a tener en cuenta:
- Athena no es especialmente eficaz a la hora de devolver consultas selectas complejas con rapidez, sobre todo si las consultas no siguen los supuestos del modelo de datos de cómo se diseñó para solicitar los datos del lago de datos.
- Esto también lo hace menos flexible con respecto a los posibles cambios futuros en el modelo de datos.
- Athena no admite ninguna funcionalidad avanzada adicional fuera de la caja, y si desea que algo específico forme parte del servicio, deberá implementarlo por encima.
- Si espera utilizar los datos del lago de datos en alguna capa de presentación más avanzada, a menudo la única opción es combinarlo con otro servicio de base de datos más adecuado para ese fin, como AWS Aurora o AWS Dynamo DB.
Propósito y caso de uso en el mundo real
Elija Athena si el objetivo es la creación de un lago de datos sencillo sin funcionalidades avanzadas tipo almacén de datos. Así, por ejemplo, si no espera consultas analíticas serias de alto rendimiento que se ejecuten regularmente sobre el lago de datos. En su lugar, lo prioritario es disponer de un conjunto de datos inmutables con una ampliación sencilla del almacenamiento de datos.
Ya no tiene que preocuparse demasiado por la falta de espacio. Incluso el coste del almacenamiento en cubos S3 puede reducirse aún más aplicando una política de ciclo de vida de los datos. Esto significa básicamente mover los datos a través de diferentes tipos de cubos S3, orientados más hacia fines de archivo con tiempos de retorno de ingestión más lentos pero con costes más bajos.
Una gran característica de Athena es que crea automáticamente un archivo compuesto por los datos que forman parte de un resultado de su consulta SQL. A continuación, puede tomar este archivo y utilizarlo para cualquier fin. Por tanto, es una buena opción si tiene muchos servicios lambda que procesan los datos en varios pasos. Cada resultado lambda será automáticamente el resultado en un formato de archivo estructurado como entrada lista para el procesamiento posterior.
Athena es una buena opción en situaciones en las que una gran cantidad de datos en bruto están llegando a su infraestructura en la nube, y no necesita procesarlos en el momento de la carga. Eso significa que todo lo que necesita es un almacenamiento rápido en la nube en una estructura fácil de entender.
Otro caso de uso sería crear un espacio dedicado a fines de archivo de datos para otro servicio. En tal caso, Athena DB se convertiría en un lugar de copia de seguridad barato para todos los datos que no necesite en este momento, pero que podrían cambiar en el futuro. En este momento, se limitará a ingerir los datos y enviarlos más adelante.
Almacén de datos de AWS Redshift

Un almacén de datos es un lugar donde los datos se almacenan de forma muy estructurada. Son fáciles de cargar y extraer. La intención es ejecutar un gran número de consultas muy complejas, uniendo muchas tablas mediante uniones complejas. Existen varias funciones analíticas para calcular diversas estadísticas sobre los datos existentes. El objetivo final es extraer predicciones y hechos futuros que puedan aprovecharse en la empresa en el futuro, utilizando los datos existentes.
Redshift es un sistema de almacenamiento de datos en toda regla. Con servidores en clúster para ajustar y escalar -horizontal y verticalmente- y un sistema de almacenamiento de bases de datos optimizado para devoluciones rápidas de consultas complejas. Aunque hoy en día también puede ejecutar Redshift en modo sin servidor. No hay archivos en S3 ni nada parecido. Se trata de un servidor de clúster de base de datos estándar con su propio formato de almacenamiento.
Dispone de herramientas de supervisión del rendimiento listas para usar, junto con métricas de panel personalizables que puede utilizar y observar para ajustar el rendimiento a su caso de uso. También se puede acceder a la administración a través de cuadros de mando independientes. Requiere cierto esfuerzo comprender todas las características y configuraciones posibles y cómo afectan al clúster. Pero aun así, no es ni de lejos tan compleja como solía ser la administración de los servidores Oracle en el caso de las soluciones on-premise.
Aunque existen varios límites de AWS en Redshift que establecen algunos límites sobre cómo utilizarlo en el día a día (por ejemplo, límites duros sobre la cantidad de usuarios activos concurrentes o sesiones en un clúster de base de datos), el hecho de que las operaciones se ejecuten realmente rápido ayuda a eludir esos límites hasta cierto punto.
Ventajas y desventajas
Ventajas a tener en cuenta:
- Servicio nativo de almacén de datos en la nube de AWS fácil de integrar con otros servicios.
- Un lugar central para almacenar, monitorizar e ingerir varios tipos de fuentes de datos procedentes de sistemas fuente muy diferentes.
- Si alguna vez quiso disponer de un almacén de datos sin servidor y sin la infraestructura necesaria para mantenerlo, ahora puede hacerlo.
- Optimizado para análisis e informes de alto rendimiento. A diferencia de una solución de laguna de datos, existe un sólido modelo de datos relacional para almacenar todos los datos entrantes.
- El motor de base de datos de Redshift tiene su origen en PostgreSQL, lo que garantiza una alta compatibilidad con otros sistemas de bases de datos.
- Sentencias COPY y UNLOAD muy útiles para cargar y descargar los datos desde y hacia los buckets S3.
Desventajas a tener en cuenta:
- Redshift no admite una gran cantidad de sesiones activas concurrentes. Las sesiones se pondrán en espera y se procesarán secuencialmente. Aunque puede no ser un problema en la mayoría de los casos, ya que las operaciones son realmente rápidas, es un factor limitante en sistemas con muchos usuarios activos.
- Aunque Redshift soporta muchas funcionalidades conocidas anteriormente de los sistemas maduros de Oracle, todavía no está al mismo nivel. Es posible que algunas de las funciones esperadas no estén ahí (como los disparadores de BD). O Redshift las soporta de forma bastante limitada (como las vistas materializadas).
- Siempre que necesite un trabajo de procesamiento de datos personalizado más avanzado, tendrá que crearlo desde cero. La mayoría de las veces, utiliza el lenguaje de código Python o Javascript. No es tan natural como PL/SQL en el caso del sistema Oracle, donde incluso la función y los procedimientos utilizan un lenguaje muy similar a las consultas SQL.
Finalidad y caso de uso en el mundo real
Redshift puede ser su almacén central para todas las diversas fuentes de datos que antes vivían fuera de la nube. Es un sustituto válido de las anteriores soluciones de almacén de datos de Oracle. Dado que también es una base de datos relacional, la migración desde Oracle es incluso una operación bastante sencilla.
Si dispone de soluciones de almacenamiento de datos en muchos lugares que no están realmente unificadas en cuanto a enfoque, estructura o un conjunto predefinido de procesos comunes para ejecutar sobre los datos, Redshift es una gran elección.
Simplemente le brindará la oportunidad de fusionar todos los diversos sistemas de almacén de datos de distintos lugares y países bajo un mismo techo. Podrá seguir separándolos por países para que los datos permanezcan seguros y accesibles sólo para quienes los necesiten. Pero, al mismo tiempo, le permitirá construir una solución de almacén unificada que abarque todos los datos corporativos.
Otro caso podría ser si el objetivo es construir una plataforma de almacenamiento de datos con un amplio soporte de autoservicios. Puede entenderlo como un conjunto de procesamientos que los usuarios individuales del sistema pueden construir. Pero, al mismo tiempo, nunca forman parte de la solución de la plataforma común. Eso significa que dichos servicios seguirán siendo accesibles únicamente para el creador o el grupo de personas definido por el creado. No afectarán en modo alguno al resto de usuarios.
Consulte nuestra comparativa entre Datalake y Datawarehouse.
Lakehouse de Databricks en AWS

Lakehouse es un término realmente ligado al servicio Databricks. Aunque no sea un servicio nativo de AWS, vive y funciona muy bien dentro del ecosistema de AWS y ofrece varias opciones sobre cómo conectarse e integrarse con otros servicios de AWS.
Databricks pretende conectar áreas (antes) muy distintas:
- Una solución para el almacenamiento en lago de datos no estructurados, semiestructurados y estructurados.
- Una solución para almacén de datos estructurada y de consulta de acceso rápido (también llamada Delta Lake).
- Una solución de apoyo a la analítica y la computación de aprendizaje automático sobre el lago de datos.
- Gobernanza de datos para todas las áreas anteriores con administración centralizada y herramientas listas para usar que apoyan la productividad de los distintos tipos de desarrolladores y usuarios.
Se trata de una plataforma común que los ingenieros de datos, los desarrolladores de SQL y los científicos de datos de aprendizaje automático pueden utilizar simultáneamente. Cada uno de los grupos dispone también de un conjunto de herramientas que puede utilizar para realizar sus tareas.
Así pues, Databricks aspira a ser una solución "jack-of-all-trades", tratando de combinar las ventajas del lago de datos y del almacén de datos en una única solución. Además, proporciona las herramientas para probar y ejecutar modelos de aprendizaje automático directamente sobre almacenes de datos ya construidos.
Ventajas y desventajas
Ventajas a tener en cuenta:
- Databricks es una plataforma de datos altamente escalable. Escala en función del tamaño de la carga de trabajo, y lo hace incluso de forma automática.
- Es un entorno de colaboración para científicos de datos, ingenieros de datos y analistas empresariales. Tener la posibilidad de hacer todo esto en el mismo espacio y juntos es una gran ventaja. No sólo desde una perspectiva organizativa, sino que también ayuda a ahorrar otro coste que de otro modo sería necesario para entornos separados.
- AWS Databricks se integra perfectamente con otros servicios de AWS, como Amazon S3, Amazon Redshift y Amazon EMR. Esto permite a los usuarios transferir fácilmente datos entre servicios y aprovechar toda la gama de servicios en la nube de AWS.
Desventajas a tener en cuenta:
- Databricks puede ser complejo de configurar y administrar, especialmente para los usuarios que son nuevos en el procesamiento de big data. Requiere un nivel significativo de conocimientos técnicos para sacar el máximo partido a la plataforma.
- Aunque Databricks es rentable por su modelo de precios de pago por uso, puede resultar caro para proyectos de procesamiento de datos a gran escala. El coste de utilización de la plataforma puede ascender rápidamente, sobre todo si los usuarios necesitan ampliar sus recursos.
- Databricks proporciona una serie de herramientas y plantillas preconstruidas, pero esto también puede ser una limitación para los usuarios que necesiten más opciones de personalización. La plataforma puede no ser adecuada para los usuarios que requieren más flexibilidad y control sobre sus flujos de trabajo de procesamiento de big data.
Finalidad y caso de uso en el mundo real
AWS Databricks es más adecuado para grandes corporaciones con una gran cantidad de datos. Aquí puede cubrir el requisito de cargar y contextualizar varias fuentes de datos de diferentes sistemas externos.
A menudo, el requisito es proporcionar datos en tiempo real. Esto significa que desde el momento en que los datos aparecen en el sistema fuente, los procesos deberán recogerlos inmediatamente y procesarlos y almacenarlos en Databricks al instante o con un retraso mínimo. Si el retraso es superior a un minuto, se considera un procesamiento casi en tiempo real. En cualquier caso, ambos escenarios suelen ser alcanzables con la plataforma Databricks. Esto se debe principalmente a la gran cantidad de adaptadores e interfaces en tiempo real que conectan con otros servicios nativos de AWS.
Databricks también se integra fácilmente con los sistemas ETL de Informatica. Siempre que el sistema de la organización ya utilice ampliamente el ecosistema de Informatica, Databricks parece una buena adición compatible a la plataforma.
Palabras finales
A medida que el volumen de datos sigue creciendo exponencialmente, es bueno saber que existen soluciones que pueden hacer frente a ello con eficacia. Lo que antes era una pesadilla de administrar y mantener, ahora requiere muy poco trabajo de administración. El equipo puede centrarse en crear valor a partir de los datos.
Dependiendo de sus necesidades, sólo tiene que elegir el servicio que pueda encargarse de ello. Mientras que AWS Databricks es algo a lo que probablemente tendrá que atenerse una vez tomada la decisión, las otras alternativas son bastante más flexibles, aunque menos capaces, especialmente sus modos sin servidor. Es bastante fácil migrar a otra solución más adelante.