Resumen del Curso: Abstracciones de Almacenamiento de Datos
Descripción
En esta semana del curso, se explorarán diferentes abstracciones de almacenamiento de datos, comenzando con la arquitectura de los almacenes de datos y su evolución hacia soluciones modernas en la nube. Se abordarán los lagos de datos y la arquitectura de Lakehouse, analizando sus ventajas, desventajas y casos de uso.
Contenido
1. Revisión de la Semana Anterior
- Materias Primas del Almacenamiento: Se discutieron las características, rendimiento y costo de diferentes medios y procesos de almacenamiento.
- Sistemas de Almacenamiento: Se exploraron el almacenamiento de objetos y tipos comunes de bases de datos.
2. Temas de Esta Semana
- Arquitectura del Almacén de Datos:
- Evolución hacia almacenes de datos en la nube.
- Lagos de Datos:
- Respuesta a las crecientes necesidades de almacenamiento.
- Consideraciones sobre volumen de datos, tipos de datos y casos de uso.
- Desafíos de la Arquitectura:
- Problemas asociados con la implementación de lagos de datos.
- Arquitectura de Lakehouse:
- Combinación de ventajas de almacenes de datos y lagos de datos.
3. Objetivos de Aprendizaje
- Comprender cada arquitectura de almacenamiento para elegir la solución más adecuada según el caso de uso.
4. Ejercicios de Laboratorio
- Herramientas Utilizadas:
- AWS Glue
- AWS Athena
- Actividades:
- Recuperación eficiente de datos en un lago de datos.
- Creación de una casa de lago de datos utilizando:
- Arquitectura medallón
- Tablas de iceberg de AWS
- Lake Formation
- Apache
5. Invitado Especial
- Bill Inman: Reconocido como el padre del almacén de datos, se presentará un video opcional sobre su perspectiva en el campo de los datos.
Conclusión
Al finalizar esta semana, se espera que los participantes tengan una comprensión más profunda de las diferentes abstracciones de almacenamiento de datos y estén mejor equipados para tomar decisiones informadas sobre soluciones de almacenamiento.
¡Nos vemos en la próxima sesión para profundizar en los almacenes de datos!
Resumen de la Entrevista con Bill Inmon
Descripción
En esta entrevista, Bill Inmon, considerado el creador del almacén de datos y pionero en la industria de datos moderna, comparte su experiencia y conocimientos sobre el desarrollo de almacenes de datos y la tecnología ETL (Extracción, Transformación y Carga). A lo largo de la conversación, Inmon reflexiona sobre la evolución de la informática y la importancia de tener una visión corporativa de los datos.
Contenido
Introducción a Bill Inmon
- Nombre: Bill Inmon
- Experiencia: Más de 50 años en la industria de la informática.
- Primer programa: Escrito en 1965 en White Sands Missile Range, Nuevo México.
¿Qué es un Almacén de Datos?
- Definición: Un almacén de datos es un repositorio de datos corporativos que representa todos los aspectos de una organización.
- Contexto histórico: Antes de los almacenes de datos, las aplicaciones eran independientes y personalizadas, lo que dificultaba obtener una visión global de la información.
- Necesidad: Las organizaciones como marketing, ventas y finanzas requieren una visión unificada de los datos.
Transformación de Datos
- Proceso: La transformación de datos de aplicaciones a un almacén de datos se realiza comúnmente a través de la tecnología ETL.
- ETL:
- Definición: Extracción, Transformación y Carga.
- Origen: Surgió para automatizar el proceso de mover datos a un almacén de datos, evitando la creación manual de programas repetitivos.
Anécdotas de la Industria
- Desafíos iniciales: IBM era el proveedor dominante y se opuso al concepto de almacenes de datos, creyendo que los datos solo debían usarse para procesamiento de transacciones.
- Reacción de la industria: Inmon enfrentó críticas por sugerir que los datos podían tener otros usos, lo que generó una fuerte reacción en el ámbito académico y empresarial.
Reflexiones Finales
- Motivación: Inmon se siente impulsado a actuar cuando observa problemas fundamentales en el uso de datos.
- Reconocimiento: Destaca la importancia de figuras como Ed Yourdon, quien promovió un enfoque más estructurado en el desarrollo de software.
Conclusiones
La conversación con Bill Inmon proporciona una visión valiosa sobre la evolución de los almacenes de datos y la tecnología ETL, así como la importancia de reconocer a los pioneros en la industria de datos. Su experiencia y anécdotas ofrecen una perspectiva única sobre los desafíos y logros en el campo de la informática.
Tabla Resumen de Conceptos Clave
| Concepto |
Descripción |
| Almacén de Datos |
Repositorio de datos corporativos que permite una visión unificada. |
| ETL |
Proceso de Extracción, Transformación y Carga de datos a un almacén. |
| IBM |
Proveedor dominante que se opuso inicialmente a los almacenes de datos. |
| Ed Yourdon |
Pionero en el desarrollo de software que promovió el diseño estructurado. |
Lista de Temas Abordados
- Introducción a Bill Inmon y su trayectoria.
- Definición y necesidad de los almacenes de datos.
- Proceso y origen de la tecnología ETL.
- Anécdotas sobre la oposición de IBM y la reacción de la industria.
- Reflexiones sobre la motivación y el reconocimiento de pioneros en la industria.
Resumen del Curso sobre Almacenes de Datos
Descripción
En este curso, se exploran los conceptos fundamentales de los almacenes de datos, su evolución y su importancia en el análisis de datos. Se discuten las diferencias entre los sistemas OLTP y OLAP, así como las técnicas de carga y transformación de datos.
Contenido
1. Introducción a los Sistemas OLTP
- Definición: Los sistemas OLTP (Procesamiento de Transacciones en Línea) están diseñados para manejar cargas de trabajo transaccionales.
- Problemas: Ejecutar consultas analíticas directamente en bases de datos OLTP puede ser ineficaz y riesgoso.
2. Concepto de Almacén de Datos
- Definición de Bill Inmon: Un almacén de datos es una recopilación de datos orientada al tema, integrada, no volátil y variable en el tiempo, que apoya la toma de decisiones.
| Característica |
Descripción |
| Orientado a temas |
Organiza datos en torno a temas clave (clientes, productos, ventas, finanzas). |
| Integrado |
Reúne datos de diferentes fuentes con un esquema coherente. |
| No volátil |
Los datos son de solo lectura y no se pueden eliminar ni actualizar. |
| Variable en el tiempo |
Almacena datos actuales e históricos para análisis de tendencias. |
3. Proceso de Carga de Datos
- Canalización ETL: Extracción, Transformación y Carga de datos desde diversas fuentes.
- Etapas:
- Extracción: Mover datos a un área de almacenamiento provisional.
- Transformación: Limpiar y estandarizar datos.
- Carga: Insertar datos transformados en el almacén de datos.
4. Data Marts
- Definición: Subconjuntos del almacén de datos diseñados para satisfacer necesidades específicas de un departamento (ventas, marketing, finanzas).
- Características:
- Esquema más simple o desnormalizado.
- Posibilidad de transformaciones adicionales para mejorar el rendimiento de consultas.
5. Sincronización de Datos
- Proceso CTL: Captura de datos de cambios (CDC) para mantener los datos actualizados en el almacén de datos.
- Beneficios: Minimiza el impacto en el rendimiento de los sistemas de origen.
6. Evolución de los Almacenes de Datos
- De OLTP a OLAP: Los almacenes de datos se convirtieron en el estándar para el procesamiento analítico en línea.
- Sistemas MPP: Permitieron escalar el rendimiento de los almacenes de datos mediante procesamiento masivo en paralelo.
7. Almacenes de Datos en la Nube
- Ejemplos: Amazon Redshift, Google Big Query, Snowflake.
- Ventajas:
- Separación de computación y almacenamiento.
- Escalabilidad y eficiencia en el procesamiento de grandes conjuntos de datos.
- Accesibilidad y rentabilidad para organizaciones más pequeñas.
Conclusión
Los almacenes de datos han evolucionado significativamente desde sus inicios, adaptándose a las necesidades de análisis de datos de las organizaciones modernas. En el próximo curso, se explorarán más a fondo las características de los almacenes de datos en la nube.
Almacenes de Datos en la Nube: Eficiencia y Escalabilidad
Descripción
En este documento se resumen los conceptos clave sobre los almacenes de datos en la nube, su arquitectura, y cómo se diferencian de los almacenes de datos locales tradicionales. Se abordarán temas como el procesamiento paralelo masivo (MPP), la arquitectura de Amazon Redshift, y la importancia de la separación entre almacenamiento y procesamiento.
Contenido
1. Introducción a los Almacenes de Datos en la Nube
Los almacenes de datos en la nube ofrecen una mayor capacidad de procesamiento en comparación con los almacenes de datos locales tradicionales. Esto se traduce en una mejor gestión de la escalabilidad, el rendimiento y los costos.
2. Procesamiento Paralelo Masivo (MPP)
- Definición: MPP permite el uso de múltiples procesadores para procesar grandes volúmenes de datos.
- Ventaja: En lugar de invertir grandes sumas en infraestructura, se pueden activar clústeres de procesamiento bajo demanda.
3. Arquitectura de Amazon Redshift
- Clúster: Conjunto de recursos informáticos compuesto por nodos de procesamiento y un nodo líder.
- Nodos: Cada nodo tiene su propia CPU, memoria y espacio en disco, y se divide en segmentos.
- Proceso de Consulta:
- El nodo líder distribuye los datos entre los segmentos.
- Se forma un plan de ejecución para la consulta.
- Los segmentos procesan en paralelo y envían resultados al nodo líder.
- El nodo líder agrega resultados y los envía a la aplicación cliente.
4. Escalabilidad
- Se pueden activar más nodos o actualizar a nodos con mayor capacidad según la carga de trabajo.
- Los almacenes de datos en la nube permiten gestionar petabytes de datos en una sola consulta.
5. ELT (Extracción, Carga y Transformación)
- Proceso: Los datos se cargan sin procesar en un área de almacenamiento provisional y se transforman dentro del almacén de datos.
- Beneficio: Acelera la ingesta de datos y permite un acceso más rápido a las partes interesadas.
6. Almacenamiento en Columnas
- Ventaja: Mejora el rendimiento de las consultas analíticas a gran escala.
- Compresión de Datos: Facilita un almacenamiento más eficiente.
7. Separación de Almacenamiento y Procesamiento
- Los datos se almacenan en almacenamiento de objetos, permitiendo una escalabilidad casi ilimitada.
- Esta separación optimiza tanto el costo como el rendimiento.
8. Datos No Estructurados
- Los almacenes de datos en la nube pueden manejar datos no estructurados (texto, imágenes, audio, video).
- Se requiere una arquitectura de almacenamiento de lago de datos para estos casos de uso.
Conclusión
Los almacenes de datos en la nube combinan atributos de los almacenes de datos tradicionales con la alta potencia de procesamiento del MPP, almacenamiento en columnas y separación de computación y almacenamiento. Esto los hace altamente eficientes para cargas de trabajo analíticas de gran volumen.
Próxima Lección
En la siguiente lección, se explorará el paradigma de los lagos de datos y su importancia en el manejo de datos no estructurados.
Resumen sobre Lagunas de Datos
Descripción
En este documento se presenta un resumen sobre el concepto de lagos de datos, su evolución desde la primera generación (Data Lake 1.0), sus ventajas y desventajas, así como su relevancia en el contexto actual de la gestión de datos en empresas de comercio electrónico.
Introducción
Los lagos de datos surgieron como una solución para almacenar grandes volúmenes de datos estructurados y no estructurados sin la necesidad de un esquema fijo. Este enfoque permite a las organizaciones manejar datos de diversas fuentes, como bases de datos de pedidos, registros de clientes y reseñas, de manera más flexible.
Características de los Lagunas de Datos
| Característica |
Descripción |
| Esquema flexible |
No requiere un esquema fijo; el esquema se determina al leer los datos. |
| Almacenamiento escalable |
Utiliza tecnologías como HDFS y almacenamiento en la nube (ej. Amazon S3). |
| Procesamiento variado |
Permite el uso de múltiples tecnologías (MapReduce, Spark, Hive, etc.). |
| Acceso a grandes volúmenes |
Capacidad para almacenar datos de cualquier tamaño y tipo. |
Desafíos de Data Lake 1.0
A pesar de sus ventajas, Data Lake 1.0 presentaba varias deficiencias:
- Intercambio de datos: Se convertía en un lugar donde las organizaciones volcaban datos sin una adecuada gestión.
- Dificultad en la búsqueda: Sin herramientas de catalogación, los usuarios tenían problemas para encontrar y entender los datos.
- Incertidumbre en la calidad: No había garantías sobre la integridad o calidad de los datos almacenados.
- Limitaciones en la manipulación: Las operaciones DML eran complicadas, dificultando el cumplimiento de normativas como el RGPD.
- Optimización deficiente: Los datos no estaban optimizados para consultas, lo que complicaba operaciones comunes como uniones.
Casos de Éxito
A pesar de las deficiencias, empresas como Netflix y Meta (Facebook) encontraron valor en los lagos de datos, desarrollando prácticas exitosas y herramientas personalizadas para el procesamiento de datos.
Conclusión
La evolución de los lagos de datos ha llevado a la aparición de nuevas herramientas y prácticas que mejoran la organización y consulta de datos. En el futuro, se espera que las características de los lagos de datos de próxima generación aborden las deficiencias de Data Lake 1.0 y ofrezcan soluciones más efectivas para la gestión de datos en las organizaciones.
Próximos Pasos
Se invita a los lectores a explorar el siguiente video para conocer más sobre las características de los lagos de datos de próxima generación.
Resumen sobre la Gestión de Datos en Lagos de Datos
Descripción
Este documento resume las estrategias y enfoques para mejorar la gestión y recuperación de datos en lagos de datos, abordando conceptos como zonas de datos, particiones y catálogos de datos. Se discuten las deficiencias del modelo original de lago de datos y se presentan soluciones para optimizar el almacenamiento y la consulta de grandes volúmenes de datos.
Zonas de Datos
Los lagos de datos pueden organizarse en diferentes zonas, cada una con un nivel de procesamiento distinto. Aunque no hay reglas estrictas sobre el número o nombre de estas zonas, un diseño común incluye tres zonas:
| Zona |
Descripción |
| Zona de Aterrizaje |
Almacena datos sin procesar provenientes de sistemas de origen. |
| Zona Limpiada |
Contiene datos que han sido transformados, limpiados y validados, listos para un uso más amplio. |
| Zona Curada |
Almacena datos enriquecidos que cumplen con los estándares organizacionales y están listos para consumo. |
Formatos de Almacenamiento
Los datos en las zonas limpiadas y seleccionadas suelen almacenarse en formatos de archivo abiertos como:
- Parquet
- Avro
- ORC
Estos formatos permiten un acceso eficiente y son compatibles con diversos motores de análisis y sistemas de aprendizaje automático.
Particiones de Datos
Para mejorar el rendimiento de las consultas, se recomienda particionar los datos en las zonas limpiadas. La partición consiste en dividir un conjunto de datos en partes más pequeñas basadas en criterios como:
- Hora
- Fecha
- Ubicación
Esto permite que el motor de consultas escanee solo las particiones relevantes, mejorando así la velocidad de las consultas.
Catálogo de Datos
Un catálogo de datos es una colección de metadatos que facilita la búsqueda y gestión de datos. Incluye información como:
- Propietario de los datos
- Fuente de datos
- Información de partición
- Definiciones empresariales de columnas
El catálogo también mantiene un esquema de los conjuntos de datos y sus cambios a lo largo del tiempo, proporcionando una comprensión común de la estructura y significado de los datos en la organización.
Desafíos y Soluciones
A pesar de los esfuerzos por organizar los lagos de datos, las organizaciones a menudo necesitan múltiples sistemas de almacenamiento para satisfacer sus necesidades. Esto incluye:
- Almacenamiento de bajo costo en lagos de datos para grandes volúmenes de datos.
- Rendimiento superior en almacenes de datos para análisis.
Proceso ETL
El proceso de extracción, transformación y carga (ETL) puede ser costoso y propenso a errores, lo que afecta la calidad y coherencia de los datos. Para abordar estos desafíos, se ha desarrollado una nueva arquitectura llamada Data Lake House, que combina las ventajas de un almacén de datos y un lago de datos en una única arquitectura.
Conclusión
Con las estrategias de gestión de datos adecuadas, como la organización en zonas, el uso de particiones y la implementación de catálogos de datos, es posible optimizar el almacenamiento y la recuperación de grandes volúmenes de datos en lagos de datos. En el próximo laboratorio, se aprenderá a particionar datos y crear un catálogo de datos para mejorar la recuperación de datos en un lago de datos.
Laboratorio de Procesamiento de Datos en Amazon S3
Descripción
En este laboratorio, se trabajará con un lago de datos utilizando Amazon S3 como almacenamiento principal. Se procesarán archivos JSON que contienen reseñas y metadatos de productos de Amazon, transformándolos en archivos Parquet y almacenándolos en el mismo bucket de S3. Se utilizarán herramientas como AWS Glue y Terraform para definir trabajos de ETL y un rastreador de Glue para llenar el catálogo de datos, permitiendo consultas mediante Amazon Athena.
Contenido del Laboratorio
Objetivos
- Procesar archivos JSON de reseñas y metadatos de productos.
- Transformar los datos a formato Parquet.
- Almacenar los datos procesados en S3.
- Consultar los datos utilizando Amazon Athena.
Estructura de los Datos
Los archivos JSON contienen la siguiente información:
Reseñas de Productos
Cada reseña incluye:
- Identificador del revisor
- Nombre del revisor
- Identificador del producto
- Texto de la reseña
- Resumen de la reseña
- Valoración del producto
- Fecha de la reseña
- Campo útil (número de usuarios que encontraron útil la reseña y total de usuarios que calificaron la utilidad)
Metadatos de Productos
Cada artículo contiene:
- Identificador del producto
- Información del producto
- Lista de productos relacionados
- Categoría de ventas
- Rango de ventas
Proceso de Transformación
- Importación de Datos: Los datos de reseñas y metadatos se importarán a un marco de datos tabular.
- Procesamiento de Reseñas:
- Extraer año y mes de la fecha.
- Dividir el campo útil en dos columnas.
- Particionar los datos en S3 utilizando año y mes.
- Procesamiento de Metadatos:
- Desagrupar la columna de clasificación de ventas en dos columnas: categoría de ventas y clasificación de ventas.
- Eliminar registros con entradas nulas en columnas numéricas.
- Sustituir valores nulos en otras columnas por cadenas vacías.
Definición de Trabajos de ETL
- Se utilizará Terraform para definir los trabajos de Glue.
- Los archivos de Terraform incluirán:
- Recursos de Glue
- Funciones y políticas de IAM para permitir el acceso al bucket de S3.
Políticas de IAM
- Se creará un rol de IAM que permita a Glue acceder al lago de datos en S3.
- Se definirán políticas de permisos que especifiquen las acciones permitidas en el bucket de S3.
Ejemplo de Configuración de Terraform
resource "aws_iam_role" "glue_role" {
name = "glue_role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Action = "sts:AssumeRole"
Principal = {
Service = "glue.amazonaws.com"
}
Effect = "Allow"
Sid = ""
}]
})
}
resource "aws_glue_job" "review_processing" {
name = "review_processing"
role_arn = aws_iam_role.glue_role.arn
command {
name = "glueetl"
script_location = "s3://your-script-bucket/path/to/script.py"
}
default_arguments = {
"--TempDir" = "s3://your-temp-bucket/temp/"
"--job-bookmark-option" = "job-bookmark-enable"
}
}
Consideraciones Finales
- Se explorarán técnicas de compresión y partición al almacenar datos en S3.
- Se analizará cómo estas técnicas afectan la capacidad de almacenamiento y el rendimiento de recuperación de datos.
Conclusión
Este laboratorio proporciona una comprensión práctica de cómo procesar y transformar datos utilizando Amazon S3, Glue y Terraform, permitiendo a los participantes realizar consultas efectivas con Amazon Athena.
Resumen del Curso sobre Transformaciones de Archivos JSON con AWS Glue
Descripción
En este curso, se revisan los scripts de transformación de datos utilizando AWS Glue y Spark. Se explican los pasos necesarios para extraer, transformar y cargar datos desde un bucket de S3, así como la creación de metadatos en el catálogo de datos de AWS Glue.
Contenido
1. Introducción a AWS Glue y Spark
- AWS Glue ETL utiliza Spark para procesar datos.
- Se revisan dos scripts de transformación:
ReviewTransform y MetadataTransformation.
2. Creación del GlueContext
- Se debe crear un objeto
GlueContext para inicializar un trabajo de Glue.
- Permite conectarse a un bucket de S3, extraer datos y almacenar datos procesados.
3. Proceso de Transformación
- El script espera un DataFrame de Pandas y devuelve otro DataFrame de Pandas con los datos procesados.
- Se utiliza el método
CreateDynamicFrame para extraer datos sin procesar desde un archivo CSV en S3.
4. Almacenamiento de Datos Procesados
- Los datos procesados se almacenan en S3 utilizando el método
writeDynamicFrame.
- Se especifica el formato de almacenamiento (Parquet) y el algoritmo de compresión.
Ejemplo de ruta de almacenamiento:
ProcessData/Snappy/partición
5. Creación de Metadatos en AWS Glue Data Catalog
- Se debe crear una tabla en el catálogo de datos para almacenar metadatos.
- El catálogo permite a los usuarios finales consultar datos mediante Amazon Athena.
6. Uso de AWS Wrangler
- AWS Wrangler es un SDK que amplía las capacidades de Pandas a AWS.
- Se utiliza para crear bases de datos y rastreadores en el catálogo de Glue.
7. Pasos para Crear un Rastreadores
- Crear una base de datos en el catálogo de Glue.
- Crear un cliente de Glue usando Boto3.
- Llamar al método
CreateCrawler para crear el rastreador.
- Iniciar el rastreador con
StartCrawler.
8. Consultas con Amazon Athena
- Utilizar el método
ReadSqlQuery de AWS Wrangler para ejecutar consultas SQL y obtener resultados como un DataFrame de Pandas.
Tabla de Métodos Clave
| Método |
Descripción |
CreateDynamicFrame |
Extrae datos sin procesar desde S3. |
writeDynamicFrame |
Almacena datos procesados en S3. |
CreateCrawler |
Crea un rastreador para descubrir metadatos. |
StartCrawler |
Inicia el rastreador para crear tablas en el catálogo. |
ReadSqlQuery |
Ejecuta consultas SQL en Athena y devuelve un DataFrame. |
Conclusión
Al finalizar el curso, los participantes estarán listos para implementar transformaciones de datos utilizando AWS Glue y Spark, así como para crear y consultar metadatos en el catálogo de datos de AWS Glue. Se sugiere explorar la parte opcional del laboratorio sobre compresión y partición de datos.
¡Listo para probar el laboratorio!
Resumen del Laboratorio de Glue Jobs
Descripción
En este laboratorio, se han creado dos Glue Jobs para procesar conjuntos de datos de revisiones y metadatos. Se ha utilizado el algoritmo de compresión Snappy y se han especificado columnas de partición para cada conjunto de datos. Además, se han realizado experimentos para explorar diferentes configuraciones de los Glue Jobs y comprender los efectos de la compresión y la partición en el almacenamiento.
Experimentos Realizados
Experimento 1: Efectos de la Compresión
- Objetivo: Comparar el almacenamiento con y sin compresión.
- Procedimiento:
- Procesar los metadatos sin compresión.
- Procesar los datos nuevamente utilizando Snappy como algoritmo de compresión.
- Resultados:
- Con compresión, se ocupa menos espacio de almacenamiento.
- Se generaron varios archivos Parquet a pesar de no especificar una clave de partición.
Experimento 2: Comparación de Algoritmos de Compresión
- Objetivo: Comparar Snappy y Gzip.
- Resultados:
- Gzip produce un tamaño total menor que Snappy.
- Gzip ofrece mejores ratios de compresión, pero Snappy es más rápido.
Experimento 3: Efectos de la Partición
- Objetivo: Comparar datos procesados sin partición y con partición por año y mes.
- Resultados:
- Con partición, se generaron 556 archivos Parquet, cada uno correspondiente a un año y mes específicos.
- Sin partición, se generaron cuatro archivos Parquet automáticamente.
- La elección de una clave de partición adecuada es crucial para optimizar el rendimiento y reducir costos.
Experimento 4: Partición con Clave Asin
- Objetivo: Utilizar la columna
asin como clave de partición.
- Resultados:
- El proceso de partición tardó más de 15 minutos, resultando en un estado de tiempo de espera.
Consideraciones sobre la Partición
- Elegir una clave de partición adecuada organiza los datos en archivos significativos alineados con los patrones de consulta.
- Una mala clave de partición puede resultar en demasiados archivos pequeños, aumentando costos de almacenamiento y ralentizando el procesamiento.
Conclusión
Este laboratorio proporciona una comprensión práctica de cómo la compresión y la partición afectan el almacenamiento y el rendimiento en AWS Glue. Se anima a los participantes a experimentar con las configuraciones y aplicar lo aprendido en futuros proyectos.
Tabla Resumen de Resultados
| Experimento |
Algoritmo de Compresión |
Archivos Generados |
Tamaño Total |
| 1 |
Sin compresión |
Varios |
Mayor |
| 1 |
Snappy |
Varios |
Menor |
| 2 |
Snappy |
- |
- |
| 2 |
Gzip |
- |
Menor |
| 3 |
Snappy (con partición) |
556 |
- |
| 3 |
Sin partición |
4 |
- |
| 4 |
Asin (partición) |
- |
- |
¡Gracias por seguir el laboratorio! Ahora es tu turno de probarlo. Nos vemos en la próxima lección para repasar la arquitectura de la casa del Lago de datos.
Arquitectura de Almacenamiento de Datos: Lakehouses
Descripción
La arquitectura de almacenamiento de datos, conocida como Lakehouse, combina las ventajas de un lago de datos y un almacén de datos. Su objetivo es ofrecer almacenamiento flexible y de bajo costo, junto con un rendimiento superior en consultas y una sólida administración de datos. Esto permite aplicaciones de análisis, informes, procesamiento de big data y aprendizaje automático.
Componentes Clave de un Lakehouse
1. Estructura de Almacenamiento
- Capa de Almacenamiento: Utiliza almacenamiento de objetos para manejar grandes volúmenes de datos de diversos tipos.
- Zonas de Datos: Organiza los datos en diferentes zonas para facilitar la gobernanza y mejorar la calidad de los datos.
- Bronce: Zona de datos sin procesar.
- Plata: Zona de datos limpios.
- Oro: Zona de datos modelados y enriquecidos.
2. Funciones de Administración de Datos
- Aplicación de esquemas a nivel de almacenamiento para asegurar que los datos cumplan con los formatos y estándares de calidad.
- Soporte para la evolución de esquemas.
3. Principios ACID
Los lagos de datos suelen cumplir con los principios de ACID:
- Atómico: Las transacciones son indivisibles.
- Consistente: Los datos permanecen en un estado válido.
- Aislado: Las transacciones no interfieren entre sí.
- Duradero: Los cambios son permanentes.
4. Gobernanza y Seguridad de Datos
- Controles de acceso robustos.
- Capacidades de auditoría de datos.
- Seguimiento del linaje de datos.
5. Conectividad y Cumplimiento Normativo
- Conexión a almacenes de datos mediante API de conectores.
- Uso de SQL para actualizaciones y eliminaciones incrementales.
- Conservación de versiones antiguas de archivos y metadatos.
Beneficios de los Lakehouses
- Proporcionan una arquitectura unificada que soporta aplicaciones SQL, informes empresariales y aprendizaje automático.
- Permiten a las organizaciones avanzar hacia una arquitectura de almacenamiento de datos más eficiente y efectiva.
Conclusión
Los Lakehouses integran las mejores capacidades de los almacenes de datos y lagos de datos, ofreciendo una solución robusta para el almacenamiento y análisis de datos. En el próximo video, se explorarán más detalles sobre la implementación de Data Lakehouse.
Resumen sobre Data Lakehouse
Descripción
El concepto de Data Lakehouse ha surgido como una fusión entre los almacenes de datos en la nube y los lagos de datos. Esta tendencia ha llevado a los proveedores de almacenamiento a integrar características de ambos sistemas, permitiendo una gestión más eficiente de los datos.
Características del Data Lakehouse
- Integración de Funciones: Los almacenes de datos en la nube han comenzado a adoptar funciones típicas de los lagos de datos, como la gestión de esquemas y la funcionalidad SQL.
- Formatos de Tablas Abiertas: Se han desarrollado varios formatos de tablas abiertas para respaldar la idea de un lago de datos más transaccional. Algunos de estos formatos incluyen:
- Databricks Delta Lake
- Apache Iceberg
- Apache Hudi (Hadoop Update, Delete, Incremental)
Ventajas de los Formatos de Tablas Abiertas
- Funciones Transaccionales: Permiten actualizar y eliminar registros individuales, cumpliendo con los principios ACID.
- Viaje en el Tiempo: Posibilidad de acceder a versiones anteriores de una tabla mediante marcas de tiempo.
- Evolución de Esquemas: Permiten realizar cambios en el esquema sin interrumpir las consultas de datos.
Funcionamiento de los Formatos de Tablas Abiertas
Los formatos de tablas abiertas proporcionan una abstracción lógica que permite rastrear cambios en los datos. Al realizar operaciones como insertar, actualizar o eliminar registros, se generan instantáneas que reflejan el estado de los datos en un momento determinado.
Ejemplo: Apache Iceberg
- Catálogo de Datos: Contiene una capa de almacenamiento de datos con archivos en formato Parquet.
- Capa de Metadatos: Se encuentra entre el catálogo y la capa de almacenamiento, creando archivos de manifiesto para rastrear cambios.
- Consulta Eficiente: Al ejecutar una consulta, el motor de consultas utiliza la capa de metadatos para determinar qué archivos de datos leer, mejorando el rendimiento.
Elección entre Almacén de Datos y Lago de Datos
La elección entre un almacén de datos, un lago de datos o un Data Lakehouse depende de las necesidades específicas de la organización:
| Escenario |
Recomendación |
| Pequeñas cantidades de datos estructurados |
Conectar herramientas de BI a una réplica de lectura de la base de datos de producción. |
| Aumento de volumen y fuentes de datos |
Usar un almacén de datos en la nube para integrar datos estructurados y semiestructurados. |
| Grandes volúmenes de datos no estructurados |
Implementar una arquitectura de lago de datos para optimizar costos de almacenamiento. |
Conclusión
La convergencia entre las arquitecturas de almacenes de datos y lagos de datos en la nube es una tendencia creciente. En el futuro, las organizaciones podrán elegir plataformas de datos convergentes que se adapten a sus necesidades específicas.
Próximos Pasos
En el siguiente video, se explicará cómo implementar un Data Lakehouse en AWS utilizando AWS Lake Formation, seguido de un laboratorio donde se podrá crear una arquitectura de almacenamiento de lagos de datos.
Diseño de una Casa de Lagos de Datos con AWS
Descripción
En este documento se resumen los conceptos y procesos relacionados con la creación y gestión de una casa de lagos de datos utilizando los servicios de AWS, como AWS Lake Formation y Amazon Redshift Spectrum. Se abordarán las diferencias entre lagos de datos, almacenes de datos y la evolución hacia soluciones más complejas.
Contenido
Diferencias entre Lagos de Datos y Almacenes de Datos
- Lagos de Datos: Almacenan datos en su forma original, permitiendo un análisis flexible.
- Almacenes de Datos: Estructuran y optimizan los datos para consultas rápidas y análisis.
Evolución de un Lago de Datos
Las organizaciones suelen comenzar con un lago de datos simple y evolucionan hacia soluciones más complejas, como un lago de datos interno.
AWS Lake Formation
AWS Lake Formation simplifica la creación y gestión de lagos de datos al automatizar tareas que tradicionalmente son manuales, como:
- Definición del almacenamiento
- Configuración de controles de acceso
- Catalogación de datos
- Administración de permisos
Proceso de Creación de un Lago de Datos
- Identificación de Fuentes de Datos: Ejemplos incluyen Amazon S3 y bases de datos relacionales/NoSQL.
- Ingesta de Datos: Utilizar AWS Lake Formation para mover datos al lago de datos.
- Catalogación y Preparación: Rastrear y catalogar datos para su análisis.
- Acceso de Autoservicio: Proporcionar acceso seguro a los usuarios para que utilicen herramientas de análisis.
Servicios de Ingesta de Datos
- Amazon Kinesis Data Streams
- Amazon Data Firehose
- AWS Data Sync
- Servicio de migración de bases de datos de AWS
- Amazon AppFlow
- AWS Glue (para tareas de ingesta)
Arquitectura de una Casa de Lagos de Datos
A continuación se presenta un diagrama simplificado de la arquitectura de una casa de lagos de datos:
| Capa |
Descripción |
| Capa de Ingesta |
Incorporación de datos desde diversas fuentes. |
| Capa de Almacenamiento |
Almacenamiento de datos en Amazon S3 y Amazon Redshift. |
| Capa de Procesamiento |
Transformación de datos utilizando Amazon EMR, AWS Glue, etc. |
| Capa de Catálogo |
Gestión de metadatos y permisos utilizando AWS Lake Formation. |
| Capa de Consumo |
Servicios para consumir datos: Amazon SageMaker, Amazon QuickSight, etc. |
Control de Acceso y Permisos
AWS Lake Formation permite gestionar permisos de forma centralizada, facilitando el uso compartido de datos tanto internos como externos para aplicaciones de análisis y aprendizaje automático.
Conclusión
La formación de lagos de AWS proporciona una forma simplificada de gestionar y acceder a los datos, permitiendo a las organizaciones optimizar su uso de datos para análisis y toma de decisiones. En el siguiente video, se explorarán más a fondo las capas de almacenamiento, procesamiento, catálogo y consumo de esta arquitectura de almacenamiento de lagos de datos.
Resumen del Curso sobre Arquitectura de Almacenamiento de Datos en AWS
Descripción
Este documento resume los conceptos clave sobre la arquitectura de almacenamiento de datos en AWS, centrándose en las capas de almacenamiento, catálogo y consumo. Se exploran servicios como Amazon S3, Amazon Redshift, Redshift Spectrum, AWS Glue, Lake Formation y Amazon Athena.
Estructura de la Arquitectura de Almacenamiento de Datos
La arquitectura de almacenamiento de datos en AWS se compone de varias capas:
| Capa |
Descripción |
| Origen e Ingesta |
Datos que se recogen y se preparan para su almacenamiento. |
| Almacenamiento |
Uso de S3 y Redshift para almacenar datos estructurados y no estructurados. |
| Procesamiento |
Análisis y transformación de datos. |
| Catálogo |
Gestión de metadatos para facilitar la búsqueda y el descubrimiento de datos. |
| Consumo |
Acceso y consulta de datos por parte de los usuarios. |
Capas de Almacenamiento y Catálogo
Almacenamiento
- Amazon S3: Almacena datos estructurados, semiestructurados y no estructurados.
- Amazon Redshift: Almacena datos estructurados y semiestructurados que se ajustan a esquemas predefinidos.
Ventajas del Enfoque Dual
- Rentabilidad y Escalabilidad: S3 es rentable para grandes volúmenes de datos.
- Análisis de Alto Rendimiento: Redshift permite realizar análisis en conjuntos de datos estructurados.
Integración con Redshift Spectrum
- Redshift Spectrum: Permite consultar datos en S3 sin necesidad de moverlos a Redshift, eliminando la necesidad de complejas canalizaciones ETL.
- Beneficios:
- Reducción de la latencia de los datos.
- Ejecución de consultas en grandes conjuntos de datos utilizando paralelismo masivo.
Catálogo de Datos
- Lake Formation: Utiliza AWS Glue para crear un catálogo de datos que almacena metadatos de conjuntos de datos.
- Mantenimiento del Catálogo: AWS Glue puede rastrear periódicamente la capa de almacenamiento para actualizar metadatos.
Tablas de Apache Iceberg
- Facilitan la evolución de esquemas de datos sin interrumpir procesos existentes.
- Permiten el control de versiones de datos, lo que facilita el acceso a versiones históricas.
Capa de Consumo
Amazon Redshift Spectrum
- Proporciona una interfaz SQL unificada para consultar datos en S3 y Redshift.
- Permite a múltiples clústeres de Redshift consultar el mismo conjunto de datos en S3 simultáneamente.
Amazon Athena
- Permite consultar datos en S3 directamente mediante SQL estándar.
- No requiere infraestructura adicional y se paga solo por los datos escaneados.
- Soporta consultas federadas, permitiendo acceder a datos en Redshift.
Conclusión
La arquitectura de almacenamiento de datos en AWS, utilizando servicios como S3, Redshift, Redshift Spectrum, Lake Formation y Athena, permite una gestión eficiente y flexible de los datos. En el próximo laboratorio, se explorarán estos servicios en detalle.
Próximos Pasos
- Participar en el laboratorio para aplicar los conceptos aprendidos.
- Experimentar con consultas en Amazon Athena y Redshift Spectrum.
¡Diviértete y nos vemos pronto!
Implementación de un Almacén de Datos en un Data Lakehouse
Descripción
En este laboratorio, se implementará un almacén de datos utilizando una arquitectura tipo medallón con Amazon S3, Apache Iceberg y AWS Lake Formation. Se explorarán las diferentes zonas de un Data Lakehouse y se realizarán transformaciones de datos desde fuentes diversas.
Estructura del Almacén de Datos
Zonas del Data Lakehouse
El Data Lakehouse se compone de las siguientes zonas:
| Zona |
Descripción |
| Zona de Aterrizaje |
Almacenamiento de datos sin procesar provenientes de las fuentes. |
| Zona Seleccionada |
Almacenamiento de datos procesados y transformados. |
| Zona de Presentación |
Almacenamiento de tablas finales para análisis y aprendizaje automático. |
Fuentes de Datos
Se utilizarán las siguientes fuentes de datos:
- Base de datos MySQL en RDS: Contiene datos de modelos clásicos.
- Bucket de S3: Contiene un archivo JSON con valoraciones de productos.
Proceso de Implementación
1. Ingesta de Datos
- Desde MySQL: Extraer tablas y guardar como archivos CSV en la zona de aterrizaje.
- Desde S3: Extraer valoraciones en formato JSON y almacenar en la zona de aterrizaje.
2. Transformaciones de Datos
Se realizarán tres transformaciones en los datos:
Transformación 1: Procesamiento de Archivos CSV
- Extraer tablas de la zona de aterrizaje y convertir a DataFrame.
- Agregar columnas de metadatos:
ingest_TS y source.
- Aplicar esquema y almacenar como archivos Parquet en la zona seleccionada.
Transformación 2: Preparación para Aprendizaje Automático
- Combinar datos de valoraciones con información de clientes y productos.
- Almacenar el nuevo DataFrame en formato Iceberg en la zona seleccionada.
Transformación 3: Actualización de Valoraciones
- Extraer las valoraciones más recientes y almacenarlas en formato Iceberg.
- Actualizar las valoraciones existentes si el par cliente-producto ya existe.
3. Creación de Tablas en la Zona de Presentación
Se crearán tablas para los usuarios finales:
| Tabla |
Descripción |
| Ventas Medias |
Agrupadas por año y mes. |
| Valoraciones Medias |
Agrupadas por producto. |
| Tabla de Calificaciones |
Representa la tabla de calificaciones en la zona seleccionada. |
| Tabla Ratings4ml |
Para usuarios de aprendizaje automático. |
Herramientas Utilizadas
- AWS Glue: Para la ejecución de trabajos ETL.
- Amazon Athena: Para la creación de tablas en la zona de presentación.
Ejemplo de Consulta SQL en Athena
CREATE TABLE valoraciones
WITH (
format = 'iceberg',
external_location = 's3://ruta/a/zona/presentacion/'
) AS
SELECT * FROM zona_seleccionada.valoraciones;
Conclusión
Este laboratorio proporciona una visión general de cómo implementar un almacén de datos en un Data Lakehouse utilizando tecnologías de AWS. En el siguiente video, se explorará el formato Iceberg y las funciones de gobernanza de Lake Formation.
Resumen del Curso sobre el Formato Iceberg y Lake Formation
Descripción
En este curso, se explora el formato Iceberg para el almacenamiento de datos en Amazon S3, así como la gestión de permisos mediante Lake Formation. Se abordan conceptos clave como la organización de los datos, la evolución del esquema y la administración de permisos en un lago de datos.
Contenido
1. Organización de Datos en Iceberg
Los datos en formato Iceberg se organizan en un bucket de S3 con la siguiente estructura:
- Prefijo Iceberg
- Metadatos
- Contiene:
- Archivo JSON: Información sobre el esquema de la tabla, ubicación en S3, fecha de última actualización y UUID de la instantánea.
- Archivo Avro (STAP): Representa la lista de manifiestos de una instantánea.
- Datos
- Contiene archivos de datos en formato Parquet.
Tabla de Estructura de Datos
| Prefijo |
Contenido |
| Metadatos |
Archivo JSON, Archivo Avro (STAP) |
| Datos |
Archivos de datos en formato Parquet |
2. Capa de Catálogo
- La capa de catálogo se implementa mediante Glue Data Catalog.
- Contiene una tabla de catálogo para cada archivo Iceberg creado.
- Las tablas están organizadas en bases de datos de zonas seleccionadas y zonas de presentación.
3. Evolución del Esquema
- Se puede añadir una nueva columna a la tabla de calificaciones sin necesidad de reescribir los archivos de datos.
- Solo se modifica el archivo de metadatos.
4. Viaje en el Tiempo
- Permite consultar versiones antiguas y nuevas de la tabla de calificaciones.
5. Administración de Permisos con Lake Formation
- Lake Formation permite aplicar permisos detallados a los recursos del catálogo de datos y a los datos subyacentes.
- Los permisos se pueden aplicar a nivel de:
- Bases de datos
- Tablas
- Columnas
- Filas
- Celdas
Tabla de Niveles de Permisos
| Nivel de Permiso |
Descripción |
| Metadatos |
Permisos sobre recursos del catálogo de datos. |
| Acceso al Almacenamiento |
Permisos sobre los datos subyacentes almacenados en S3. |
6. Implementación en el Laboratorio
- Se proporcionan funciones y recursos de Glue.
- Se otorgan permisos detallados a los usuarios para acceder a las tablas del lago de datos.
- Ejemplo: Permisos para la función del entorno de laboratorio y acceso limitado para el usuario de aprendizaje automático.
Conclusión
Este curso proporciona una comprensión integral del formato Iceberg y la gestión de permisos en un entorno de lago de datos utilizando Lake Formation. Se recomienda realizar el laboratorio para aplicar los conceptos aprendidos.
Evolución de las Abstracciones de Almacenamiento
Descripción
En esta semana, se analizó la evolución de las abstracciones de almacenamiento, desde los almacenes de datos tradicionales hasta los modernos almacenes de datos en la nube, pasando por los lagos de datos y, finalmente, los data lakehouses. Se discutieron las características y ventajas de cada arquitectura, así como su aplicabilidad en función de las necesidades de las organizaciones.
Contenido
1. Almacenes de Datos Tradicionales
- Características:
- Estructurados y optimizados para consultas.
- Costos de almacenamiento más altos.
- Rendimiento de consultas de baja latencia.
2. Almacenes de Datos en la Nube
- Ventajas:
- Almacenamiento para cargas de trabajo analíticas y casos de uso de informes.
- Aprovechan la potencia de procesamiento paralelo de la computación en la nube.
- Desventajas:
- Costos de almacenamiento más altos en comparación con otras soluciones.
3. Lagos de Datos
- Características:
- Almacenamiento de objetos de bajo costo.
- Capacidad para manejar grandes volúmenes de datos estructurados y no estructurados.
- Soporte para aplicaciones de aprendizaje automático y procesamiento de big data.
- Desafíos:
- Sin herramientas adecuadas, pueden convertirse en "pantanos de datos" inutilizables.
4. Data Lakehouses
- Definición:
- Combinan las capacidades de almacenamiento escalables y de bajo costo de un lago de datos con las funciones estructuradas de un almacén de datos.
- Beneficios:
- Proporcionan una plataforma unificada que admite tanto cargas de trabajo analíticas de baja latencia como aprendizaje automático.
5. Laboratorio Práctico
- Actividades Realizadas:
- Creación de un catálogo de datos para conjuntos de datos en un lago de datos.
- División de datos para mejorar la recuperación.
- Creación de un almacén de datos utilizando tablas de LakeFormation e Iceberg.
6. Tendencias Futuras
- La distinción entre lagos de datos y almacenes de datos está comenzando a desaparecer.
- Se espera un conjunto de herramientas que ofrezca flexibilidad para optimizar soluciones de almacenamiento según las necesidades organizacionales.
Próximos Pasos
La próxima semana se profundizará en el tema de las consultas, explorando su funcionamiento interno y estrategias para mejorar su rendimiento.
Conclusión
Comprender las diferentes arquitecturas de almacenamiento es crucial para elegir la solución más adecuada para las necesidades de datos de una organización. La evolución hacia data lakehouses representa una tendencia significativa en la integración de capacidades de almacenamiento y consulta.