Zonas y contenedores de Lagos de datos

Es importante planear la estructura de los datos antes de integrarlos en un lago de datos. Cuando tenga un plan, puede utilizar la seguridad, la creación de particiones y el procesamiento de forma eficaz.

Para obtener información general sobre los lagos de datos, consulte Introducción a Azure Data Lake Storage para el análisis en la nube.

Información general

Las tres cuentas de lago de datos deben alinearse con las capas típicas de un lago de datos.

Número de lago Capas Número de contenedor Nombre del contenedor
1 Raw 1 Página de aterrizaje
1 Raw 2 Conformidad
2 Enriquecida 1 Normalizado
2 Mantenido 2 Productos de datos
3 Desarrollo 1 Espacio aislado de análisis
3 Desarrollo # Número de almacenamiento principal de Synapse

En la tabla anterior se muestra el número estándar de contenedores que se recomienda por zona de aterrizaje de datos. La excepción a esta recomendación se produce cuando se requieran directivas de eliminación distintas para los datos del contenedor. Estos requisitos determinan la necesidad de más contenedores.

Nota

En cada zona de aterrizaje de datos se muestran tres lagos de datos. El lago de datos reside en tres cuentas de lago de datos, así como en varios contenedores y carpetas, pero representa un único lago de datos lógico para la zona de aterrizaje de datos.

En función de sus requisitos, es posible que quiera consolidar las capas sin procesar, enriquecidas y seleccionadas en una cuenta de almacenamiento. Mantenga otra cuenta de almacenamiento denominada de "desarrollo" para que los consumidores de datos traigan otros productos de datos útiles.

Para más información sobre cómo separar las cuentas de lago de datos, consulte Cuentas de almacenamiento en un lago de datos lógico.

Habilite Azure Storage con la característica de espacio de nombres jerárquico, lo que le permite administrar los archivos de forma eficaz. La característica de espacio de nombres jerárquico organiza los objetos y archivos dentro de una cuenta en una jerarquía de directorios y subdirectorios anidados. Esta jerarquía se organiza de la misma manera que el sistema de archivos en el equipo.

Cuando el motor de ingesta independiente de los datos o la aplicación de incorporación registra un nuevo sistema de registros, crea carpetas necesarias en contenedores en las capas de datos sin procesar, enriquecidas y estandarizadas. Si una aplicación de datos alineada con el origen ingiere los datos, el equipo de aplicaciones de datos necesita que el equipo de la zona de aterrizaje de datos cree las carpetas y los grupos de seguridad. Coloque un nombre de entidad de servicio o una identidad administrada en el grupo correcto y asigne un nivel de permiso. Documente este proceso para los equipos de aplicaciones de datos y zona de aterrizaje de datos.

Para más información sobre los equipos, consulte Entender bien los roles y los equipos del análisis a escala de la nube en Azure

Cada producto de datos debe tener dos carpetas en el contenedor de productos de datos que tiene el equipo de productos de datos.

En la capa enriquecida de un contenedor estandarizado, hay dos carpetas por sistema de origen, divididas por clasificación. Con esta estructura, el equipo puede almacenar por separado los datos que tienen diferentes clasificaciones de seguridad y datos y asignarles acceso de seguridad diferente.

El contenedor estandarizado necesita una carpeta general para los datos confidencial o categorías inferiores, y una carpeta confidencial para los datos personales. Controle el acceso a estas carpetas mediante listas de control de acceso (ACL). Puede crear un conjunto de datos con todos los datos personales quitados y almacenarlos en la carpeta general. Puede tener otro conjunto de datos que incluya todos los datos personales en la carpeta de datos personales de tipo confidencial.

Una combinación de ACL y grupos de Microsoft Entra restringen el acceso a los datos. Estas listas y grupos controlan a qué pueden acceder o no otros grupos. Los equipos de aplicaciones de datos y propietarios de datos pueden aprobar o rechazar el acceso a sus recursos de datos.

Para más información, consulte Administración de acceso a datos y Datos restringidos.

Advertencia

Algunos productos de software no admiten el montaje de la raíz de un contenedor de lago de datos. Debido a esta limitación, cada contenedor de lago de datos en los niveles sin procesar, mantenido, enriquecido y de desarrollo debe contener una sola carpeta que se bifurca en varias. Configure los permisos de la carpeta detenidamente. Cuando crea una carpeta desde la raíz, la lista de control de acceso predeterminada del directorio principal determina la lista de control de acceso predeterminada de un directorio secundario y la lista de control de acceso. La lista de control de acceso de un archivo secundario no tiene una lista de control de acceso predeterminada.

Para obtener más información, consulte Listas de control de acceso en Azure Data Lake Storage Gen2.

Capa sin procesar o lago de datos uno

Piense en esta capa sin procesar como un depósito que almacena los datos en su estado natural y original. Se guardan sin filtrar ni purificar. Puede almacenar los datos en su formato original, como JSON o CSV. O puede ser rentable almacenar el contenido del archivo como una columna en un formato de archivo comprimido, como Avro, Parquet o Databricks Delta Lake.

Estos datos sin procesar son inmutables. Mantenga bloqueados los datos sin procesar y, si concede permisos a los consumidores, ya sean automatizados o humanos, asegúrese de que sean de solo lectura. Puede organizar esta capa mediante una sola carpeta por sistema de origen. Asigne a cada proceso de ingesta acceso de escritura solo a su carpeta asociada.

Al cargar datos desde sistemas de origen en la zona sin procesar, puede elegir hacer lo siguiente:

  • Cargas completas para extraer un conjunto de datos completo.
  • Cargas diferenciales para cargar solo los datos modificados.

Indique el patrón de carga elegido en la estructura de carpetas para facilitar el uso por parte de los consumidores de datos.

Los datos sin procesar de los sistemas de origen para cada aplicación de datos alineada con el origen o el origen del motor de ingesta automatizado llegan a la carpeta completa o diferencial. Cada proceso de ingesta debe tener acceso de escritura solo a la carpeta asociada.

Las diferencias entre las cargas completas y las cargas diferenciales son:

  • Carga completa: se pueden incorporar datos completos del origen si:

    • El volumen de datos en el origen es pequeño.
    • El sistema de origen no mantiene ningún campo de marca de tiempo que identifique si se han agregado, actualizado o eliminado datos.
    • El sistema de origen sobrescribe los datos completos cada vez.
  • Carga diferencial: los datos incrementales del origen se pueden incorporar si:

    • El volumen de datos en el origen es grande.
    • El sistema de origen mantiene un campo de marca de tiempo que identifica si se han agregado, actualizado o eliminado datos.
    • El sistema de origen crea y actualiza los archivos sobre los cambios de los datos.

El lago de datos sin procesar está compuesto por los contenedores de aterrizaje y conformidad. Cada contenedor utiliza una estructura de carpetas 100 % obligatoria específica para su propósito.

Diseño del contenedor de aterrizaje

El contenedor de aterrizaje está reservado para datos sin procesar procedentes de un sistema de origen reconocido. El motor de ingesta independiente de los datos o una aplicación de datos alineada con el origen de datos carga los datos que no están modificados y en el formato compatible original.

.
|-Landing
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------{date (ex. rundate=2019-08-22)}
|------Full

Contenedor de conformidad en la capa sin formato

La capa sin procesar contiene datos conformes con la calidad de datos. A medida que se copian los datos en un contenedor de aterrizaje, se pone en marcha el procesamiento y el cálculo de datos para copiar los datos del contenedor de aterrizaje en el contenedor de conformidad. Como parte de esta primera fase, los datos se convierten en el formato de lago incremental, y llegan a la carpeta de entrada. Cuando se ejecuta la calidad de los datos, los registros que se pasan se copian en la carpeta de salida. Los registros que producen un error llegan a una carpeta de error.

.
|-Conformance
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}
|------Full
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}

Sugerencia

Piense en escenarios en los que es posible que tenga que recompilar una plataforma de análisis desde cero. Piense en los datos más pormenorizados que necesita para recompilar almacenes de datos de lectura descendentes. Asegúrese de que tiene un plan de continuidad empresarial y recuperación ante desastres para los componentes clave.

Capa enriquecida o lago de datos dos

Piense en la capa enriquecida como una capa de filtración. Elimina las impurezas y también puede implicar enriquecimiento.

El contenedor de normalización contiene sistemas de registro y maestros. Las carpetas se segmentan primero por área de asunto y, a continuación, por entidad. Los datos están disponibles en tablas con particiones combinadas que están optimizadas para el consumo de análisis.

Contenedor estandarizado

.
|-Standardized
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------General
|--------{date (ex. rundate=2019-08-22)}
|-------Sensitive
|--------{date (ex. rundate=2019-08-22)}

Nota:

Esta capa de datos se considera la capa nivel Plata o el origen de datos de lectura. A los datos de esta capa no se les ha aplicado ninguna transformación que no sea la calidad de los datos, la conversión de Delta Lake y la alineación del tipo de datos.

En el diagrama siguiente se muestra el flujo de lagos de datos y contenedores de datos de origen a un contenedor estandarizado.

Diagram that shows a high level data flow.

Capa mantenida o lago de datos dos

La capa seleccionada es la capa de consumo. Está optimizada para el análisis, más que para la ingesta o el procesamiento de datos. La capa mantenida puede almacenar datos en esquemas de estrella o data marts no normalizados.

Los datos del contenedor estandarizado se transforman en productos de datos de alto valor que se sirven a los consumidores de datos. Estos datos tienen estructura. Se pueden servir a los consumidores tal cual, como cuadernos de ciencia de datos, o mediante otro almacén de datos de lectura, como Azure SQL Database.

Use herramientas como Spark o Data Factory para realizar el modelado dimensional en lugar de hacerlo dentro del motor de base de datos. Este uso de las herramientas se convierte en un punto clave si quiere convertir el lago en el único origen de confianza.

Si realiza el modelado dimensional fuera del lago, es posible que quiera volver a publicar modelos en el lago para mantener la coherencia. Esta capa no reemplaza a un almacenamiento de datos. El rendimiento no suele ser el adecuado para los paneles dinámicos ni para los análisis interactivos de usuarios finales o consumidores. Esta capa resulta más idónea para científicos de datos y analistas internos que ejecutan consultas o análisis improvisados y a gran escala o para analistas avanzados que no tienen que cumplir plazos para la realización de informes. Como los costos de almacenamiento son menores en el lago de datos que en el almacenamiento de datos, puede ser rentable mantener datos pormenorizados de bajo nivel en el lago. Almacene los datos agregados en el almacén. Genere estas agregaciones mediante Spark o Azure Data Factory. Puede conservarlas en el lago de datos antes de cargarlas en el almacenamiento de datos.

Los recursos de datos de esta zona suelen estar muy regulados y bien documentados. Asigne permisos por departamento o función y organice los permisos por grupo de consumidores o data mart.

Contenedor de productos de datos

.
|-{Data Product}
|---{Entity}
|----{Version}
|-----General
|-------{date (ex. rundate=2019-08-22)}
|------Sensitive
|-------{date (ex. rundate=2019-08-22)}

Sugerencia

Al colocar datos en otro almacén de datos de lectura, como Azure SQL Database, asegúrese de tener una copia de esos datos en los datos mantenidos. Se guía a los usuarios del producto de datos a su almacén de datos de lectura principal o a la instancia de Azure SQL Database, aunque también pueden explorar datos con herramientas adicionales si hace que los datos estén disponibles en el lago de datos.

Capa de desarrollo o tres cuentas de lago de datos

Los consumidores de datos pueden traer otros productos de datos útiles junto con los datos ingeridos en el contenedor estandarizado.

En este escenario, la plataforma de datos puede asignar un área de espacio aislado de análisis para estos consumidores. En el espacio aislado, pueden generar información detallada valiosa mediante los datos mantenidos y los productos de datos que aportan. Por ejemplo, si un equipo de ciencia de datos quiere determinar la mejor estrategia de selección de ubicación de productos para una nueva región, puede incorporar otros productos de datos, como datos demográficos de clientes y datos de uso de productos similares de esa región. El equipo puede usar la información detallada de ventas de alto valor de estos datos para analizar la estrategia de oferta y ajuste al mercado del producto.

Nota:

El área de espacio aislado de análisis es un área de trabajo para una persona o un pequeño grupo de colaboradores. Las carpetas del área de espacio aislado tienen un conjunto especial de directivas que impiden los intentos de usar esta área como parte de una solución de producción. Estas directivas limitan el almacenamiento total disponible y el tiempo en que se pueden almacenar los datos.

Normalmente, se desconocen la calidad y la precisión de estos productos de datos. Se siguen clasificando como productos de datos, pero son temporales y solo son pertinentes para el grupo de usuarios que utiliza los datos.

Cuando estos productos de datos maduran, su empresa puede promoverlos a la capa de datos mantenida. Para mantener los equipos de productos de datos responsables de los nuevos productos de datos, proporcione a los equipos una carpeta dedicada en la zona de datos mantenidos. Puede almacenar los nuevos resultados en la carpeta y compartirlos con otros equipos de la organización.

Nota:

Para cada área de trabajo de Azure Synapse que cree, use el lago de datos tres para crear un contenedor que se utilice como almacenamiento principal. Este contenedor sirve para que las áreas de trabajo de Azure Synapse dejen de interferir con los límites de rendimiento de las zonas mantenidas y enriquecidas.

Ejemplo de flujo de datos en productos y espacio aislado para análisis

En el diagrama siguiente se compila la información de este artículo y se muestra cómo fluyen los datos a un espacio aislado de análisis y productos de datos.

Diagram showing a data flow into product container and analytics sandbox.

Pasos siguientes