Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Azure Data Factory
  3. Développement avancé
Extrait - Azure Data Factory Intégrez vos données avec le service serverless d'Azure
Extraits du livre
Azure Data Factory Intégrez vos données avec le service serverless d'Azure Revenir à la page d'achat du livre

Développement avancé

Présentation du chapitre

Ce chapitre est le cœur de l’ouvrage. Il s’agit d’exemples concrets et documentés d’utilisation d’Azure Data Factory. Il est important de garder à l’esprit qu’il est souvent possible de répondre à une problématique donnée de plusieurs manières, ainsi un simple chargement de fichiers peut être réalisé à l’aide de l’activité de copie, de mapping Data Flow, d’un lot SSIS exécuté sur un Integration Runtimes SSIS… Il faut donc toujours être critique et capable de comprendre suffisamment les différents outils disponibles au sein d’Azure Data Factory pour tendre vers la solution la plus adaptée. Les éléments à mettre dans la balance sont : le coût, en effet un Integration Runtimes SSIS sera infiniment plus cher qu’une activité de copie ; la difficulté de mise en place et de maintenance, dans le cas où plusieurs centaines de packages SSIS existent déjà, est-il pertinent de tout migrer ? La performance de la solution, toutes les activités d’Azure Data Factory n’ont pas les mêmes capacités de traitement et peuvent donc être plus ou moins rapides.

Les cas d’utilisation suivants sont donc une base permettant de comprendre le fonctionnement...

Les Templates

Un catalogue de Templates pour les usages courants est disponible depuis la page d’accueil du portail adf.azure.com ou depuis le menu d’ajout de pipeline Pipeline from template. Celui-ci permet de retrouver les modèles qu’il est possible de sauvegarder depuis ses propres pipelines, mais aussi des modèles proposés par Microsoft permettant de répondre à des problématiques régulièrement rencontrées.

ajout de pipeline Pipeline from template

Les modèles de pipeline (Templates) sont un excellent moyen de démarrer un projet en s’inspirant des implémentations que propose Microsoft.

Architecture Data Warehouse

1. Cas d’étude

a. Contexte

Le chargement d’un entrepôt de données est une chose maîtrisée, réalisée depuis plus de trente ans via des ETL (Extract Transform Load) tels que SQL Server Integration Services, Talent, Informatica et de nombreux autres outils. Cela en respectant la chaîne décisionnelle.

Architecture Data Warehouse

Azure Data Factory est l’outil d’intégration de données disponible depuis le Cloud de Microsoft (Azure) qui permet de réaliser le chargement d’un entrepôt de données en utilisant une approche ETL ou ELT (Extract Load Transform). Cela depuis des données hétérogènes (plus de 80 connecteurs) qui peuvent se trouver dans un réseau privé (On-Premise) ou dans un Cloud public.

L’architecture Data Warehouse étudiée dans cette section présente une approche classique, dont l’objectif principal est de démontrer qu’il est possible de réaliser un projet d’entrepôt de données en Azure Data Factory en remplacement de SQL Server Integration Services par exemple.

Le cas d’étude est donc celui d’une société de vente de produits en ligne qui souhaite mettre en place un entrepôt de données afin de consolider ses ventes, mais aussi les informations communiquées par le pôle marketing concernant les campagnes e-mail, les informations de budget et de prévisionnel saisies chaque mois par le contrôle de gestion et enfin les informations météo afin de corréler les ventes aux conditions météorologiques.

b. Architecture

images/6-3-EP-2.PNG

L’architecture du cas d’étude comporte plusieurs sources :

  • Une base de données SQL Server supportant l’activité d’un site de e-commerce open source nopCommerce.

  • De multiples fichiers CSV stockés dans un dossier local mis à disposition par le département Marketing.

  • Un fichier Excel mis à disposition sur un Sharepoint Office 365 contenant les informations de budget et prévisionnel de ventes fournies par le contrôle de gestion.

  • L’API de OpenWeatherMap afin de récupérer les informations de météo.

Les fichiers produits et la base de données de l’application e-commerce étant...

Cas d’utilisation divers

1. Gestion de ressource Azure

Dans les intérêts majeurs du Cloud, on trouve son intégration et son élasticité. Ainsi, de nouveaux scénarios peuvent être gérés avec Azure Data Factory afin de minimiser coûts et maximiser performances tels que :

  • L’allumage et l’extinction des ressources avant traitement, très adapté en cas d’utilisation de Azure SQL DW.

  • La modification de la puissance de traitement avant et après traitement sur une base Azure SQL DB (DTU).

  • Déclencher l’actualisation d’un modèle tabulaire dans Azure Analysis Services ainsi que sa mise à l’échelle et la gestion d’un cluster.

Tout cela est réalisable grâce aux activités web. Ci-dessous quelques exemples d’utilisation.

a. Authentification AAD

Afin de pouvoir effectuer des opérations sur Azure, il est nécessaire d’être authentifié. Cela est possible via une requête HTTP en POST contenant l’autorité d’authentification, l’identifiant d’une application Azure Active Directory ainsi que la ressource à laquelle l’accès est demandé.

Afin de pouvoir utiliser la même logique sur tous les projets, il est nécessaire de paramétrer le pipeline.

Authentification AAD

Ces paramètres seront utilisés lors de l’authentification ainsi que lors de l’actualisation du modèle.

Afin de récupérer le jeton d’authentification, il est nécessaire d’utiliser une activité web, celle-ci est configurée de la façon suivante :

L’URL à appeler est composée d’une concaténation entre l’URL du service de génération de Token d’Azure Active Directory et l’identifiant du répertoire utilisé pour s’identifier :

 @concat('https://login.microsoftonline.com/' 
,pipeline().parameters.TenantID 
,'/oauth2/token' 
) 

La méthode HTTP utilisée est la méthode POST dont le header doit être Content-Type : application/x-www-form-urlencoded.

Le corps de la requête est composé via l’expression suivante :

@concat('grant_type=client_credentials&client_id=' ...