Implementación de la arquitectura de medallón de almacén de lago en Microsoft Fabric
En este artículo se presenta la arquitectura medallion de lago y se describe cómo puede implementar un almacén de lago en Microsoft Fabric. Está dirigido a varios públicos:
- Ingenieros de datos: personal técnico que diseña, compila y mantiene infraestructuras y sistemas que permiten a su organización recopilar, almacenar, procesar y analizar grandes volúmenes de datos.
- Centro de excelencia, TI y equipo de BI: los equipos responsables de supervisar el análisis en toda la organización.
- Administradores de Fabric: los administradores responsables de supervisar Fabric en la organización.
La arquitectura medallion de almacén de lago, comúnmente conocida como arquitectura medallion, es un patrón de diseño que usan las organizaciones para organizar lógicamente los datos en un almacén de lago. Es el enfoque de diseño recomendado para Fabric.
La arquitectura medallion consta de tres capas o zonas distintas. Cada capa indica la calidad de los datos almacenados en el lago, con niveles superiores que representan una mayor calidad. Este enfoque multicapa le ayuda a crear una única fuente de verdad para los productos de datos empresariales.
Y lo más importante, la arquitectura de medallón garantiza el conjunto de propiedades de atomicidad, coherencia, aislamiento y durabilidad (ACID) a medida que avanzan los datos a través de las capas. A partir de datos sin procesar, una serie de validaciones y transformaciones prepara los datos, que son optimizados para un análisis eficaz. Hay tres etapas de medallion: bronce (sin procesar), plata (validado) y oro (enriquecido).
Para obtener más información, consulte ¿Qué es la arquitectura de medallion de almacén de lago?.
OneLake y almacén de lago en Fabric
La base de un almacenamiento de datos moderno es un lago de datos. Microsoft OneLake, un único lago de datos lógico y unificado para toda la organización. Se aprovisiona automáticamente con todos los inquilinos de Fabric y está diseñado para ser la única ubicación para todos los datos de análisis.
Puede usar OneLake para:
- Quitar los silos y reducir el trabajo de administración. Todos los datos de la organización se almacenan, administran y protegen dentro de un recurso de lago de datos. Dado que OneLake se aprovisiona con el inquilino de Fabric, no hay más recursos para aprovisionar ni administrar.
- Reducir el movimiento y la duplicación de datos. El objetivo de OneLake es almacenar solo una copia de datos. Menos copias de datos producen menos procesos de movimiento de datos y esto conduce a mejoras de eficiencia y reducción de la complejidad. Si es necesario, puede crear un acceso directo para hacer referencia a los datos almacenados en otras ubicaciones, en lugar de copiarlos en OneLake.
- Usar con varios motores analíticos. Los datos de OneLake se almacenan en formato abierto. De este modo, varios motores analíticos pueden consultar los datos, incluidos Analysis Services (que usa Power BI), T-SQL y Apache Spark. Otras aplicaciones que no son de Fabric pueden usar API y SDK para acceder a OneLake también.
Para obtener más información, vea OneLake, OneDrive para datos.
Para almacenar datos en OneLake, cree un almacén de lago en Fabric. Un almacén de lago es una plataforma de arquitectura de datos para almacenar, administrar y analizar datos estructurados y no estructurados en una sola ubicación. Puede escalar fácilmente a grandes volúmenes de datos de todos los tipos y tamaños de archivo y, dado que se almacena en una sola ubicación, se comparte y reutiliza fácilmente en toda la organización.
Cada almacén de lago tiene un punto de conexión de análisis SQL integrado que desbloquea las funcionalidades del Almacenamiento de datos sin necesidad de mover datos. Esto significa que puede consultar los datos en el almacén de lago mediante consultas SQL y sin ninguna configuración especial.
Para obtener más información, consulte ¿Qué es un almacén de lago en Microsoft Fabric?.
Tablas y archivos
Al crear un almacén de lago en Fabric, se aprovisionan automáticamente dos ubicaciones de almacenamiento físico para tablas y archivos.
- Las tablas son un área administrada para hospedar tablas de todos los formatos en Apache Spark (CSV, Parquet o Delta). Todas las tablas, tanto si se crean automáticamente como explícitamente, se reconocen como tablas en el almacén de lago. Además, las tablas Delta, que son archivos de datos Parquet con un registro de transacciones basado en archivos, también se reconocen como tablas.
- Los archivos son un área no administrada para almacenar datos en cualquier formato de archivo. Los archivos Delta almacenados en esta área no se reconocen automáticamente como tablas. Si desea crear una tabla sobre una carpeta de Delta Lake en el área no administrada, deberá crear explícitamente un acceso directo o una tabla externa con una ubicación que apunte a la carpeta no administrada que contiene los archivos de Delta Lake en Apache Spark.
La distinción principal entre el área administrada (tablas) y el área no administrada (archivos) es el proceso automático de detección y registro de tablas. Este proceso se ejecuta en cualquier carpeta creada solo en el área administrada, pero no en el área no administrada.
En Microsoft Fabric, el Explorador del almacén de lago proporciona una representación gráfica unificada de todo el almacén para que los usuarios naveguen, accedan y actualicen sus datos.
Para obtener más información sobre la detección automática de tablas, consulte Detección y registro de tablas automáticas.
Almacenamiento de Delta Lake
Delta Lake es una capa de almacenamiento optimizada que proporciona la base para almacenar datos y tablas. Admite transacciones ACID para cargas de trabajo de macrodatos y, por este motivo, es el formato de almacenamiento predeterminado en un almacén de lago de Fabric.
Y lo más importante es que Delta Lake ofrece confiabilidad, seguridad y rendimiento en el almacén de lago para las operaciones por lotes y streaming. Internamente, almacena datos en formato de archivo Parquet, pero también mantiene registros de transacciones y estadísticas que proporcionan características y mejora del rendimiento sobre el formato Parquet estándar.
El formato Delta Lake sobre los formatos de archivo genéricos ofrece las siguientes ventajas principales.
- Compatibilidad con las propiedades ACID y, especialmente, durabilidad para evitar daños en los datos.
- Consultas de lectura más rápidas.
- Aumento de la actualización de los datos.
- Compatibilidad con cargas de trabajo por lotes y streaming.
- Compatibilidad con la reversión de datos mediante el viaje en el tiempo de Delta Lake.
- Cumplimiento normativo mejorado y auditoría mediante el historial de tablas de Delta Lake.
Fabric estandariza el formato de archivo de almacenamiento con Delta Lake y, de forma predeterminada, cada motor de carga de trabajo de Fabric crea tablas Delta al escribir datos en una nueva tabla. Para más información, consulte Tablas de almacén de lago y Delta Lake.
Arquitectura de Medallion en Fabric
El objetivo de la arquitectura medallion es mejorar de forma incremental y progresiva la estructura y la calidad de los datos a medida que avanzan a través de cada fase.
La arquitectura medallion consta de tres capas o zonas distintas.
- Bronce: también conocida como zona sin procesar, esta primera capa almacena los datos de origen en su formato original. Los datos de esta capa suelen ser de solo anexión e inmutables.
- Plata: también conocida como zona enriquecida, esta capa almacena los datos procedentes de la capa de bronce. Los datos sin procesar se han limpiado y estandarizado, y ahora se estructuran como tablas (filas y columnas). También se puede integrar con otros datos para proporcionar una vista empresarial de todas las entidades empresariales, como el cliente, el producto y otros.
- Oro: también conocida como zona mantenida, esta capa final almacena los datos procedentes de la capa de plata. Los datos se refinan para satisfacer requisitos específicos de análisis y negocio de bajada. Las tablas normalmente se ajustan al diseño de esquema de estrella, que admite el desarrollo de modelos de datos optimizados para el rendimiento y la facilidad de uso.
Importante
Dado que una instancia de almacén de lago de Fabric representa una sola zona, se crea un almacén de lago para cada una de las tres zonas.
En una implementación típica de la arquitectura medallion en Fabric, la zona bronce almacena los datos en el mismo formato que el origen de datos. Cuando el origen de datos es una base de datos relacional, las tablas Delta son una buena opción. Las zonas plata y oro contienen tablas Delta.
Sugerencia
Para aprender a crear un almacén de lago, consulte el tutorial Escenario de un extremo a otro de almacén de lago.
Guía de almacén de lago de Fabric
En esta sección se proporcionan instrucciones relacionadas con la implementación de almacén de lago de Fabric mediante la arquitectura medallion.
Modelo de implementación
Para implementar la arquitectura medallion en Fabric, puede usar almacenes de lago (uno para cada zona), un almacenamiento de datos o una combinación de ambos. Su decisión debe basarse en sus preferencias y la experiencia de su equipo. Tenga en cuenta que Fabric le proporciona flexibilidad: puede usar diferentes motores analíticos que funcionan en una copia de los datos en OneLake.
Estos son dos patrones que se deben tener en cuenta.
- Patrón 1: Cree cada zona como un almacén de lago. En este caso, los usuarios empresariales acceden a los datos mediante el punto de conexión de análisis SQL.
- Patrón 2: Cree las zonas de bronce y plata como almacenes de lago y la zona oro como almacenamiento de datos. En este caso, los usuarios empresariales acceden a los datos mediante el punto de conexión de almacenamiento de datos.
Aunque puede crear todos los almacenes de lago en una única área de trabajo de Fabric, se recomienda crear cada almacén de lago en su propia área de trabajo de Fabric independiente. Este enfoque proporciona más control y mejor gobernanza en el nivel de zona.
Para la zona bronce, se recomienda almacenar los datos en su formato original o usar Parquet o Delta Lake. Siempre que sea posible, mantenga los datos en su formato original. Si los datos de origen proceden de OneLake, Azure Data Lake Store Gen2 (ADLS Gen2), Amazon S3 o Google, cree un acceso directo en la zona bronce en lugar de copiar los datos.
Para las zonas plata y oro, se recomienda usar tablas Delta debido a las funcionalidades adicionales y mejoras de rendimiento que proporcionan. Fabric normaliza el formato Delta Lake y, de forma predeterminada, cada motor de Fabric escribe datos en este formato. Además, estos motores usan la optimización en tiempo de escritura de orden V al formato de archivo Parquet. Esa optimización permite lecturas extremadamente rápidas por parte de los motores de proceso de Fabric, como Power BI, SQL, Apache Spark y otros. Para obtener más información, consulte Optimización de la tabla de Delta Lake yV-Order .
Por último, en la actualidad, muchas organizaciones se enfrentan al crecimiento masivo de los volúmenes de datos, junto con una creciente necesidad de organizar y administrar esos datos de forma lógica, al tiempo que facilitan un uso y gobernanza más dirigidos y eficientes. Esto puede llevar a establecer y administrar una organización de datos descentralizada o federada con gobernanza.
Para cumplir este objetivo, considere la posibilidad de implementar una arquitectura de malla de datos. La malla de datos es un patrón arquitectónico que se centra en la creación de dominios de datos que ofrecen datos como producto.
Puede crear una arquitectura de malla de datos para el patrimonio de datos en Fabric mediante la creación de dominios de datos. Puede crear dominios que se asignen a los dominios empresariales, por ejemplo, marketing, ventas, inventario, recursos humanos y otros. A continuación, puede implementar la arquitectura medallion mediante la configuración de zonas de datos dentro de cada uno de los dominios.
Para obtener más información acerca de los dominios, vea Dominios.
Descripción del almacenamiento de datos de tabla delta
En esta sección se describen otros temas de orientación relacionados con la implementación de una arquitectura medallion de almacén de lago en Fabric.
Tamaño de archivo
Por lo general, una plataforma de macrodatos funciona mejor cuando tiene un pequeño número de archivos grandes en lugar de un gran número de archivos pequeños. Esto se debe a que la degradación del rendimiento se produce cuando el motor de proceso debe administrar muchas operaciones de metadatos y archivos. Para mejorar el rendimiento de las consultas, se recomienda que apunte a los archivos de datos que tienen un tamaño aproximado de 1 GB.
Delta Lake tiene una característica denominada optimización predictiva. La optimización predictiva elimina la necesidad de administrar manualmente las operaciones de mantenimiento de las tablas Delta. Cuando esta característica está habilitada, Delta Lake identifica automáticamente las tablas que se beneficiarían de las operaciones de mantenimiento y, a continuación, optimiza su almacenamiento. Puede fusionar de forma transparente muchos archivos más pequeños en archivos grandes y sin ningún impacto en otros lectores y escritores de los datos. Aunque esta característica debe formar parte de la excelencia operativa y el trabajo de preparación de datos, Fabric también tiene la capacidad de optimizar estos archivos de datos durante la escritura de datos. Para más información, consulte Optimización predictiva para Delta Lake.
Retención histórica
De forma predeterminada, Delta Lake mantiene un historial de todos los cambios realizados, lo que significa que el tamaño de los metadatos históricos crece con el tiempo. En función de los requisitos empresariales, debe tener como objetivo mantener los datos históricos solo durante un período de tiempo determinado para reducir los costos de almacenamiento. Considere la posibilidad de conservar los datos históricos solo durante el último mes u otro período de tiempo adecuado.
Puede quitar datos históricos más antiguos de una tabla Delta mediante el comando VACUUM. Sin embargo, tenga en cuenta que de forma predeterminada no puede eliminar datos históricos en los últimos siete días, es decir, mantener la coherencia en los datos. El número predeterminado de días se controla mediante la propiedad de tabla delta.deletedFileRetentionDuration = "interval <interval>"
. Determina el período de tiempo en que se debe eliminar un archivo antes de que se pueda considerar candidato para una operación de vacío.
Particiones de tabla
Al almacenar datos en cada zona, se recomienda usar una estructura de carpetas con particiones siempre que corresponda. Esta técnica ayuda a mejorar la capacidad de administración de datos y el rendimiento de las consultas. Por lo general, los datos particionados en una estructura de carpetas tienen como resultado una búsqueda más rápida de entradas de datos específicas gracias a la eliminación o limpieza de particiones.
Normalmente, se anexan datos a la tabla de destino a medida que llegan nuevos datos. Sin embargo, en algunos casos podría combinar datos porque necesita actualizar los datos existentes al mismo tiempo. En ese caso, puede realizar una operación actualizar/insertar (upsert) mediante el comando MERGE. Cuando se particione la tabla de destino, asegúrese de usar un filtro de partición para acelerar la operación. De este modo, el motor puede eliminar las particiones que no requieren actualización.
Acceso a datos
Por último, debe planear y controlar quién necesita acceso a datos específicos en almacén de lago. También debe comprender los distintos patrones de transacción que se van a usar al acceder a estos datos. A continuación, puede definir el esquema de partición de tabla correcta y la intercalación de datos con índices de orden Z de Delta Lake.
Contenido relacionado
Para obtener más información sobre cómo implementar un almacén de lago de Fabric, consulte los siguientes recursos.
- Tutorial: Escenario de un extremo a otro de un almacén de lago
- Tablas de almacén de lago y Delta Lake
- Guía de decisiones de Microsoft Fabric: selección de un almacén de datos
- Optimización de tablas de Delta Lake y orden V
- La necesidad de optimizar la escritura en Apache Spark
- ¿Tiene alguna pregunta? Intente preguntar a la comunidad de Fabric.
- ¿Sugerencias? Contribuir a las ideas para mejorar Fabric.