Bienvenue à Azure Data Factory !

Comme fidèles lectrices et lecteurs de ce blog, il n’est nul besoin de souligner que les données sont créatrices de valeur ! ;-)

Dans la mesure où ces dernières sont correctement collectées, traitées et analysées, elles permettent aux entreprises de toutes tailles de comprendre des phénomènes, de résoudre des problèmes posés, d’améliorer leur connaissance, de prendre des décisions, d’anticiper des actions ou bien encore de trouver de nouvelles idées clés pour faire évoluer/croître leurs affaires.

Pour rendre cela possible, et avant même de pouvoir être analysées, les données brutes doivent dont être collectées et généralement retraitées de manière à pouvoir être exploitées afin de produire au final des informations fiables. Traditionnellement, l’intégration des données est réalisée par le biais d’un ETL (Extract, Transform, and Load) à l’image de SQL Server Integration Services (SSIS), et qui, comme son nom l’indique, va extraire, transformer et charger les données depuis les différentes banques/sources de données d’une organisation jusque l’entrepôt de données (data warehouse) final. Ce sont les données de l’entrepôt de données qui, considérées alors comme fiables, vont autoriser l’alimentation en information.

Pour autant, le paysage des données est aujourd’hui plus varié que jamais avec des données structurées ou non, issues de nombreuses sources en local et sur le Cloud. Ainsi, une organisation, qu’il s’agisse d’un organisme de recherche, d’un acteur du Secteur Public ou d’une entreprise, n’est en effet plus limitée aux seules données présentes en interne dans ses ERP, OLTP, etc. Cette dernière peut aller puiser des données issues non seulement des extensions de son système d’information dans le Cloud, avec p. ex. des sites web Azure, des comptes de stockage Azure, etc. mais aussi issues des réseaux sociaux, des places de marchés de jeux de données, (des capteurs) d’objets connectés, etc.

Les mégadonnées ou Big Data constituent ici un nouvel enjeu au sein de cette intégration des données, le bruit d’aujourd’hui étant potentiellement la source de création de valeur de demain ;-) Comme vous le savez, les données disponibles ne cessent de croitre exponentiellement en Volume, Vitesse, Variété – n’oublions pas le principe des 3V du Gartner de plus en plus démocratisé - et en complexité...

Ces données brutes peuvent être structurées, semi-structurées, ou non structurées. Il est dès lors aisé de comprendre comment cette diversité accrue des données rend plus difficile et couteuse leur intégration et leur maintenance au sein d’une organisation. C’est dans cette phase d’intégration des données qu’intervient le service Azure Data Factory.

image

Azure Data Factory est une solution Cloud de composition et d’orchestration de services de données à grande échelle permettant :

  • de travailler avec différents services de stockage et de traitement de données.
  • de transformer facilement des données brutes, diverses, éparses, locales et du Cloud en informations fiabilisées prêtes à l’emploi.
  • de gérer le processus d’intégration de bout en bout d’un point A à un point B par le biais de pipeline et de visualiser les travaux réalisés sur un tableau de bord.
  • d’utiliser au mieux l’information produite.

Une vidéo de présentation du service est disponible ici (en anglais).

Dans la pratique, une fabrique de données Azure Data Factory ne contient pas les données ; ces dernières étant stockées en dehors de la fabrique. Celle-ci vous offre la capacité de composer et d’orchestrer de bout en bout le stockage, le (re)traitement et le mouvement des données pour créer et opérationnaliser des pipelines de traitement analytique, de déplacement et de stockage. Autrement dit, elle vous permet de connecter et transformer des données structurées ou non, éparpillées dans votre environnement en local et le Cloud, en informations fiabilisées prêtes à l’emploi.

image

Comme analogie, si vous avez utilisé Apache Hadoop, pensez à Apache Oozie (en termes d’orchestration de flux de travail et de planification) et à certains éléments d’Apache Ambari (pour le provisioning). Une autre analogie pourrait être faite avec l’Agent SQL Server (en matière d’ordonnancement) avec, en plus, certains flux de contrôle de SSIS (vis-à-vis de l’orchestration de flux de travail), et certains éléments de déclencheurs (comme démarrer le travail lorsque des données arrivent).

Voyons comment tout cela se passe !

Comment composer et orchestrer tout cela ?

Tout d’abord, il faut comprendre qu’une fabrique de données se décompose en plusieurs conteneurs concentrateurs de données ou hub de données, chaque hub de données recouvrant un domaine spécifique, fonctionnel.

Par exemple, une organisation peut définir un hub de données intitulé « Ventes en France » destiné à référencer toutes les données propres aux ventes qu’elle réalise en France et les outils d’intégration associés. De même, elle peut mettre en œuvre un hub de données « Marketing » qui renfermera tout ce qui touche à l’intégration des données marketing.

Une telle décomposition en hubs de données facilite et optimise l’intégration des données en termes d’activités de stockage et de traitement, permet une gestion unifiée de la consommation des ressources et fournit des services pour le déplacement des données selon les besoins (bases de données, applications SaaS, services web, etc.).

D’un point de vue technique, un hub de données représente un couplage/appairage de services de stockage de données co-localisés et de services de traitement associés dont vous allez avoir besoin. Par exemple, un cluster Hadoop (HDFS comme stockage, Hive/Pig/etc. pour le traitement) peut être aisément modélisé comme un hub de données. De même, un entrepôt de données peut-être modélisé à son tour comme un hub de données (base de données comme stockage, outil ETL et/ou procédures stockées comme services de traitement).

Sources de données et services de traitement

La première chose à faire est donc de connecter un hub de données à l’ensemble de ces services de stockage et de traitement. Ces connections sont réalisées et référencées dans le hub à partir de la notion de services liés (linked-service) comme SQL Server, Azure SQL, Azure HDInsight, Azure Machine Learning ou encore le stockage Azure (blob et table).

image

Transformation des données en informations fiabilisées

Une fois les services liés de la fabrique définis, la transformation des données s’effectue à l’intérieur du hub de données par le biais d’un pipeline de données. Le pipeline à tolérance de panne et hautement disponible constitue comme son nom le suggère une sorte de canal autorisant à la fois le transfert et le traitement des données reçues en entrée. Pour cela, un pipeline de données est constitué d’un ensemble d’activités (activity) de déplacement et/ou de transformation des données qui acceptent N jeux de données en entrée et produisent M jeux de données en sortie.

Une activité représente donc l'unité d'exécution dans le pipeline pouvant effectuer un déplacement ou une transformation des données. Cette dernière peut importer/exporter les données de banques de données disparates (bases de données, fichiers, services SaaS, etc.) utilisées par l'organisation au sein d’un hub de données

Compte tenu de ces éléments, un pipeline de données relève donc de 3 étapes principales en termes de fonctionnement : alimentation, transformation et sortie.

En termes d’alimentation, un pipeline prend en entrée un ou plusieurs jeux de données contenus – en termes de définition - dans le hub de données considéré. Il peut s’agir par exemple de quelques octets de données, de fichiers .CSV, de tables ou encore de modèles.

Dans la version courante du service en version préliminaire publique, Azure Data Factory vous permet de traiter les données locales, telles que celles des serveurs SQL Server, avec les données du Cloud, telles que celles de la base de données SQL Azure, des objets blob et des tables au niveau du stockage Azure.

Au-delà de ces connecteurs de données, des extensions proposées par la place de marché (marketplace) Azure peuvent vous apporter des solutions propres à votre activité. Ainsi, Informatica, leader en intégration de données se joint désormais à l'écosystème croissant de partenaires de la marketplace pour proposer un connecteur à destination du stockage Azure. Ce connecteur vous permet d'extraire des données de divers systèmes à demeure et dans le Cloud – y compris des applications SaaS comme Salesforce.com, Workday, Marketo et d’autres vers un stockage Azure de type blob Azure.

Pour ce qui est de l’étape de transformation à l’intérieur du pipeline de données, les sources/jeux de données peuvent être composées, traitées (c.à.d. subir une transformation) et surveillées par le biais d’une activité. Comme nous l’avons introduit ci-avant, une telle activité peut servir p. ex. à nettoyer les données, masquer certains champs ou réaliser n’importe quel autre traitement nécessaire à rendre les données opérationnelles.

Combiner des données complexes et leur donner forme n'est pas quelque chose qu'on réussit toujours du premier coup. De plus, le fait de changer les modèles de données peut s'avérer un processus coûteux et long. Dans ce contexte, Azure Data Factory vous permet de rester concentré sur les analyses de transformation pendant que le service se charge du reste des opérations et de leur orchestration.

image

Azure Data Factory prend en charge notamment le traitement Hive, Pig et PowerShell/C#, les procédures stockées SQL, ainsi que des fonctionnalités de traitement clés telles que la gestion de clusters automatique Hadoop (HDInsight), les nouvelles tentatives en cas de défaillances provisoires, les stratégies de délai d'expiration configurable et les alertes.

Au terme du traitement réalisé, nous retrouvons alors en sortie une ou plusieurs tables prêtes à être utilisées ou à servir de nouvelle entrée à un autre pipeline qui pourra leur appliquer une nouvelle transformation.

Comme on peut l’imaginer, un seul pipeline de données ne permet pas de réaliser tous les traitements nécessaires. C’est pourquoi les pipelines de données peuvent se succéder en cascade, constituant ainsi une chaine de transformation des données, les sorties des uns constituant les entrées d’alimentation des autres.

Enfin, les pipelines de données peuvent être lancés une seule fois ou bien être programmés à l’avance par vos soins ; vous pouvez alors choisir de les relancer une fois par jour, une fois par semaine, une fois par heure, etc. selon vos besoins ou celui de votre organisation d’être approvisionner en données fiabilisées.

Exportation des informations prêtes à l’emploi

Une fois les données transformées de manière à pouvoir être utilisées comme informations fiables, ces dernières sont exportées vers un ou plusieurs services de stockage référencés dans le hub de données par un service lié.

Les tables ainsi prêtes à l’emploi générées de manière ponctuelle ou régulière par les pipelines de données vont directement alimenter les banques de données de l’organisation.

Elles peuvent par exemple facilement être utilisées par les outils de décisionnel (Business Intelligence ou BI) et d'analyse et d'autres applications à l’image de l’importation dans Excel via PowerQuery.

Voici un schéma récapitulatif des 3 étapes de production de l’information au sein d’une fabrique Azure Data Factory :

image

Des évolutions en continu

Azure Data Factory est disponible en version préliminaire publique depuis le 27 octobre 2014 dans l’environnement d’exécution Cloud Microsoft Azure depuis le nouveau portail.

image

Service Cloud oblige, des évolutions en continue viennent améliorer le service pour vous proposer une expérience encore plus simple et pertinente.

Ainsi, de nouvelles activités ont été ajoutées en décembre 2014 vis-à-vis de l’intégration avec Azure Machine Learning mentionné précédemment. Ces activités ont été annoncée dans le billet Azure Data Factory Updates: Integration with Azure Machine Learning! et sont documentées ici : Create Predictive Pipelines using Azure Data Factory and Azure Machine Learning.

De même, en février 2015 dernier, les vues diagramme se sont améliorées comme décrits dans le billet Azure Data Factory Updates: Diagram View Enhancements.

Enfin, il convient de noter la désormais disponibilité ce mois d’un éditeur web pour mettre en œuvre des pipelines de données sans nécessité d’investir dans des cmdlets PowerShell comme précédemment. Vous retrouverez cette annonce dans le billet Azure Data Factory Editor: A Light Weight Web Editor.

Pour aller plus loin

Les présentations et introduction d’usage étant faites, il ne vous reste plus qu’à prendre en main l’environnement et à commencer à l’utiliser. Vous pouvez pour cela vous référer au didacticiel disponible ici qui vous guidera dans vos premiers pas.

Pour aller plus loin, notez que des exemples de mise en œuvre sont disponibles sur la forge communautaire GitHub ici. N’hésitez pas à vous en inspirer pour vos premières intégrations. Vous pouvez télécharger pour cela une archive complète de l’ensemble des exemples disponibles ici.

Ceci conclut ce premier billet d’introduction d’Azure Data Factory.

Pour plus d’informations sur Azure Data Factory et ses évolutions, nous vous invitons à aller lire ou relire les billets publiés sur le Blog Microsoft Azure, ainsi que la documentation MSDN de référence associée qui vous présentera notamment toutes les cmdlets PowerShell disponibles pour votre fabrique de données, référencer les services liés et les tables, constituer votre pipeline, spécifier le temps d’activation de votre pipeline, etc. et ce, même si l’éditeur vient désormais simplifier un peu la tâche :-)

N’oubliez pas non plus le Forum MSDN Azure Data Factory qui est là pour faciliter la création d’une communauté d’échanges sur le sujet.