DataOps para el almacenamiento de datos moderno

Azure Data Factory
Azure Databricks
Azure DevOps
Azure Key Vault
Azure Synapse Analytics

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.

Diagrama de arquitectura que muestra DataOps para el almacenamiento de datos moderno.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

Azure Data Factory (ADF) orquesta los datos y Azure Data Lake Storage (ADLS) Gen2 los almacena:

  1. La API del servicio web de estacionamiento de la ciudad de Contoso está disponible para transferir datos desde las zonas de estacionamiento.

  2. Hay un trabajo de copia de ADF que transfiere los datos al esquema del terreno.

  3. A continuación, Azure Databricks limpia y normaliza los datos. Toma los datos sin procesar y las condiciones para que los científicos de datos puedan usarlos.

  4. Si la validación revela algún dato incorrecto, se vuelca en el esquema con formato incorrecto.

    Importante

    Los usuarios han preguntado por qué no se validan los datos antes de almacenarlos en ADLS. 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 volver a producir la canalización. Si ha volcado los datos incorrectos antes de agregarlos a ADLS, los datos dañados serán inservibles porque no se podrá volver a producir la canalización.

  5. Hay un segundo paso de transformación de Azure Databricks que convierte los datos en un formato que se puede almacenar en el almacenamiento de datos.

  6. Por último, la canalización proporciona los datos de dos maneras diferentes:

    1. Databricks pone los datos a disposición del científico de datos para que pueda entrenar modelos.

    2. Polybase mueve los datos del lago de datos a Azure Synapse Analytics, y Power BI accede a los datos y los presenta al usuario empresarial.

Componentes

La solución usa estos componentes:

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 o entrega continua (CI/CD).

    • Use puertas 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.

  • Ejecute canalizaciones de forma programada.

  • 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 encontrarla en Azure Synapse Analytics, Azure Analysis Services (AAS) y Power BI.

  • Compatibilidad con 10 usuarios del panel simultáneos y 20 usuarios avanzados simultáneos.

  • La canalización de datos debe llevar a cabo la validación de datos y filtrar los registros incorrectos en un almacén especificado.

  • Soporte para la supervisión.

  • Configuración centralizada en un almacenamiento seguro, como Azure Key Vault.

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 datos de informes sobre el uso del estacionamiento con herramientas de visualización de datos, como Power BI, para determinar si necesitan más recursos de estacionamiento o relacionados.

Disponibilidad de estacionamiento en la calle

Consideraciones

En la lista siguiente se resumen las técnicas de aprendizaje y los procedimientos recomendados clave que se muestran en esta solución:

Nota

Cada uno de los elementos de la lista siguiente incluye vínculos a la sección sobre los aprendizajes clave relacionados de los documentos de la solución de sensores de estacionamiento en GitHub.

Implementación de este escenario

La lista siguiente contiene los pasos de alto nivel necesarios para configurar la solución de sensores de estacionamiento con las canalizaciones de compilación y versión correspondientes. Puede encontrar los pasos de configuración y requisitos previos detallados en este repositorio de ejemplos de Azure.

Instalación e implementación

  1. Programa de instalación inicial: instale los requisitos previos, importe el repositorio de GitHub de ejemplos de Azure en su propio repositorio y establezca las variables de entorno necesarias.

  2. Implementación de recursos de Azure: la solución incluye un script de implementación automatizada. Implementa todos los recursos de Azure necesarios y las entidades de servicio de Microsoft Entra por entorno. El script también implementa Azure Pipelines, grupos de variables y conexiones de servicio.

  3. Configuración de la integración de Git en la instancia de desarrollo de Data Factory: configure la integración de Git para que funcione con el repositorio de GitHub importado.

  4. Desarrollo de una compilación y una versión iniciales: cree un cambio de ejemplo en Data Factory, como la habilitación de un desencadenador de programación y, a continuación, observe que el cambio se implementa automáticamente en los entornos.

Recursos implementados

Si la implementación se realiza correctamente, debe haber tres grupos de recursos en Azure, que representan tres entornos: dev, stg y prod. También debe haber canalizaciones de compilación y versión de un extremo a otro en Azure DevOps que puedan implementar automáticamente los cambios en estos tres entornos.

Para obtener una lista detallada de todos los recursos, consulte la sección sobre recursos implementados del archivo LÉAME DataOps - Parking Sensor Demo (DataOps: demostración de la solución de sensores de estacionamiento).

Integración continua y entrega continua

En el diagrama siguiente se muestra el proceso de CI/CD y la secuencia de las canalizaciones de compilación y versión.

Diagrama que muestra el proceso y la secuencia de compilación y lanzamiento.

Descargue un archivo Visio de esta arquitectura.

  1. Los desarrolladores realizan su trabajo en sus propios entornos de espacio aislado del 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>.

  2. 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 compilaciones de pruebas unitarias, de linting y del paquete de aplicación de capa de datos (DACPAC).

  3. 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.

  4. La finalización de una canalización de compilación correcta desencadenará la primera fase de la canalización de versión. Al hacerlo, se implementan los artefactos de compilación de publicación en el entorno de desarrollo, excepto en el caso de ADF.

    Los desarrolladores harán la publicación manualmente en el ADF de desarrollo desde la rama de colaboración (principal). La publicación manual actualiza las plantillas de Azure Resource Manager (ARM) en la rama adf_publish.

  5. La finalización correcta de la primera fase desencadena una puerta de aprobación manual.

    Al realizar la aprobación, la canalización de versión continúa con la segunda fase e implementa los cambios en el entorno de stg.

  6. Ejecute pruebas de integración para probar los cambios en el entorno de stg.

  7. Tras finalizar correctamente la segunda fase, la canalización desencadena una segunda puerta de aprobación manual.

    Al realizar la aprobación, la canalización de versión continúa con la tercera fase e implementa los cambios en el entorno de producción.

Para obtener más información, lea la sección sobre la canalización de compilación y versión del archivo LÉAME.

Prueba

La solución incluye soporte para pruebas unitarias y pruebas de integración. Usa pytest-adf y el marco de pruebas de Nutter. Para más información, consulte la sección sobre pruebas del archivo LÉAME.

Observabilidad y supervisión

La solución admite la observabilidad y la supervisión de Databricks y Data Factory. Para obtener más información, consulte la sección sobre observabilidad y supervisión del archivo LÉAME.

Pasos siguientes

Si desea implementar la solución, siga los pasos descritos en la sección sobre cómo usar el ejemplo del archivo LÉAME DataOps - Parking Sensor Demo (DataOps: demostración de la solución de sensores de estacionamiento).

Ejemplos de código de la solución en GitHub

Observabilidad y supervisión

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

Resistencia y recuperación ante desastres

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

Tutorial detallado

Para obtener un tutorial detallado de la solución y los conceptos clave, vea la siguiente grabación de vídeo: DataDevOps for the Modern Data Warehouse on Microsoft Azure (DataDevOps para el almacenamiento de datos moderno en Microsoft Azure)