Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los datos llegan a cuentas de Data Lake en varios formatos. Estos formatos incluyen formatos legibles humanos, como JSON, . Archivos CSV o XML y formatos binarios comprimidos, como .tar o .gz. La llegada de datos también tiene muchos tamaños, desde algunos archivos editados hasta una exportación de toda una tabla SQL. Los datos también pueden presentarse como un gran número de archivos pequeños de unos pocos kilobytes cada uno, como eventos en tiempo real de una solución de IoT.
Aunque Azure Data Lake Storage Gen2 admite el almacenamiento para todo tipo de datos sin restricciones, debe tener en cuenta cuidadosamente los formatos de datos para garantizar la eficacia de la canalización de procesamiento y optimizar los costos.
Muchas organizaciones ahora estandarizan su formato de entrada y separan el cómputo del almacenamiento. Debido a esto, el formato Delta Lake se ha convertido en el estándar preferido para la ingesta de datos a través de la capa de enriquecimiento. Desde la capa de enriquecimiento, el equipo de aplicaciones de datos puede servir datos en un formato que refleje su caso de uso.
Nota:
Usa Delta Lake para admitir casos de uso por lotes y streaming desde la ingesta inicial de datos hasta la capa de enriquecimiento.
En este artículo se proporciona información general sobre Delta Lake, su rendimiento y cómo le ayuda a lograr compatibilidad con el cumplimiento y a estandarizar los datos a medida que fluyen de la capa de origen a enriquecimiento.
Delta Lake
Delta Lake es una capa de almacenamiento de código abierto que aporta transacciones ACID (atomicidad, coherencia, aislamiento y durabilidad) a cargas de trabajo de macrodatos y Apache Spark. Azure Databricks es compatible con Linux Foundation Delta Lake.
Características clave de Delta Lake
| Característica | Descripción |
|---|---|
| Transacciones ACID | Los lagos de datos normalmente se pueblan a través de varios procesos y canalizaciones, algunos de los cuales escriben datos simultáneamente mientras se realizan lecturas. Los ingenieros de datos solían pasar por un proceso manual y propenso a errores para garantizar la integridad de los datos antes de que delta lake y las transacciones entraran en uso. Delta Lake aporta las transacciones ACID conocidas a los lagos de datos. Proporciona el nivel de aislamiento más fuerte, serializabilidad. Para obtener más información, consulte Explorando Delta Lake: Analizar el registro de transacciones. |
| Control escalable de metadatos | En macrodatos, incluso los metadatos pueden ser "macrodatos". Delta Lake trata los metadatos iguales que otros datos. Usa la potencia de procesamiento distribuido de Spark para controlar todos los metadatos. Debido a esto, Delta Lake puede manejar fácilmente tablas a escala de petabytes con miles de millones de particiones y archivos. |
| Viaje en el tiempo (control de versiones de datos) | La capacidad de "deshacer" un cambio o volver a una versión anterior es una característica clave de las transacciones. Delta Lake proporciona instantáneas de los datos, lo que le permite revertir a versiones anteriores de datos para las auditorías, las reversiones o la reproducción de experimentos. Obtenga más información en Introducción al viaje en el tiempo de Delta Lake para los lagos de datos a gran escala. |
| Formato abierto | Apache Parquet, el formato de línea base de Delta Lake, le permite aplicar esquemas de compresión y codificación eficaces. |
| Lote unificado y origen y receptor de streaming | Una tabla en Delta Lake es simultáneamente una tabla de lotes y un origen y receptor de streaming. El streaming de ingesta de datos, la reposición histórica de lotes y las consultas interactivas funcionan de manera inmediata. |
| Aplicación de esquemas | La imposición del esquema le ayuda a asegurarse de que tiene los tipos de datos correctos y las columnas requeridas, lo que impide la inconsistencia de los datos procedentes de datos erróneos. Para más información, consulte Diving Into Delta Lake: Schema Enforcement & Evolution |
| Evolución del esquema | Delta Lake permite realizar cambios aplicados automáticamente a un esquema de tabla, sin necesidad de escribir DDL de migración. Para más información, consulte Diving Into Delta Lake: Schema Enforcement & Evolution |
| Historial de auditoría | El registro de transacciones de Delta Lake registra detalles sobre todos los cambios realizados en los datos. Estos registros proporcionan una pista de auditoría completa de todos los cambios. |
| Actualizaciones y eliminaciones | Delta Lake admite las API de Scala, Java, Python y SQL para diversas funcionalidades. El soporte para las operaciones de combinación, actualización y eliminación le ayuda a cumplir con los requisitos de cumplimiento. Para obtener más información, consulte Anuncio de la versión de Delta Lake 0.6.1, Anuncio de la versión de Delta Lake 0.7 y Simple, Reliable Upserts and Deletes on Delta Lake Tables mediante las API de Python (que incluye fragmentos de código para comandos DML de combinación, actualización y eliminación). |
| 100% compatible con la API de Apache Spark | Los desarrolladores pueden usar Delta Lake con un cambio mínimo en sus canalizaciones de datos existentes, ya que es totalmente compatible con las implementaciones de Spark existentes. |
Para obtener más información, consulte Proyecto Delta Lake.
Para obtener documentación completa, visite la página de documentación de Delta Lake.
Rendimiento
El uso de muchos archivos pequeños a menudo da como resultado un rendimiento poco óptimo y mayores costos a partir de un aumento de las operaciones de lectura y lista. Azure Data Lake Storage Gen2 está optimizado para archivos más grandes que permiten que los trabajos de análisis se ejecuten más rápido y con un costo menor.
Delta Lake incluye muchas características que pueden ayudarle a optimizar el rendimiento con la administración de archivos.
Algunos ejemplos son:
- El registro de transacciones minimiza las costosas operaciones LIST.
- Z-Ordering (agrupación en clústeres multidimensionales) permite la delegación de predicado optimizada para los filtros de consulta.
- El almacenamiento en caché nativo y las optimizaciones de consultas reducen la cantidad de análisis de almacenamiento que necesita. Para más información, consulte Optimización del rendimiento con almacenamiento en caché.
- OPTIMIZE combina archivos pequeños en archivos más grandes.
Convierta estas optimizaciones en parte del proceso de carga de datos para mantener la actualización y el rendimiento de los datos.
Particionamiento de Data Lake
La creación de particiones de datos implica la organización de datos en el almacén de datos para que pueda administrar datos a gran escala y controlar el acceso a los datos. La creación de particiones puede mejorar la escalabilidad, reducir la contención y optimizar el rendimiento.
Al crear particiones en el lago de datos, asegúrese de que la configuración sea adecuada:
- No pone en peligro la seguridad
- Tiene aislamiento claro y se alinea con el modelo de autorización de datos
- Se adapta bien al proceso de ingesta de datos
- Tiene una ruta de acceso bien definida para un acceso óptimo a los datos
- Soporta tareas de administración y mantenimiento
Procedimientos generales
Los procedimientos generales para el diseño de particiones de datos son:
- Céntrese en la implicación de seguridad al principio y diseñe las particiones de datos junto con la autorización.
- Es posible que desee permitir la redundancia de datos a cambio de seguridad. Defina una convención de nomenclatura y cumplan con ella.
- Puedes anidar varias carpetas, pero siempre mantenlas coherentes.
- Incluya un elemento de tiempo en las estructuras de carpetas y los nombres de archivo.
- No inicie la estructura de carpetas con divisiones de fecha. Es mejor mantener las fechas en el nivel de carpeta inferior.
- No combine formatos de archivo mixtos ni productos de datos diferentes en una sola estructura de carpetas.
Sugerencia
Las estructuras de carpetas deben tener estrategias de creación de particiones que puedan optimizar los patrones de acceso y los tamaños de archivo adecuados. En las zonas curadas, planifique la estructura en función de la recuperación óptima, tenga cuidado de elegir una clave de partición con alta cardinalidad, lo que conduce al sobreparticionamiento, lo que a su vez conduce a tamaños de archivo subóptimos.
Para más información sobre las zonas de lago de datos, consulte Zonas y contenedores de Data Lake.
Compatibilidad con el cumplimiento
Delta Lake añade una capa de transacciones para gestionar datos estructurados encima de su repositorio de datos. Esta adición puede simplificar y acelerar drásticamente su capacidad de localizar y eliminar información personal (también conocida como "datos personales") a petición del consumidor. La capa transaccional admite operaciones como DELETE, UPDATE y MERGE. Para más información, consulte Procedimientos recomendados: cumplimiento del RGPD mediante Delta Lake.
Resumen
Aplique las normalizaciones de datos enumeradas en este artículo a la plataforma. Comience con el formato Delta Lake y, a continuación, empiece a agregar procesos para la optimización y el cumplimiento. Es posible que decida crear un servicio que ejecute algunas de las rutas de optimización según una programación o cree un servicio de cumplimiento que quite la información personal.