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.
En este artículo se describe cómo una oficina de planeamiento de una ciudad ficticia podría usar esta solución. La solución proporciona una canalización de datos de un extremo a otro que sigue el patrón de arquitectura de MDW, junto con los procesos de DevOps y DataOps correspondientes, para evaluar el uso del estacionamiento y tomar decisiones empresariales más informadas.
Architecture
El siguiente diagrama muestra la arquitectura general de la solución.
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
Azure Data Factory realiza la orquestación y Azure Data Lake Storage Gen2 se encarga del almacenamiento de los datos.
El siguiente flujo de datos corresponde al diagrama anterior:
La API del servicio web de estacionamiento de la ciudad de Contoso está disponible para transferir datos desde las zonas de estacionamiento.
Hay un trabajo de copia de Data Factory que transfiere los datos al esquema Landing.
A continuación, Azure Databricks limpia y estandariza los datos. Toma los datos sin procesar y los prepara para que los científicos de datos puedan utilizarlos.
Si la validación revela algún dato incorrecto, se vuelca en el esquema malformado.
Important
Los usuarios han preguntado por qué los datos no se validan antes de almacenarlos en Data Lake Storage. La razón es que la validación podría introducir un error que podría dañar el conjunto de datos. Si introduce un error en este paso, puede corregirlo y reprocesar la canalización. Si volcaste los datos erróneos antes de agregarlos a Data Lake Storage, los datos corruptos no son útiles porque no se puede volver a ejecutar la canalización.
Hay un segundo paso de transformación de Azure Databricks que convierte los datos en un formato que se puede almacenar en el almacén de datos.
Por último, la canalización proporciona los datos de dos maneras diferentes:
Databricks pone los datos a disposición del científico de datos para que pueda entrenar modelos.
Polybase mueve los datos del lago de datos a Azure Synapse Analytics y Power BI accede a los datos y lo presenta al usuario empresarial.
Components
Azure Data Factory es un servicio de integración de datos basado en la nube que permite el movimiento y la orquestación de datos. En esta arquitectura, se inicia la canalización copiando datos desde la API del servicio web de estacionamiento de la ciudad de Contoso en la zona de recepción del lago de datos.
Azure Data Lake Storage Gen2 es un lago de datos escalable y seguro basado en Azure Blob Storage que admite canalizaciones de almacenamiento en capas y reproducibles. En esta arquitectura, actúa como el repositorio central tanto para los datos sin procesar como para los datos procesados en las zonas de datos de aterrizaje, con formato incorrecto y validadas.
Azure Databricks es una plataforma de análisis basada en Apache Spark diseñada para macrodatos y aprendizaje automático. En esta arquitectura, realiza dos pasos de transformación críticos. En primer lugar, limpia y estandariza los datos sin procesar mientras filtra los registros malformados a un esquema independiente. A continuación, convierte los datos validados en un formato adecuado para el almacenamiento de datos y hace que los datos procesados estén disponibles para los científicos de datos para el entrenamiento de modelos.
Azure Key Vault es un servicio en la nube seguro para administrar secretos, claves y certificados. En esta arquitectura, almacena las opciones de configuración confidenciales y las credenciales que se usan en toda la canalización, lo que proporciona administración centralizada y segura de la configuración.
Azure Synapse Analytics es un servicio de análisis integrado que combina funcionalidades de almacenamiento de datos y macrodatos. En esta arquitectura, actúa como el almacenamiento de datos que ingiere datos transformados de Data Lake Storage a través de PolyBase para realizar consultas e informes.
Power BI es una herramienta de análisis empresarial que ofrece visualizaciones interactivas y paneles. En esta arquitectura, se conecta a Azure Synapse Analytics para presentar información de datos de uso del estacionamiento a los planificadores de la ciudad para la toma de decisiones fundamentada.
Detalles del escenario
Un almacenamiento de datos moderno (MDW) le permite reunir fácilmente todos los datos a cualquier escala. No importa si se trata de datos estructurados, no estructurados o semiestructurados. Puede obtener información sobre un MDW a través de paneles analíticos, informes operativos o análisis avanzados para todos los usuarios.
La configuración de un entorno de MDW para entornos de desarrollo (dev) y producción (prod) es compleja. La automatización del proceso es clave. Ayuda a aumentar la productividad a la vez que minimiza el riesgo de errores.
En este artículo se describe cómo una oficina de planeamiento de una ciudad ficticia podría usar esta solución. La solución proporciona una canalización de datos de un extremo a otro que sigue el patrón de arquitectura de MDW, junto con los procesos de DevOps y DataOps correspondientes, para evaluar el uso del estacionamiento y tomar decisiones empresariales más informadas.
Requisitos de la solución
Capacidad de recopilar datos de distintos orígenes o sistemas.
Infraestructura como código: implemente nuevos entornos de desarrollo y almacenamiento provisional (stg) de forma automatizada.
Implementación de cambios de aplicaciones en diferentes entornos de forma automatizada:
Implemente canalizaciones de integración continua y entrega continua (CI/CD).
Use compuertas de implementación para aprobaciones manuales.
Canalización como código: asegúrese de que las definiciones de canalización de CI/CD están en el control de código fuente.
Realice pruebas de integración en los cambios mediante un conjunto de datos de ejemplo.
Ejecución programada de canalizaciones.
Soporte para el desarrollo ágil futuro, incluida la adición de cargas de trabajo de ciencia de datos.
Compatibilidad con la seguridad de nivel de fila y de nivel de objeto:
La característica de seguridad está disponible en SQL Database.
También puede encontrarlo en Azure Synapse Analytics, Azure Analysis Services y Power BI.
Compatibilidad para 10 usuarios simultáneos de panel de control y 20 usuarios avanzados simultáneos.
La canalización de datos debe llevar a cabo la validación de datos y filtrar los registros malformados hacia un almacén especificado.
Soporte para la monitorización.
Posibles casos de uso
En este artículo se usa la ciudad ficticia de Contoso para describir el escenario del caso de uso. En la narración, Contoso posee y administra los sensores de estacionamiento de la ciudad. También posee las API que se conectan a los sensores y obtienen datos de estos. Necesita una plataforma que recopile datos de muchos orígenes diferentes. Los datos deben validarse, limpiarse y transformarse a un esquema conocido. Los planificadores de la ciudad de Contoso pueden explorar y evaluar los datos del informe sobre el uso del estacionamiento con herramientas de visualización de datos, como Power BI, para determinar si necesitan más recursos relacionados o de estacionamiento.
Considerations
Estas consideraciones implementan los pilares del marco de Azure Well-Architected, que es un conjunto de principios rectores que se pueden usar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Microsoft Azure Well-Architected Framework.
Las consideraciones de esta sección resumen los aprendizajes clave y los procedimientos recomendados mostrados por esta solución:
Use la organización de datos por niveles en su lago de datos. Mantenga los datos de origen sin modificar en la zona de ingestión, redirija los registros que no superen la validación a la zona de datos malformados y transforme los datos validados a un formato listo para el almacén de datos. Conservar los datos de origen le permite volver a procesarlos sin volver al sistema de origen. Para consultar el patrón análogo de lakehouse de bronce, plata y oro, consulte la arquitectura de medallones.
Haga que las canalizaciones de datos sean reproducibles e idempotentes. Diseñe los pasos de transformación de modo que, al volver a ejecutarlos con la misma entrada, produzcan el mismo resultado. La reproducción de una canalización le permite corregir un defecto en la lógica de transformación y volver a procesar los datos históricos en lugar de descartarlos.
Security
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para obtener más información, vea Lista de comprobación para la revisión de diseño de seguridad.
- Protección y centralización de la configuración. Almacene cadenas de conexión, claves y otros secretos en Key Vault en lugar de en cuadernos, definiciones de canalización o control de código fuente. Haga referencia a ellos desde servicios vinculados de Data Factory y desde ámbitos de secretos de Azure Databricks para que cada entorno resuelva sus propios valores.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte la Lista de comprobación de revisión de diseño para la excelencia operativa.
Valide los datos al inicio de su flujo de procesamiento. Aplique comprobaciones de esquema y calidad en el primer paso de transformación y enruta los registros que produzcan errores en el esquema con formato incorrecto. La validación temprana evita que los registros defectuosos pasen a las capas posteriores y permite tener un registro de qué se rechazó y por qué.
Asegúrese de que el código de transformación de datos se pueda probar. Refactoriza la lógica de transformación en funciones y módulos que se ejecuten fuera de un cuaderno de notas para poder validarlos con pruebas unitarias en la canalización de validación de la solicitud de cambios.
Tener una canalización de CI/CD. Compile y publique cada entorno a partir del control de código fuente en lugar de hacerlo manualmente. Para conocer la mecánica específica de la tecnología, consulte CI/CD en Azure Data Factory y CI/CD en Azure Databricks.
Supervise la infraestructura, las canalizaciones y los datos. Recopile métricas y registros de cada capa para que un error se muestre como una alerta en lugar de como un informe obsoleto. Para más información, consulte Monitor Data Factory.
Implementación de este escenario
La lista siguiente contiene los pasos de alto nivel necesarios para configurar esta solución con las canalizaciones de compilación y versión correspondientes.
Instalación e implementación
Configuración inicial: instale los requisitos previos, cree el repositorio de Git que contiene la infraestructura, el cuaderno y el código de canalización, y establezca las variables de entorno necesarias.
Implementar recursos de Azure: use una implementación de infraestructura como código, como Bicep o Terraform, para implementar los recursos de Azure y las entidades de servicio de Microsoft Entra para cada entorno. Configure por separado las definiciones de Azure Pipelines, los grupos de variables y las conexiones de servicio que invocan la implementación de la infraestructura.
Configuración de la integración de Git en Dev Data Factory: configure la integración de Git para que la factoría de datos de desarrollo se confirme en el repositorio.
Llevar a cabo una compilación y una versión inicial: cree un cambio de ejemplo en Data Factory, como habilitar un desencadenador de programación y luego vea cómo el cambio se implementa automáticamente en los entornos.
Integración continua y entrega continua (CI/CD)
En el diagrama siguiente se muestra el proceso y la secuencia de CI/CD para las canalizaciones de compilación y versión.
Descargue un archivo Visio de esta arquitectura.
Los desarrolladores trabajan en sus propios entornos aislados en el grupo de recursos de desarrollo y confirman los cambios en sus propias ramas de Git de corta duración. Por ejemplo:
<developer_name>/<branch_name>.Cuando los cambios han finalizado, los desarrolladores generan una solicitud de incorporación de cambios (PR) en la rama principal para su revisión. Al hacerlo, se inicia automáticamente la canalización de validación de PR, que ejecuta las pruebas unitarias, el linting y las compilaciones del paquete de aplicación de capa de datos (DACPAC).
Al completarse la comprobación de PR, la confirmación en la rama principal desencadenará una canalización de compilación que publicará los artefactos de compilación necesarios.
La finalización de una canalización de compilación exitosa desencadenará la primera fase de la canalización de implementación. Al hacerlo, se implementan los artefactos de compilación de publicación en el entorno de desarrollo, con la excepción de Data Factory.
Los desarrolladores publican manualmente en el Data Factory de desarrollo desde la rama de colaboración (main). La publicación manual actualiza las plantillas de Azure Resource Manager en la rama
adf_publish.La finalización correcta de la primera fase desencadena una puerta de aprobación manual.
Con la aprobación, el pipeline de lanzamiento continúa con la segunda fase, implementando los cambios en el entorno de staging.
Ejecute pruebas de integración para probar los cambios en el entorno de stg.
Tras finalizar correctamente la segunda fase, la canalización desencadena una segunda puerta de aprobación manual.
Con la aprobación, la tubería de lanzamiento continúa con la tercera fase, implementando los cambios en el entorno de producción.
Para obtener más información sobre cómo implementar estas fases, consulte CI/CD en Azure Data Factory.
Testing
La solución incluye soporte para pruebas unitarias y pruebas de integración. Las pruebas unitarias cubren los módulos de transformación de Python, y las pruebas de integración ejecutan una canalización de Data Factory y verifican su salida como parte del despliegue al entorno de ensayo. Para obtener más información, consulte Pruebas unitarias para notebooks.
Observabilidad y supervisión
La solución admite la observabilidad y la supervisión de Databricks y Data Factory. En Databricks, use el registro de auditoría integrado de la plataforma (la tabla system.access.audit) y la supervisión de la ejecución de trabajos en lugar de exportar todos los diagnósticos de forma predeterminada. Si necesita entregar registros de diagnóstico de Databricks a un área de trabajo de Log Analytics para alertas centralizadas, esa funcionalidad requiere el plan Premium, se aplica a los registros en lugar de a las métricas y necesita un control de acceso cuidadoso porque los registros de auditoría pueden contener detalles confidenciales sobre la implementación. Para Data Factory, enrute los registros de diagnóstico y las métricas a un área de trabajo de Log Analytics y configure alertas sobre errores de canalización y latencia de trabajos. Para más información, consulte Supervisar Data Factory.
Pasos siguientes
Los siguientes recursos le ayudan a implementar las prácticas de DataOps que se describen en este artículo.
Integración y entrega continuas
Observability/monitoring
Azure Databricks
Data Factory
- Monitor Azure Data Factory con Azure Monitor
- Creación de alertas para supervisar de forma proactiva las canalizaciones de Data Factory
Azure Synapse Analytics
- Supervisión del uso de recursos y la actividad de consulta en Azure Synapse Analytics
- Monitor de la carga de trabajo del grupo de SQL de Azure Synapse Analytics mediante DMV
Azure Storage
Resistencia y recuperación ante desastres
Azure Databricks
Data Factory
Azure Synapse Analytics
- Copias de seguridad geográficas y recuperación ante desastres
- Restauración geográfica del grupo de SQL
Azure Storage
- Recuperación ante desastres y failover de la cuenta de almacenamiento
- Mejores prácticas para usar Azure Data Lake Storage Gen2: alta disponibilidad y recuperación ante desastres
- Redundancia de almacenamiento de Azure
Información general detallada
Para obtener información general detallada sobre la solución y los conceptos clave, vea la siguiente grabación de vídeo: DataDevOps para la Data Warehouse moderna en Microsoft Azure