Azure by VISEO

Parution Presse

REX MySQL vers Azure SQL Database, via Azure Data Factory

Nos experts livrent les clés du MySQL pour le magazine Programmez

Vincent Thavonekham, Microsoft Regional Director, MVP Azure & Cloud Azure strategy Manager; Ihor Leontiev, Architecte Azure & MVP Azure ainsi que Loris Andaloro, Expert Data Senior, tous trois VISEO, nous proposent un retour d’expérience sur l’ADF, publié dans le magazine Programmez!

Qu'est-ce que l'Azure Data Factory?

Azure Data Factory est un service cloud de traitement de données structurées ou non structurées provenant de sources de données variées. ADF, son surnom, permet de traiter des données en entrée et de les déverser dans un stockage en sortie. Généralement en BigData, ce service se limite à effectuer une copie en «quasi-un pour un» des données. Nous verrons pourtant que cela n’est pas forcément aussi simple qu’il n’y parait.

Nous parlons de «quasi-un pour un», car il y a forcément quelques transtypages à effectuer pour passer d'une base de données à une autre. D’un point de vue théorique on est face à un ETL (Extract Transform Load), logiciel bien connu dans le monde de la Business Intelligence, mais pas seulement. En pratique, nous utilisons cet outil en mode ELT (Extract Load Transform) car on est ici dans le cadre du Cloud et du BigData: on ne veut pas modifier les données lors de l’import («ingestion»), mais les enregistrer brutes dans un Data Lake. Et si on a à les modifier («Transform») et analyser («Analyse»), ce sera ultérieurement, et potentiellement dans quelques années.

Dans une instance Data Factory, vous créez un ou plusieurs pipelines de données. Un pipeline constitue un groupe d’activités qui définit les actions à effectuer. Par exemple, vous pouvez utiliser une «activité de copie» pour copier des données d’une banque de données vers une autre. De même, vous pouvez utiliser une «activité Hive» qui exécute une requête Hive sur un cluster Azure HDInsight afin de convertir ou d’analyser vos données. ADF prend en charge deux types d’activités: déplacement des données et transformation des données.

Les dataset sont des jeux de données qui peuvent être consommés ou produits par les activités. Enfin chaque exécution d’une activité produit ce que l’on appelle un data slice.

D'une part, nous allons voir comment nous avons mis en place une extraction de table depuis MySQL (On Premise) vers une base de données Azure SQL Database. Et d'autre part, nous allons évoquer les difficultés, qui commencent par de nombreuses incompatibilités entre les types de données, ainsi que ce qui concerne la planification des traitements.

L'extraction de table MySQL vers une BDD Azure SQL Database

Tout d'abord, il faut instancier ADF et déployer la Gateway sur le réseau local comme précisé dans la documentation donnée en référence à la fin.

Ensuite, nous pouvons configurer le déplacement des données en cliquant sur «Copier des données» afin de créer notre premier pipeline.

Une nouvelle page s’ouvre sur une procédure pas à pas de création de pipeline. Attention, cet outil est encore en version beta, alors que la solution ADF est en version release. Commencez par nommer le pipeline.

Puis renseigner la source de données MySQL, parmi de nombreuses autres options comme Amazon Redshift/S3, Azure Blob Storage/SQL Datawarehouse, Cassandra, MongoDB... Et choisir la table source dans l’étape « Source », onglet « EXISTING TABLES ».

Découvrez la suite de l'article dans le magazine Programmez!