¿Cada release de Azure Data Factory se convierte en una batalla de plantillas ARM?

Bajo el editor visual, una Azure Data Factory es puro código JSON: pipelines, datasets, linked services y la plantilla ARM que los despliega. Pasar un cambio de Dev a Prod exige archivos de parámetros, parámetros globales y una plantilla que falla ante el menor conflicto de tipos. Las releases deberían generarse a partir de un modelo, con el rollback incluido.

¿Cada release de Azure Data Factory se convierte en una batalla de plantillas ARM?

La plataforma de automatización de data warehouse en la que confían equipos de datos de todos los sectores

¿Le suena familiar?

  • Una release a Prod falla en el paso de despliegue ARM, y la solución resulta ser un archivo de parámetros que nadie recuerda haber editado.
  • Dev, Test y Prod tienen configuraciones de linked services ligeramente distintas, mantenidas a mano en tres ubicaciones diferentes.
  • La definición de un dataset cambió en un pipeline y rompió otro, porque ambos lo compartían y solo se probó uno de ellos.
  • Hacer un rollback implica volver a desplegar la plantilla ARM anterior y confiar en que los datasets que referencia sigan existiendo.

Azure Data Factory oculta muy bien su JSON hasta el día de la release. Es entonces cuando la plantilla ARM, los archivos de parámetros, los parámetros globales y las sobrescrituras de linked services quedan al descubierto al mismo tiempo, y un único conflicto de tipos paraliza el despliegue hasta que alguien lo localiza.

Por qué las releases son frágiles

  • El pipeline es JSON, se vea o no. El editor visual escribe definiciones de pipelines, datasets y linked services, y el proceso de publicación los compila en una plantilla ARM. Algunos equipos lo encapsulan en Bicep; el artefacto subyacente es exactamente el mismo.
  • Las diferencias entre entornos se guardan en archivos de parámetros. Dev, Test y Prod difieren en cadenas de conexión, claves y nombres, y esos archivos se mantienen a mano.
  • Las dependencias son implícitas. Datasets y linked services se comparten entre pipelines; modificar uno para un pipeline probado afecta a los que no se han probado.
  • El rollback es un redespliegue. Volver atrás exige la plantilla anterior, y todo lo que esta referenciaba debe seguir existiendo.

ADF hace lo que corresponde a un recurso de Azure: se despliega como una plantilla. Las plantillas se diseñaron para aprovisionar infraestructura estática, cuentas de almacenamiento y redes. El esquema de un data warehouse tiene estado y cambia en cada release, y eso no encaja con esa herramienta.

Dónde debe residir la gestión de releases

  • En el generador. Si el data warehouse surge de un modelo, una release es la diferencia entre dos estados de ese modelo, y la herramienta sabe de qué depende cada diferencia.
  • Con el rollback incluido. Una release generada sabe qué ha cambiado, por lo que el script de reversión existe antes de que la release se ejecute.
  • Una comparación, no una suposición. La diferencia entre Test y Prod debe ser un informe, no una sorpresa.

Qué cambia con Datavault Builder

Datavault Builder construye las releases comparando dos estados, con soporte nativo para Git y Gitflow. Un estado puede ser su entorno local, un estado almacenado en Git, otro entorno activo, un archivo zip o una carpeta; la comparación enumera las diferencias y usted elige cuáles desplegar.

  • Sin plantillas que mantener. La release es el conjunto de diferencias que usted selecciona, generado para el entorno de destino. Seleccione un producto de datos y la herramienta le propondrá el hub, el satélite, la tabla de staging y el origen que necesita.
  • El rollback se genera junto con ella. Cada release incluye su script inverso y la versión del modelo a la que pertenece.
  • Los entornos se comparan, no se suponen. Lo que Prod va a recibir es la lista de diferencias entre su estado actual y el que se está desplegando.
  • Los cambios de esquema en los orígenes no exigen una release. Las columnas que desaparecen se cargan como null con una advertencia, las que crecen se amplían y una columna nueva es una actualización del mapeo.
  • Sus herramientas de CI se mantienen. Azure DevOps o GitHub Actions ejecutan el paquete generado; ya no tienen que entender el data warehouse.

Qué decisión tomar

Audite su proceso de release y cuente dos cosas: los archivos de parámetros y las sobrescrituras por entorno que mantiene, y las releases del último trimestre que fallaron en el paso de la plantilla. Ese es el mantenimiento que una release generada elimina.

Véalo funcionando con una de sus fuentes de datos

Reserve una demo gratuita y traiga el conector que más le cuesta, en dinero o en tiempo.

Tres pasos hacia un pipeline que usted controla

  1. Separar el modelo del despliegue

    La estructura del data warehouse es un modelo. El despliegue es un script generado para un entorno de destino, no una plantilla mantenida a mano.

  2. Generar la release

    Datavault Builder compara dos estados, selecciona las diferencias a desplegar y propone las dependencias necesarias. El script de rollback viene incluido.

  3. Comparar antes de pasar al siguiente entorno

    Es posible comparar dos estados cualesquiera: su entorno local, un estado en Git, otro entorno activo, un archivo zip o una carpeta.

Cómo Datavault Builder elimina las fricciones en la ingesta

  • La ingesta viene integrada

    Cargas batch, delta y CDC desde bases de datos, archivos, APIs REST, fuentes NoSQL y Python, recibiendo flujos como Kafka en micro-batches. La misma plataforma que genera el warehouse, sin una segunda factura.

  • Su propio esquema, no el del proveedor

    Las tablas de origen se mapean a un modelo Data Vault 2.0 diseñado por usted. Una nueva columna o una tabla renombrada modifica un mapeo, no una cadena de scripts post-carga.

  • Solo se mueven los deltas

    Los hubs, links y satélites cargan lo que ha cambiado. Las recargas completas permanecen en staging en lugar de reprocesarse aguas abajo cada noche.

  • El historial se conserva por diseño

    Cada cambio se retiene según llega, por lo que el reporting histórico funciona incluso cuando el origen sobrescribe sus propios registros.

  • Código que nunca tendrá que escribir a mano

    La carga, historización y linaje se generan desde el modelo en tiempo real y se ejecutan de forma nativa en Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle o PostgreSQL.

  • Una plataforma, hasta nueve herramientas menos

    Modelado, ETL, CI/CD, documentación y linaje en un solo lugar. Eso es lo que hace posible pasar del requerimiento a producción en 14,7 minutos.

Reconocido por BARC en The Data Fabric Survey 26

Hable con nuestro experto

Veinte minutos con nuestro Sales Director y una respuesta honesta sobre si esto encaja con su arquitectura.

Matt Collett

Matt Collett

Sales Director

¿Qué está buscando?

Al enviar acepta nuestra Política de Privacidad.

Otros problemas que cubre esta serie

  • Dependencia de Azure

    Puntos débiles de Azure Data Factory: el coste oculto de los pipelines visuales y de Spark

    Azure Data Factory es una buena capa de transporte dentro de Azure y un lugar inadecuado para almacenar la lógica de un data warehouse. Usarlo como suite de modelado y transformación genera lienzos imposibles de interpretar, releases que fallan en plantillas ARM y clústeres Spark para cargas que caben en una consulta SQL. Y cada pipeline queda atado a Azure.

  • Coste de los Mapping Data Flows

    ¿Cuestan sus Mapping Data Flows de Azure Data Factory más que los datos que mueven?

    Los Mapping Data Flows se ejecutan sobre un clúster de Spark gestionado que tarda varios minutos en arrancar y factura por hora de vCore. Para una gran transformación nocturna tiene sentido. Para unos pocos cientos de miles de filas, es un clúster arrancado para hacer lo que una sola sentencia SQL resolvería dentro del data warehouse.

  • Pipelines visuales a gran escala

    ¿Ha superado el lienzo de Azure Data Factory la capacidad de gestión de su equipo?

    Un pipeline construido mediante arrastrar y soltar se crea rápido, pero se adapta con lentitud. Al superar unas docenas de actividades, el lienzo se convierte en la documentación, las conexiones reemplazan a la lógica de negocio y cada nuevo origen es otra actividad de copia que nadie quiere tocar. La solución no es un lienzo más ordenado, sino un modelo que genere los pipelines.

Preguntas y respuestas