Votre canvas Azure Data Factory est-il devenu trop grand pour ceux qui l'ont construit ?

Un pipeline en glisser-déposer est rapide à construire et lent à changer. Au-delà de quelques dizaines d'activités, le canvas devient la documentation, le câblage prend le pas sur la logique, et chaque nouvelle source est une copy activity de plus que personne ne veut toucher. La solution n'est pas un canvas plus ordonné. C'est un modèle qui génère les pipelines.

Votre canvas Azure Data Factory est-il devenu trop grand pour ceux qui l'ont construit ?

La plateforme d'automatisation de data warehouse à laquelle les équipes data font confiance

Cela vous semble familier ?

  • Ouvrir le pipeline d'orchestration principal prend du temps, et y trouver l'activité dont vous avez besoin également.
  • Ajouter une source revient à copier une chaîne de copy activities, de lookups et d'appels de procédures stockées, puis à ajuster chaque étape à la main.
  • Un changement fait dans le canvas n'était pas le changement voulu, et il a été découvert en Test, ou plus tard.
  • Deux ingénieurs ont modifié le même pipeline dans des branches différentes, et le merge a été réglé en gardant l'un et en refaisant l'autre.

Azure Data Factory est l’outil d’intégration par défaut dans chaque parc Azure, et pour une poignée d’activités il est exactement ce qu’il faut : glissez une copy activity, pointez-la vers une source, terminé. Les ennuis commencent quand la même approche est utilisée pour tout l’entrepôt, et que le canvas contient des centaines d’activités que seules les personnes qui les ont câblées peuvent lire.

Pourquoi le canvas cesse de passer à l’échelle

  • Le canvas est la documentation. Il n’y a pas de modèle derrière un pipeline, seulement le câblage. Ce qu’un pipeline fait est ce que font ses boîtes et ses flèches, et cela se lit boîte par boîte.
  • Chaque source est une copie de la précédente. Une nouvelle table signifie dupliquer une chaîne de copy activities, de lookups et d’appels de procédures stockées, puis éditer chaque étape. La dérive entre les copies est garantie.
  • Les changements se font à la main dans une interface. Une flèche de dépendance mal placée ou une mauvaise référence de dataset a l’air correcte jusqu’à l’exécution.
  • Travailler en équipe signifie merger du JSON. Deux personnes qui éditent un pipeline dans deux branches se retrouvent dans un merge de JSON de pipeline généré, ce que personne ne relit avec confiance.

Rien de tout cela n’est la faute d’ADF. Un canvas est le bon outil pour orchestrer quelques éléments et le mauvais outil pour exprimer un modèle de données.

Où le câblage devrait se situer

  • Dans un modèle, pas sur un canvas. Les clés métier, les relations et les attributs devraient être déclarés une seule fois, et les pipelines qui les chargent dérivés de cette déclaration.
  • Générés, pour que les copies ne puissent pas dériver. Si chaque chargement de staging et de vault vient du même générateur, il n’y a pas de version par source à garder alignée.
  • L’orchestration des chargements va avec les chargements. Datavault Builder exécute des ensembles de chargements sous forme de jobs, dans l’ordre des dépendances, avec journalisation et reprise. Ce qui reste pour ADF est le déplacement de fichiers, les événements et un déclencheur.

Ce qui change avec Datavault Builder

Datavault Builder décrit l’entrepôt dans un modèle visuel et en génère les chargements de staging, d’historisation et de livraison, tournant nativement sur Fabric, Synapse, Azure SQL ou SQL Server.

  • Vous modélisez le métier, la plateforme construit le reste. Décrivez une fois les entités, les clés et les relations ; les hubs, links, satellites et tous les chargements en sont générés. Il n’y a pas de canvas à garder synchronisé avec la réalité.
  • Une nouvelle source est un mapping. Mappez la table de chargement au modèle et régénérez. Pas de chaîne d’activités à copier et ajuster.
  • Le modèle est lisible. Les concepts métier, les clés et le lineage sont visibles en un seul endroit, pour les utilisateurs métier comme pour les ingénieurs.
  • Les changements sont relus comme des changements de modèle. Support de Git et Gitflow avec des scripts de déploiement et de rollback générés, plutôt qu’un merge de JSON de pipeline.
  • ADF garde un rôle réduit. Le déplacement de fichiers et les événements peuvent toujours passer par ADF, et il peut déclencher un job Datavault Builder. L’orchestration des chargements eux-mêmes reste dans la plateforme.

Ce qu’il faut décider

Ouvrez le plus grand pipeline et comptez les activités qui n’existent que pour copier, faire un lookup ou appeler une procédure stockée par source. Ce nombre est la partie du canvas qu’un modèle devrait générer.

Voyez-le fonctionner sur l'une de vos sources

Réservez une démo gratuite et apportez le connecteur qui vous coûte le plus cher, en argent ou en temps.

Trois étapes vers un pipeline que vous maîtrisez

  1. Compter les pipelines qui ne font que déplacer et charger

    L’essentiel d’une grande factory est fait de chaînes de copy, de lookup et de procédure stockée, une par source. C’est de la structure, pas de la logique.

  2. Modéliser les sources à la place

    Les clés métier, les relations et les attributs vont dans le modèle Datavault Builder. Les pipelines de chargement en sont générés.

  3. Garder ADF pour ce qu’il fait bien

    Le déplacement de fichiers entre services Azure et la gestion d’événements peuvent rester dans ADF. Au plus, il déclenche un job Datavault Builder ; l’orchestration des chargements réside dans la plateforme.

Comment Datavault Builder supprime les frictions de l'ingestion

  • L'ingestion est intégrée

    Chargements batch, delta et CDC depuis les bases de données, les fichiers, les API REST, les sources NoSQL et Python, les flux comme Kafka arrivant en micro-batches. La même plateforme qui génère le warehouse, sans seconde facture.

  • Votre schéma, pas celui du fournisseur

    Les tables source sont mappées vers un modèle Data Vault 2.0 que vous avez conçu. Une nouvelle colonne ou une table renommée change un mapping, pas une chaîne de scripts post-chargement.

  • Seuls les deltas circulent

    Les Hubs, Links et Satellites chargent ce qui a changé. Les rechargements complets restent en staging au lieu d’être retraités en aval chaque nuit.

  • L'historique est conservé par conception

    Chaque changement est conservé tel qu’il arrive, donc le reporting historique fonctionne même là où la source écrase ses propres lignes.

  • Du code que vous n'écrivez jamais

    Le chargement, l’historisation et la traçabilité sont générés depuis le modèle en temps réel et s’exécutent nativement sur Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle ou PostgreSQL.

  • Une plateforme, jusqu'à neuf outils en moins

    Modélisation, ETL, CI/CD, documentation et traçabilité au même endroit. C’est ce qui rend possible les 14,7 minutes entre le besoin et la production.

Reconnu par BARC dans The Data Fabric Survey 26

Rencontrez notre expert

Vingt minutes avec notre Sales Director et une réponse honnête sur l’adéquation avec votre stack.

Matt Collett

Matt Collett

Sales Director

Que recherchez-vous ?

En soumettant, vous acceptez notre Politique de confidentialité.

Les autres problèmes traités par cette série

  • Attaché à un seul cloud

    Les limites d'Azure Data Factory : le coût caché des pipelines assemblés à la main et des transformations Spark

    Azure Data Factory est une bonne couche de transport dans Azure et un mauvais endroit où loger un entrepôt de données. Utilisé comme suite de modélisation et de transformation, il apporte un canvas que personne ne sait lire, des releases qui échouent sur les templates ARM et des clusters Spark pour des chargements qui tiennent en une instruction SQL. Et chacun de ces pipelines n’existe que dans Azure.

  • Coût des Mapping Data Flows

    Les Mapping Data Flows d'Azure Data Factory coûtent-ils plus cher que les données qu'ils déplacent ?

    Les Mapping Data Flows tournent sur un cluster Spark managé qui met plusieurs minutes à démarrer et se facture à l’heure de vCore. Pour une grosse transformation nocturne, c’est un choix raisonnable. Pour quelques centaines de milliers de lignes, c’est un cluster démarré pour faire ce qu’une seule instruction SQL ferait à l’intérieur de l’entrepôt.

  • Déploiements JSON et ARM

    Chaque release Azure Data Factory tourne-t-elle à la bataille de templates ARM ?

    Sous l’éditeur visuel, une Azure Data Factory est du JSON : pipelines, datasets, linked services et le template ARM qui les déploie. Faire passer un changement de Dev à Prod implique des fichiers de paramètres, des paramètres globaux et un template qui échoue sur une seule incohérence de type. Les releases devraient être générées à partir d’un modèle, rollback inclus.

Questions et réponses