Lagos de datos modernos - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Lagos de datos modernos

Casos de uso avanzados en lagos de datos modernos

Los lagos de datos ofrecen una de las mejores opciones para almacenar datos en términos de costo, escalabilidad y flexibilidad. Puede utilizar un lago de datos para conservar grandes volúmenes de datos estructurados y no estructurados a un bajo coste y utilizar estos datos para distintos tipos de cargas de trabajo analíticas, desde la elaboración de informes de inteligencia empresarial hasta el procesamiento de macrodatos, la analítica en tiempo real, el aprendizaje automático y la inteligencia artificial generativa (IA), para ayudar a tomar mejores decisiones.

A pesar de estas ventajas, los lagos de datos no se diseñaron inicialmente con capacidades similares a las de las bases de datos. Un lago de datos no admite la semántica de procesamiento de la atomicidad, la coherencia, el aislamiento y la durabilidad (ACID), que podría necesitar para optimizar y administrar sus datos de manera eficaz y a gran escala para cientos o miles de usuarios mediante el uso de una multitud de tecnologías diferentes. Los lagos de datos no ofrecen soporte nativo para las siguientes funciones:

  • Realizar actualizaciones y eliminaciones eficientes a nivel de registros a medida que los datos cambian en su empresa

  • Gestione el rendimiento de las consultas a medida que las tablas crecen hasta convertirse en millones de archivos y cientos de miles de particiones

  • Garantizar la coherencia de los datos entre varios escritores y lectores simultáneos

  • Prevenir la corrupción de los datos cuando las operaciones de escritura fallan a mitad de la operación

  • Los esquemas de tablas evolucionan a lo largo del tiempo sin reescribir (parcialmente) los conjuntos de datos

Estos desafíos se han vuelto particularmente frecuentes en casos de uso, como la gestión de la captura de datos modificados (CDC) o los casos de uso relacionados con la privacidad, la eliminación de datos y la ingesta de datos en streaming, lo que puede dar lugar a que las tablas no sean óptimas.

Los lagos de datos que utilizan las tablas tradicionales con formato HIVE solo admiten operaciones de escritura para archivos completos. Esto hace que las actualizaciones y eliminaciones sean difíciles de implementar, además de llevar mucho tiempo y ser costosas. Además, los controles y garantías de simultaneidad que ofrecen los sistemas compatibles con ACID son necesarios para garantizar la integridad y la coherencia de los datos.

Para ayudar a superar estos desafíos, Apache Iceberg proporciona una funcionalidad adicional similar a la de una base de datos que simplifica la sobrecarga de optimización y administración de los lagos de datos y, al mismo tiempo, permite almacenar en sistemas rentables como Amazon Simple Storage Service (Amazon S3).

Introducción a Apache Iceberg

Apache Iceberg es un formato de tabla de código abierto que proporciona funciones en las tablas de lagos de datos que anteriormente solo estaban disponibles en bases de datos o almacenes de datos. Está diseñado para ofrecer escalabilidad y rendimiento, y es ideal para administrar tablas de más de cientos de gigabytes. Algunas de las principales características de las mesas Iceberg son:

  • Eliminar, actualizar y combinar.Iceberg admite comandos SQL estándar para el almacenamiento de datos para su uso con tablas de lagos de datos.

  • Planificación rápida del escaneo y filtrado avanzado. Iceberg almacena metadatos, como estadísticas a nivel de partición y columna, que los motores pueden utilizar para acelerar la planificación y la ejecución de las consultas.

  • Evolución completa del esquema. Iceberg permite añadir, eliminar, actualizar o cambiar el nombre de columnas sin efectos secundarios.

  • Evolución de particiones. Puede actualizar el diseño de particiones de una tabla a medida que cambien el volumen de datos o los patrones de consulta. Iceberg permite cambiar las columnas en las que se divide una tabla, así como añadir columnas o eliminar columnas de las particiones compuestas.

  • Particiones ocultas.Esta función evita la lectura automática de particiones innecesarias. Esto elimina la necesidad de que los usuarios entiendan los detalles de las particiones de la tabla o agreguen filtros adicionales a sus consultas.

  • Reversión de versiones. Los usuarios pueden corregir rápidamente los problemas volviendo al estado anterior a la transacción.

  • Viaje en el tiempo. Los usuarios pueden consultar una versión anterior específica de una tabla.

  • Aislamiento serializable. Los cambios en las tablas son atómicos, por lo que los lectores nunca ven cambios parciales o no confirmados.

  • Escritores simultáneos. Iceberg utiliza una simultaneidad optimista para permitir que varias transacciones tengan éxito. En caso de conflictos, uno de los redactores debe volver a intentar la transacción.

  • Formatos de archivo abiertos. Iceberg admite varios formatos de archivo de código abierto, incluidos Apache Parquet, Apache Avro y Apache ORC.

En resumen, los lagos de datos que utilizan el formato Iceberg se benefician de la coherencia transaccional, la velocidad, la escala y la evolución del esquema. Para obtener más información sobre estas y otras funciones de Iceberg, consulte la documentación de Apache Iceberg.

AWS soporte para Apache Iceberg

Apache Iceberg es compatible con los marcos de procesamiento de datos de código abierto más populares y Servicios de AWS con Amazon EMR, AmazonAthena, Amazon Redshift y. AWS Glue El siguiente diagrama muestra una arquitectura de referencia simplificada de un lago de datos que se basa en Iceberg.

Arquitectura de lago de datos transaccional

A continuación, se Servicios de AWS proporcionan integraciones nativas de Iceberg. Hay otras Servicios de AWS que pueden interactuar con Iceberg, ya sea de forma indirecta o empaquetando las bibliotecas de Iceberg.

  • Amazon S3 es el mejor lugar para crear lagos de datos debido a sus capacidades de durabilidad, disponibilidad, escalabilidad, seguridad, conformidad y auditoría. Iceberg se diseñó y creó para interactuar con Amazon S3 sin problemas y proporciona soporte para muchas de las funciones de Amazon S3, tal como se indica en la documentación de Iceberg.

  • Amazon EMR es una solución de big data para el procesamiento de datos a escala de petabytes, el análisis interactivo y el aprendizaje automático que utiliza marcos de código abierto como Apache Spark, Flink, Trino y Hive. Amazon EMR puede ejecutarse en clústeres personalizados de Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Kubernetes Service (Amazon EKS) o Amazon EMR Serverless. AWS Outposts

  • Amazon Athena es un servicio de análisis interactivo sin servidor que se basa en marcos de código abierto. Admite formatos de archivos y tablas abiertas y proporciona una forma simplificada y flexible de analizar petabytes de datos allí donde se encuentran. Athena proporciona soporte nativo para consultas de lectura, viaje en el tiempo, escritura y DDL para Iceberg y utiliza el AWS Glue Data Catalog metaalmacén de Iceberg.

  • Amazon Redshift es un almacén de datos en la nube a escala de petabytes que admite opciones de implementación basadas en clústeres y sin servidor. Amazon Redshift Spectrum puede consultar tablas externas que estén registradas y almacenadas en Amazon S3. AWS Glue Data Catalog Redshift Spectrum también admite el formato de almacenamiento Iceberg.

  • AWS Gluees un servicio de integración de datos sin servidor que facilita el descubrimiento, la preparación, el traslado y la integración de datos de múltiples fuentes para el análisis, el aprendizaje automático (ML) y el desarrollo de aplicaciones. AWS Glue La versión 3.0 y las versiones posteriores son compatibles con el marco Iceberg para lagos de datos. Puede utilizarlas AWS Glue para realizar operaciones de lectura y escritura en tablas Iceberg en Amazon S3, o trabajar con tablas Iceberg mediante. AWS Glue Data Catalog También se admiten operaciones adicionales como la inserción, la actualización, las consultas de Spark y las escrituras de Spark.

  • AWS Glue Data Catalogproporciona un servicio de catálogo de datos compatible con Hive Metastore que admite tablas de Iceberg.

  • Rastreador de AWS Glueproporciona automatizaciones para registrar las tablas de Iceberg en. AWS Glue Data Catalog

  • Amazon SageMaker admite el almacenamiento de conjuntos de funciones en Amazon SageMaker Feature Store mediante el formato Iceberg.

  • AWS Lake Formationproporciona permisos de control de acceso básicos y detallados para acceder a los datos, incluidas las tablas Iceberg utilizadas por Athena o Amazon Redshift. Para obtener más información sobre el soporte de permisos para las tablas Iceberg, consulte la documentación de Lake Formation.

AWS cuenta con una amplia gama de servicios compatibles con Iceberg, pero cubrir todos estos servicios va más allá del alcance de esta guía. Las siguientes secciones tratan sobre Spark (streaming estructurado y por lotes) en Amazon EMR y AWS Glue Amazon Athena SQL. En la siguiente sección se ofrece un vistazo rápido al soporte de Iceberg en Athena SQL.