Didacticiel : créer un pipeline Data Factory qui déplace les données à l’aide d’Azure PowerShellTutorial: Create a Data Factory pipeline that moves data by using Azure PowerShell

Notes

Cet article s’applique à la version 1 de Data Factory.This article applies to version 1 of Data Factory. Si vous utilisez la version actuelle du service Data Factory, consultez le tutoriel sur l’activité de copie.If you are using the current version of the Data Factory service, see copy activity tutorial.

Dans cet article, vous allez apprendre à utiliser PowerShell pour créer une fabrique de données avec un pipeline qui copie les données d’un stockage Blob Azure dans une base de données Azure SQL.In this article, you learn how to use PowerShell to create a data factory with a pipeline that copies data from an Azure blob storage to an Azure SQL database. Si vous débutez avec Azure Data Factory, lisez l’article Présentation d’Azure Data Factory avant de suivre ce didacticiel.If you are new to Azure Data Factory, read through the Introduction to Azure Data Factory article before doing this tutorial.

Dans ce tutoriel, vous créez un pipeline contenant une seule activité : activité de copie.In this tutorial, you create a pipeline with one activity in it: Copy Activity. L’activité de copie copie les données d’un magasin de données pris en charge vers un magasin de données de récepteur pris en charge.The copy activity copies data from a supported data store to a supported sink data store. Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs, consultez Magasins de données pris en charge.For a list of data stores supported as sources and sinks, see supported data stores. Elle est mise en œuvre par un service disponible dans le monde entier, capable de copier des données entre différents magasins de données de façon sécurisée, fiable et évolutive.The activity is powered by a globally available service that can copy data between various data stores in a secure, reliable, and scalable way. Pour plus d’informations sur l’activité de copie, consultez Activités de déplacement des données.For more information about the Copy Activity, see Data Movement Activities.

Un pipeline peut contenir plusieurs activités.A pipeline can have more than one activity. En outre, vous pouvez chaîner deux activités (une après l’autre) en configurant le jeu de données de sortie d’une activité en tant que jeu de données d’entrée de l’autre activité.And, you can chain two activities (run one activity after another) by setting the output dataset of one activity as the input dataset of the other activity. Pour plus d’informations, consultez Plusieurs activités dans un pipeline.For more information, see multiple activities in a pipeline.

Notes

cet article ne couvre pas toutes les applets de commande Data Factory.This article does not cover all the Data Factory cmdlets. Consultez la Référence des applets de commande Data Factory pour obtenir une documentation complète sur ces applets de commande.See Data Factory Cmdlet Reference for comprehensive documentation on these cmdlets.

Dans ce didacticiel, le pipeline de données copie les données d’un magasin de données source vers un magasin de données de destination.The data pipeline in this tutorial copies data from a source data store to a destination data store. Pour suivre un tutoriel sur la transformation des données à l’aide d’Azure Data Factory, consultez Tutoriel : Créer un pipeline pour transformer des données à l’aide d’un cluster Hadoop.For a tutorial on how to transform data using Azure Data Factory, see Tutorial: Build a pipeline to transform data using Hadoop cluster.

PrérequisPrerequisites

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

ÉtapesSteps

Voici les étapes à effectuer dans le cadre de ce didacticiel :Here are the steps you perform as part of this tutorial:

  1. Créer une fabrique de données Azure.Create an Azure data factory. Dans cette étape, vous créez une fabrique de données nommée ADFTutorialDataFactoryPSH.In this step, you create a data factory named ADFTutorialDataFactoryPSH.

  2. Créez des services liés dans la fabrique de données.Create linked services in the data factory. Dans cette étape, vous créez deux services liés des types suivants : Stockage Azure et Azure SQL Database.In this step, you create two linked services of types: Azure Storage and Azure SQL Database.

    AzureStorageLinkedService relie votre compte de stockage Azure à la fabrique de données.The AzureStorageLinkedService links your Azure storage account to the data factory. Vous avez créé un conteneur et chargé des données dans ce compte de stockage dans le cadre des conditions préalables.You created a container and uploaded data to this storage account as part of prerequisites.

    AzureSqlLinkedService lie votre base de données Azure SQL à la fabrique de données.AzureSqlLinkedService links your Azure SQL database to the data factory. Les données copiées à partir du stockage Blob sont stockées dans cette base de données.The data that is copied from the blob storage is stored in this database. Vous avez créé une table SQL dans cette base de données en remplissant les conditions préalables.You created a SQL table in this database as part of prerequisites.

  3. Créez des jeux de données d’entrée et de sortie dans la fabrique de données.Create input and output datasets in the data factory.

    Le service lié Stockage Azure spécifie la chaîne de connexion que le service Data Factory utilise au moment de l’exécution pour se connecter à votre compte de stockage Azure.The Azure storage linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure storage account. Le jeu de données blob d’entrée spécifie quant à lui le conteneur et le dossier qui contient les données d’entrée.And, the input blob dataset specifies the container and the folder that contains the input data.

    De même, le service lié Azure SQL Database spécifie la chaîne de connexion que le service Data Factory utilise au moment de l’exécution pour se connecter à votre base de données Azure SQL.Similarly, the Azure SQL Database linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure SQL database. Et le jeu de données de la table SQL de sortie spécifie la table de la base de données dans laquelle les données du stockage Blob sont copiées.And, the output SQL table dataset specifies the table in the database to which the data from the blob storage is copied.

  4. Créez un pipeline dans la fabrique de données.Create a pipeline in the data factory. Dans cette étape, vous allez créer un pipeline avec une activité de copie.In this step, you create a pipeline with a copy activity.

    Cette activité copie les données d’un objet blob du stockage Blob Azure dans une table de la base de données Azure SQL.The copy activity copies data from a blob in the Azure blob storage to a table in the Azure SQL database. Vous pouvez utiliser une activité de copie dans un pipeline pour copier les données d’une source prise en charge dans une destination prise en charge.You can use a copy activity in a pipeline to copy data from any supported source to any supported destination. Pour obtenir la liste des magasins de données pris en charge, consultez Activités de déplacement des données.For a list of supported data stores, see data movement activities article.

  5. Surveiller le pipeline.Monitor the pipeline. Dans cette étape, vous allez surveiller les tranches de jeux de données d’entrée et de sortie à l’aide de PowerShell.In this step, you monitor the slices of input and output datasets by using PowerShell.

Créer une fabrique de donnéesCreate a data factory

Important

Assurez-vous de remplir les conditions préalables à l’exécution du didacticiel si ce n’est déjà fait.Complete prerequisites for the tutorial if you haven't already done so.

Une fabrique de données peut avoir un ou plusieurs pipelines.A data factory can have one or more pipelines. Un pipeline peut contenir une ou plusieurs activités.A pipeline can have one or more activities in it. Par exemple, une activité de copie pour copier des données d’une source vers un magasin de données de destination, et une activité Hive HDInsight pour exécuter un script Hive pour transformer des données d’entrée et produire des données de sortie.For example, a Copy Activity to copy data from a source to a destination data store and a HDInsight Hive activity to run a Hive script to transform input data to product output data. Commençons par la création de la fabrique de données dans cette étape.Let's start with creating the data factory in this step.

  1. Lancez PowerShell.Launch PowerShell. Conservez Azure PowerShell ouvert jusqu’à la fin de ce tutoriel.Keep Azure PowerShell open until the end of this tutorial. Si vous fermez puis rouvrez Azure PowerShell, vous devez réexécuter ces commandes.If you close and reopen, you need to run the commands again.

    Exécutez la commande suivante, puis saisissez le nom d’utilisateur et le mot de passe que vous avez utilisés pour la connexion au portail Azure :Run the following command, and enter the user name and password that you use to sign in to the Azure portal:

    Connect-AzAccount
    

    Exécutez la commande suivante pour afficher tous les abonnements de ce compte :Run the following command to view all the subscriptions for this account:

    Get-AzSubscription
    

    Exécutez la commande suivante pour sélectionner l’abonnement que vous souhaitez utiliser.Run the following command to select the subscription that you want to work with. Remplacez <NameOfAzureSubscription> par le nom de votre abonnement Azure :Replace <NameOfAzureSubscription> with the name of your Azure subscription:

    Get-AzSubscription -SubscriptionName <NameOfAzureSubscription> | Set-AzContext
    
  2. Créez un groupe de ressources Azure nommé ADFTutorialResourceGroup en exécutant la commande suivante :Create an Azure resource group named ADFTutorialResourceGroup by running the following command:

    New-AzResourceGroup -Name ADFTutorialResourceGroup  -Location "West US"
    

    Certaines étapes de ce didacticiel supposent que vous utilisez le groupe de ressources nommé ADFTutorialResourceGroup.Some of the steps in this tutorial assume that you use the resource group named ADFTutorialResourceGroup. Si vous utilisez un autre groupe de ressources, vous devrez l’utiliser à la place d’ADFTutorialResourceGroup dans ce didacticiel.If you use a different resource group, you need to use it in place of ADFTutorialResourceGroup in this tutorial.

  3. Exécutez l’applet de commande New-AzDataFactory pour créer une fabrique de données nommée ADFTutorialDataFactoryPSH :Run the New-AzDataFactory cmdlet to create a data factory named ADFTutorialDataFactoryPSH:

    $df=New-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name ADFTutorialDataFactoryPSH –Location "West US"
    

    Ce nom peut avoir déjà été utilisé.This name may already have been taken. Par conséquent, utilisez un nom de fabrique de données unique en ajoutant un préfixe ou suffixe (par exemple : ADFTutorialDataFactoryPSH05152017), puis réexécutez la commande.Therefore, make the name of the data factory unique by adding a prefix or suffix (for example: ADFTutorialDataFactoryPSH05152017) and run the command again.

Notez les points suivants :Note the following points:

  • Le nom de la fabrique de données Azure doit être un nom global unique.The name of the Azure data factory must be globally unique. Si l’erreur suivante s’affiche, changez le nom (par exemple, votrenomADFTutorialDataFactoryPSH).If you receive the following error, change the name (for example, yournameADFTutorialDataFactoryPSH). Utilisez ce nom à la place d’ADFTutorialFactoryPSH quand vous effectuez les étapes de ce didacticiel.Use this name in place of ADFTutorialFactoryPSH while performing steps in this tutorial. Consultez la rubrique Data Factory – Règles d’affectation des noms pour les artefacts Data Factory.See Data Factory - Naming Rules for Data Factory artifacts.

    Data factory name “ADFTutorialDataFactoryPSH” is not available
    
  • Pour créer des instances de fabrique de données, vous devez avoir le statut d’administrateur/collaborateur de l’abonnement Azure.To create Data Factory instances, you must be a contributor or administrator of the Azure subscription.

  • Le nom de la fabrique de données pourra être enregistré en tant que nom DNS et devenir ainsi visible publiquement.The name of the data factory may be registered as a DNS name in the future, and hence become publicly visible.

  • Vous risquez de recevoir l’erreur suivante : « Cet abonnement n’est pas inscrit pour utiliser l’espace de noms Microsoft.DataFactory.  »You may receive the following error: "This subscription is not registered to use namespace Microsoft.DataFactory." Effectuez l’une des opérations suivantes, puis essayez de publier à nouveau :Do one of the following, and try publishing again:

    • Dans Azure PowerShell, exécutez la commande suivante pour enregistrer le fournisseur Data Factory :In Azure PowerShell, run the following command to register the Data Factory provider:

      Register-AzResourceProvider -ProviderNamespace Microsoft.DataFactory
      

      Exécutez la commande suivante pour confirmer l’enregistrement du fournisseur Data Factory :Run the following command to confirm that the Data Factory provider is registered:

      Get-AzResourceProvider
      
    • Connectez-vous au portail Azure à l’aide de votre abonnement Azure.Sign in by using the Azure subscription to the Azure portal. Accédez à un panneau Data Factory, ou créez une fabrique de données dans le portail Azure.Go to a Data Factory blade, or create a data factory in the Azure portal. Cette action enregistre automatiquement le fournisseur.This action automatically registers the provider for you.

Créez des services liésCreate linked services

Vous allez créer des services liés dans une fabrique de données pour lier vos magasins de données et vos services de calcul à la fabrique de données.You create linked services in a data factory to link your data stores and compute services to the data factory. Dans ce didacticiel, vous n’allez pas utiliser n’importe quel service de calcul comme Azure HDInsight ou Azure Data Lake Analytics.In this tutorial, you don't use any compute service such as Azure HDInsight or Azure Data Lake Analytics. Vous utilisez deux magasins de données de type Stockage Azure (source) et Azure SQL Database (destination).You use two data stores of type Azure Storage (source) and Azure SQL Database (destination).

Vous créez ainsi deux services liés nommés AzureStorageLinkedService et AzureSqlLinkedService de types : AzureStorage et AzureSqlDatabase.Therefore, you create two linked services named AzureStorageLinkedService and AzureSqlLinkedService of types: AzureStorage and AzureSqlDatabase.

AzureStorageLinkedService relie votre compte de stockage Azure à la fabrique de données.The AzureStorageLinkedService links your Azure storage account to the data factory. Ce compte de stockage est celui dans lequel vous avez créé un conteneur et chargé les données en remplissant les conditions préalables.This storage account is the one in which you created a container and uploaded the data as part of prerequisites.

AzureSqlLinkedService lie votre base de données Azure SQL à la fabrique de données.AzureSqlLinkedService links your Azure SQL database to the data factory. Les données copiées à partir du stockage Blob sont stockées dans cette base de données.The data that is copied from the blob storage is stored in this database. Vous avez créé une table emp dans cette base de données dans le cadre des conditions préalables.You created the emp table in this database as part of prerequisites.

Créer un service lié pour un compte de stockage AzureCreate a linked service for an Azure storage account

Dans cette étape, vous liez votre compte de stockage Azure à votre fabrique de données.In this step, you link your Azure storage account to your data factory.

  1. Créez un fichier JSON nommé AzureStorageLinkedService.json dans le dossier C:\ADFGetStartedPSH avec le contenu suivant : (Créez le dossier ADFGetStartedPSH s’il n’existe pas déjà.)Create a JSON file named AzureStorageLinkedService.json in C:\ADFGetStartedPSH folder with the following content: (Create the folder ADFGetStartedPSH if it does not already exist.)

    Important

    Remplacez <accountname> et <accountkey> par le nom et la clé de votre compte de stockage Azure avant d’enregistrer le fichier.Replace <accountname> and <accountkey> with name and key of your Azure storage account before saving the file.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "type": "AzureStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
            }
        }
     }
    
  2. Dans Azure PowerShell, basculez vers le dossier ADFGetStartedPSH.In Azure PowerShell, switch to the ADFGetStartedPSH folder.

  3. Exécutez l’applet de commande New-AzDataFactoryLinkedService pour créer le service lié : AzureStorageLinkedService.Run the New-AzDataFactoryLinkedService cmdlet to create the linked service: AzureStorageLinkedService. Cette applet de commande et d’autres applets de commande Data Factory que vous utilisez dans ce didacticiel vous obligent à transmettre des valeurs aux paramètres ResourceGroupName et DataFactoryName.This cmdlet, and other Data Factory cmdlets you use in this tutorial requires you to pass values for the ResourceGroupName and DataFactoryName parameters. Vous pouvez également passer l’objet DataFactory retourné par l’applet de commande New-AzDataFactory sans avoir à taper ResourceGroupName et DataFactoryName chaque fois que vous exécutez une applet de commande.Alternatively, you can pass the DataFactory object returned by the New-AzDataFactory cmdlet without typing ResourceGroupName and DataFactoryName each time you run a cmdlet.

    New-AzDataFactoryLinkedService $df -File .\AzureStorageLinkedService.json
    

    Voici l'exemple de sortie :Here is the sample output:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.LinkedServiceProperties
    ProvisioningState : Succeeded
    

    Vous pouvez aussi créer ce service lié en spécifiant le nom du groupe de ressources et le nom de la fabrique de données au lieu de l’objet DataFactory.Other way of creating this linked service is to specify resource group name and data factory name instead of specifying the DataFactory object.

    New-AzDataFactoryLinkedService -ResourceGroupName ADFTutorialResourceGroup -DataFactoryName <Name of your data factory> -File .\AzureStorageLinkedService.json
    

Créer un service lié pour une base de données Azure SQLCreate a linked service for an Azure SQL database

Dans cette étape, vous liez votre base de données Azure SQL à votre fabrique de données.In this step, you link your Azure SQL database to your data factory.

  1. Créez un fichier JSON nommé AzureSqlLinkedService.json dans C:\ADFGetStartedPSH avec le contenu suivant :Create a JSON file named AzureSqlLinkedService.json in C:\ADFGetStartedPSH folder with the following content:

    Important

    Remplacez <servername>, <databasename>, <username@servername&gt;, et <password> par les noms de votre serveur SQL Azure, de la base de données, du compte d’utilisateur et par le mot de passe.Replace <servername>, <databasename>, <username@servername&gt;, and <password> with names of your Azure SQL server, database, user account, and password.

    {
        "name": "AzureSqlLinkedService",
        "properties": {
            "type": "AzureSqlDatabase",
            "typeProperties": {
                "connectionString": "Server=tcp:<server>.database.windows.net,1433;Database=<databasename>;User ID=<user>@<server>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
            }
        }
     }
    
  2. Exécutez la commande suivante pour créer un service lié :Run the following command to create a linked service:

    New-AzDataFactoryLinkedService $df -File .\AzureSqlLinkedService.json
    

    Voici l'exemple de sortie :Here is the sample output:

    LinkedServiceName : AzureSqlLinkedService
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.LinkedServiceProperties
    ProvisioningState : Succeeded
    

    Vérifiez que le paramètre Autoriser l’accès aux services Azure est activé pour votre serveur SQL Database.Confirm that Allow access to Azure services setting is turned on for your SQL database server. Pour vérifier et l’activer, procédez comme suit :To verify and turn it on, do the following steps:

    1. Connectez-vous au portail AzureLog in to the Azure portal
    2. Cliquez Plus de services à gauche, puis sur Serveurs SQL dans la catégorie BASES DE DONNÉES.Click More services > on the left, and click SQL servers in the DATABASES category.
    3. Sélectionnez votre serveur dans la liste des serveurs SQL.Select your server in the list of SQL servers.
    4. Dans le panneau du serveur SQL, cliquez sur le lien Afficher les paramètres de pare-feu.On the SQL server blade, click Show firewall settings link.
    5. Dans le panneau Paramètres de pare-feu, cliquez sur ACTIVER pour Autoriser l’accès aux services Azure.In the Firewall settings blade, click ON for Allow access to Azure services.
    6. Cliquez sur Save dans la barre d'outils.Click Save on the toolbar.

Créez les jeux de donnéesCreate datasets

Dans l’étape précédente, vous avez créé des services pour lier votre compte de stockage Azure et une base de données Azure SQL à votre fabrique de données.In the previous step, you created linked services to link your Azure Storage account and Azure SQL database to your data factory. Dans cette étape, vous définissez deux jeux de données nommés InputDataset et OutputDataset, qui représentent les données d’entrée/sortie stockées dans les banques de données référencées par AzureStorageLinkedService et AzureSqlLinkedService, respectivement.In this step, you define two datasets named InputDataset and OutputDataset that represent input and output data that is stored in the data stores referred by AzureStorageLinkedService and AzureSqlLinkedService respectively.

Le service lié Stockage Azure spécifie la chaîne de connexion que le service Data Factory utilise au moment de l’exécution pour se connecter à votre compte de stockage Azure.The Azure storage linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure storage account. Le jeu de données blob d’entrée (InputDataset) spécifie quant à lui le conteneur et le dossier qui contient les données d’entrée.And, the input blob dataset (InputDataset) specifies the container and the folder that contains the input data.

De même, le service lié Azure SQL Database spécifie la chaîne de connexion que le service Data Factory utilise au moment de l’exécution pour se connecter à votre base de données Azure SQL.Similarly, the Azure SQL Database linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure SQL database. Et le jeu de données de la table SQL de sortie (OututDataset) spécifie la table de la base de données dans laquelle les données du stockage Blob sont copiées.And, the output SQL table dataset (OututDataset) specifies the table in the database to which the data from the blob storage is copied.

Créer un jeu de données d’entréeCreate an input dataset

Dans cette étape, vous créez un jeu de données nommé InputDataset qui pointe vers un fichier blob (emp.txt) dans le dossier racine d’un conteneur d’objets blob (adftutorial) du stockage Azure représenté par le service lié AzureStorageLinkedService.In this step, you create a dataset named InputDataset that points to a blob file (emp.txt) in the root folder of a blob container (adftutorial) in the Azure Storage represented by the AzureStorageLinkedService linked service. Si vous ne spécifiez pas de valeur pour fileName (ou si vous ignorez ce paramètre), les données de tous les objets blob du dossier d’entrée sont copiées dans la destination.If you don't specify a value for the fileName (or skip it), data from all blobs in the input folder are copied to the destination. Dans ce didacticiel, vous spécifiez une valeur pour fileName.In this tutorial, you specify a value for the fileName.

  1. Créez un fichier JSON nommé InputDataset.json dans le dossier C:\ADFGetStartedPSH avec le contenu suivant :Create a JSON file named InputDataset.json in the C:\ADFGetStartedPSH folder, with the following content:

    {
        "name": "InputDataset",
        "properties": {
            "structure": [
                {
                    "name": "FirstName",
                    "type": "String"
                },
                {
                    "name": "LastName",
                    "type": "String"
                }
            ],
            "type": "AzureBlob",
            "linkedServiceName": "AzureStorageLinkedService",
            "typeProperties": {
                "fileName": "emp.txt",
                "folderPath": "adftutorial/",
                "format": {
                    "type": "TextFormat",
                    "columnDelimiter": ","
                }
            },
            "external": true,
            "availability": {
                "frequency": "Hour",
                "interval": 1
            }
        }
     }
    

    Le tableau suivant décrit les propriétés JSON utilisées dans l'extrait de code :The following table provides descriptions for the JSON properties used in the snippet:

    PropriétéProperty DescriptionDescription
    typetype La propriété du type est définie sur AzureBlob, car les données se trouvent dans le stockage blob Azure.The type property is set to AzureBlob because data resides in an Azure blob storage.
    linkedServiceNamelinkedServiceName Fait référence au service AzureStorageLinkedService que vous avez créé précédemment.Refers to the AzureStorageLinkedService that you created earlier.
    folderPathfolderPath Spécifie le conteneur d’objets blob et le dossier qui contient les objets blob d’entrée.Specifies the blob container and the folder that contains input blobs. Dans ce didacticiel, adftutorial est le conteneur d’objets blob et folder est le dossier racine.In this tutorial, adftutorial is the blob container and folder is the root folder.
    fileNamefileName Cette propriété est facultative.This property is optional. Si vous omettez cette propriété, tous les fichiers spécifiés dans le paramètre folderPath sont récupérés.If you omit this property, all files from the folderPath are picked. Dans ce didacticiel, emp.txt est spécifié pour le paramètre fileName, si bien que seul ce fichier est récupéré pour le traitement.In this tutorial, emp.txt is specified for the fileName, so only that file is picked up for processing.
    format -> typeformat -> type Le fichier d’entrée étant au format texte, nous utilisons TextFormat.The input file is in the text format, so we use TextFormat.
    columnDelimitercolumnDelimiter Les colonnes du fichier d’entrée sont délimitées par une virgule (,) .The columns in the input file are delimited by comma character (,).
    frequency/intervalfrequency/interval La fréquence est définie sur Heure et l’intervalle est 1, ce qui signifie que les segments d’entrée sont disponibles toutes les heures.The frequency is set to Hour and interval is set to 1, which means that the input slices are available hourly. En d’autres termes, le service Data Factory recherche les données d’entrée toutes les heures dans le dossier racine du conteneur d’objets blob (adftutorial) que vous avez spécifié.In other words, the Data Factory service looks for input data every hour in the root folder of blob container (adftutorial) you specified. Il recherche des données entre les heures de début et de fin du pipeline, pas avant ni après.It looks for the data within the pipeline start and end times, not before or after these times.
    externalexternal Cette propriété a la valeur true si les données ne sont pas générées par ce pipeline.This property is set to true if the data is not generated by this pipeline. Dans ce didacticiel, les données d’entrée sont dans le fichier emp.txt, qui n’est pas généré par ce pipeline. Nous définissons donc cette propriété sur true.The input data in this tutorial is in the emp.txt file, which is not generated by this pipeline, so we set this property to true.

    Pour plus d’informations sur ces propriétés JSON, voir Connecteur de stockage Blob Azure.For more information about these JSON properties, see Azure Blob connector article.

  2. Exécutez la commande suivante pour créer le jeu de données Data Factory :Run the following command to create the Data Factory dataset.

    New-AzDataFactoryDataset $df -File .\InputDataset.json
    

    Voici l'exemple de sortie :Here is the sample output:

    DatasetName       : InputDataset
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Availability      : Microsoft.Azure.Management.DataFactories.Common.Models.Availability
    Location          : Microsoft.Azure.Management.DataFactories.Models.AzureBlobDataset
    Policy            : Microsoft.Azure.Management.DataFactories.Common.Models.Policy
    Structure         : {FirstName, LastName}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DatasetProperties
    ProvisioningState : Succeeded
    

Créer un jeu de données de sortieCreate an output dataset

Dans cette partie de l’étape, vous créez un jeu de données de sortie nommé OutputDataset.In this part of the step, you create an output dataset named OutputDataset. Ce jeu de données pointe vers une table SQL de la base de données Azure SQL représentée par AzureSqlLinkedService.This dataset points to a SQL table in the Azure SQL database represented by AzureSqlLinkedService.

  1. Créez un fichier JSON nommé OutputDataset.json dans le dossier C:\ADFGetStartedPSH avec le contenu suivant :Create a JSON file named OutputDataset.json in the C:\ADFGetStartedPSH folder with the following content:

    {
        "name": "OutputDataset",
        "properties": {
            "structure": [
                {
                    "name": "FirstName",
                    "type": "String"
                },
                {
                    "name": "LastName",
                    "type": "String"
                }
            ],
            "type": "AzureSqlTable",
            "linkedServiceName": "AzureSqlLinkedService",
            "typeProperties": {
                "tableName": "emp"
            },
            "availability": {
                "frequency": "Hour",
                "interval": 1
            }
        }
    }
    

    Le tableau suivant décrit les propriétés JSON utilisées dans l'extrait de code :The following table provides descriptions for the JSON properties used in the snippet:

    PropriétéProperty DescriptionDescription
    typetype La propriété du type est définie sur AzureSqlTable car les données sont copiées dans une table de la base de données Azure SQL.The type property is set to AzureSqlTable because data is copied to a table in an Azure SQL database.
    linkedServiceNamelinkedServiceName Fait référence au service AzureSqlLinkedService que vous avez créé précédemment.Refers to the AzureSqlLinkedService that you created earlier.
    tableNametableName Spécifie la table dans laquelle les données sont copiées.Specified the table to which the data is copied.
    frequency/intervalfrequency/interval La fréquence est définie sur Heure et l’intervalle sur 1, ce qui signifie que les tranches de sortie sont produites toutes les heures entre les heures de début et de fin du pipeline, pas avant ni après.The frequency is set to Hour and interval is 1, which means that the output slices are produced hourly between the pipeline start and end times, not before or after these times.

    La table emp de la base de données contient trois colonnes : ID, FirstName et LastName.There are three columns – ID, FirstName, and LastName – in the emp table in the database. ID étant une colonne d’identité, il vous suffit de spécifier FirstName et LastName.ID is an identity column, so you need to specify only FirstName and LastName here.

    Pour plus d’informations sur ces propriétés JSON, consultez l’article Connecteur SQL Azure.For more information about these JSON properties, see Azure SQL connector article.

  2. Exécutez la commande suivante pour créer le jeu de données de fabrique de données.Run the following command to create the data factory dataset.

    New-AzDataFactoryDataset $df -File .\OutputDataset.json
    

    Voici l'exemple de sortie :Here is the sample output:

    DatasetName       : OutputDataset
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Availability      : Microsoft.Azure.Management.DataFactories.Common.Models.Availability
    Location          : Microsoft.Azure.Management.DataFactories.Models.AzureSqlTableDataset
    Policy            :
    Structure         : {FirstName, LastName}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DatasetProperties
    ProvisioningState : Succeeded
    

Créer un pipelineCreate a pipeline

Dans cette étape, vous créez un pipeline avec une activité de copie qui utilise InputDataset en entrée et OutputDataset en sortie.In this step, you create a pipeline with a copy activity that uses InputDataset as an input and OutputDataset as an output.

Le jeu de données de sortie pilote actuellement la planification.Currently, output dataset is what drives the schedule. Dans ce didacticiel, le jeu de données de sortie est configuré pour produire une tranche par heure.In this tutorial, output dataset is configured to produce a slice once an hour. Les heures de début et de fin du pipeline sont distantes d’une journée, soit 24 heures.The pipeline has a start time and end time that are one day apart, which is 24 hours. Par conséquent, 24 tranches de jeu de données de sortie sont générées par le pipeline.Therefore, 24 slices of output dataset are produced by the pipeline.

  1. Créez un fichier JSON nommé ADFTutorialPipeline.json dans le dossier C:\ADFGetStartedPSH avec le contenu suivant :Create a JSON file named ADFTutorialPipeline.json in the C:\ADFGetStartedPSH folder, with the following content:

    {
      "name": "ADFTutorialPipeline",
      "properties": {
        "description": "Copy data from a blob to Azure SQL table",
        "activities": [
          {
            "name": "CopyFromBlobToSQL",
            "type": "Copy",
            "inputs": [
              {
                "name": "InputDataset"
              }
            ],
            "outputs": [
              {
                "name": "OutputDataset"
              }
            ],
            "typeProperties": {
              "source": {
                "type": "BlobSource"
              },
              "sink": {
                "type": "SqlSink",
                "writeBatchSize": 10000,
                "writeBatchTimeout": "60:00:00"
              }
            },
            "Policy": {
              "concurrency": 1,
              "executionPriorityOrder": "NewestFirst",
              "retry": 0,
              "timeout": "01:00:00"
            }
          }
        ],
        "start": "2017-05-11T00:00:00Z",
        "end": "2017-05-12T00:00:00Z"
      }
    } 
    

    Notez les points suivants :Note the following points:

    • Dans la section des activités, il existe une seule activité dont le type a la valeur Copy.In the activities section, there is only one activity whose type is set to Copy. Pour plus d’informations sur l’activité de copie, consultez Activités de déplacement des données.For more information about the copy activity, see data movement activities. Dans les solutions Data Factory, vous pouvez également utiliser Activités de transformation des données.In Data Factory solutions, you can also use data transformation activities.

    • L’entrée de l’activité est définie sur InputDataset et sa sortie, sur OutputDataset.Input for the activity is set to InputDataset and output for the activity is set to OutputDataset.

    • Dans la section typeProperties, BlobSource est spécifié en tant que type de source et SqlSink, en tant que type de récepteur.In the typeProperties section, BlobSource is specified as the source type and SqlSink is specified as the sink type. Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs pour l’activité de copie, consultez Magasins de données pris en charge.For a complete list of data stores supported by the copy activity as sources and sinks, see supported data stores. Pour apprendre à utiliser un magasin de données pris en charge spécifique en tant que source/récepteur, cliquez sur le lien dans le tableau.To learn how to use a specific supported data store as a source/sink, click the link in the table.

      Remplacez la valeur de la propriété start par le jour actuel et la valeur end, par le jour suivant.Replace the value of the start property with the current day and end value with the next day. Si vous le souhaitez, spécifiez uniquement la date et ignorez l'heure.You can specify only the date part and skip the time part of the date time. Par exemple, « 2016-02-03 », qui équivaut à « 2016-02-03T00:00:00Z ».For example, "2016-02-03", which is equivalent to "2016-02-03T00:00:00Z"

      Les dates/heures de début et de fin doivent toutes deux être au format ISO.Both start and end datetimes must be in ISO format. Par exemple : 2016-10-14T16:32:41Z.For example: 2016-10-14T16:32:41Z. L’heure de fin ( end ) est facultative, mais nous allons l’utiliser dans ce didacticiel.The end time is optional, but we use it in this tutorial.

      Si vous ne spécifiez aucune valeur pour la propriété end, cette dernière est calculée comme suit : « start + 48 heures ».If you do not specify value for the end property, it is calculated as "start + 48 hours". Pour exécuter le pipeline indéfiniment, spécifiez 9999-09-09 comme valeur pour la propriété end.To run the pipeline indefinitely, specify 9999-09-09 as the value for the end property.

      Dans l’exemple ci-dessus, il existe 24 tranches de données, car une tranche de données est générée toutes les heures.In the preceding example, there are 24 data slices as each data slice is produced hourly.

      Pour obtenir une description des propriétés JSON dans une définition de pipeline, consultez l’article Créer des pipelines.For descriptions of JSON properties in a pipeline definition, see create pipelines article. Pour obtenir une description des propriétés JSON dans une définition d’activité de copie, consultez Activités de déplacement des données.For descriptions of JSON properties in a copy activity definition, see data movement activities. Pour obtenir une description des propriétés JSON prises en charge par BlobSource, consultez l’article Connecteur de stockage Blob Azure.For descriptions of JSON properties supported by BlobSource, see Azure Blob connector article. Pour obtenir une description des propriétés JSON prises en charge par SqlSink, consultez l’article Connecteur Azure SQL Database.For descriptions of JSON properties supported by SqlSink, see Azure SQL Database connector article.

  2. Exécutez la commande suivante pour créer la table de fabrique de données.Run the following command to create the data factory table.

    New-AzDataFactoryPipeline $df -File .\ADFTutorialPipeline.json
    

    Voici l'exemple de sortie :Here is the sample output:

    PipelineName      : ADFTutorialPipeline
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.PipelinePropertie
    ProvisioningState : Succeeded
    

Félicitations !Congratulations! Vous avez créé une fabrique de données Azure, avec un pipeline permettant de copier les données d’un stockage Blob Azure vers une base de données Azure SQL.You have successfully created an Azure data factory with a pipeline to copy data from an Azure blob storage to an Azure SQL database.

Surveiller le pipelineMonitor the pipeline

Au cours de cette étape, vous utilisez Azure PowerShell pour surveiller ce qui se passe dans une fabrique de données Azure.In this step, you use Azure PowerShell to monitor what’s going on in an Azure data factory.

  1. Remplacez <DataFactoryName> par le nom de votre fabrique de données, exécutez Get-AzDataFactory et affectez la sortie à une variable $df.Replace <DataFactoryName> with the name of your data factory and run Get-AzDataFactory, and assign the output to a variable $df.

    $df=Get-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name <DataFactoryName>
    

    Par exemple :For example:

    $df=Get-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name ADFTutorialDataFactoryPSH0516
    

    Ensuite, exécutez le contenu de $df pour afficher la sortie suivante :Then, run print the contents of $df to see the following output:

    PS C:\ADFGetStartedPSH> $df
    
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DataFactoryId     : 6f194b34-03b3-49ab-8f03-9f8a7b9d3e30
    ResourceGroupName : ADFTutorialResourceGroup
    Location          : West US
    Tags              : {}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DataFactoryProperties
    ProvisioningState : Succeeded
    
  2. Exécutez Get-AzDataFactorySlice pour obtenir des détails sur toutes les tranches de OutputDatabase, qui correspond au jeu de données de sortie du pipeline.Run Get-AzDataFactorySlice to get details about all slices of the OutputDataset, which is the output dataset of the pipeline.

    Get-AzDataFactorySlice $df -DatasetName OutputDataset -StartDateTime 2017-05-11T00:00:00Z
    

    Ce paramètre doit correspondre à la valeur Start dans le pipeline JSON.This setting should match the Start value in the pipeline JSON. Vous devez voir 24 tranches, une pour chaque heure entre 12: 00 du jour actuel et 12: 00 le lendemain.You should see 24 slices, one for each hour from 12 AM of the current day to 12 AM of the next day.

    Voici trois exemples de tranches de la sortie :Here are three sample slices from the output:

    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 11:00:00 PM
    End               : 5/12/2017 12:00:00 AM
    RetryCount        : 0
    State             : Ready
    SubState          :
    LatencyStatus     :
    LongRetryCount    : 0
    
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 9:00:00 PM
    End               : 5/11/2017 10:00:00 PM
    RetryCount        : 0
    State             : InProgress
    SubState          :
    LatencyStatus     :
    LongRetryCount    : 0   
    
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 8:00:00 PM
    End               : 5/11/2017 9:00:00 PM
    RetryCount        : 0
    State             : Waiting
    SubState          : ConcurrencyLimit
    LatencyStatus     :
    LongRetryCount    : 0
    
  3. Exécutez Get-AzDataFactoryRun pour obtenir les détails des exécutions d’activité pour un segment spécifique.Run Get-AzDataFactoryRun to get the details of activity runs for a specific slice. Copiez la valeur date-heure à partir de la sortie de la commande précédente pour spécifier la valeur du paramètre StartDateTime.Copy the date-time value from the output of the previous command to specify the value for the StartDateTime parameter.

    Get-AzDataFactoryRun $df -DatasetName OutputDataset -StartDateTime "5/11/2017 09:00:00 PM"
    

    Voici l'exemple de sortie :Here is the sample output:

    Id                  : c0ddbd75-d0c7-4816-a775-704bbd7c7eab_636301332000000000_636301368000000000_OutputDataset
    ResourceGroupName   : ADFTutorialResourceGroup
    DataFactoryName     : ADFTutorialDataFactoryPSH0516
    DatasetName         : OutputDataset
    ProcessingStartTime : 5/16/2017 8:00:33 PM
    ProcessingEndTime   : 5/16/2017 8:01:36 PM
    PercentComplete     : 100
    DataSliceStart      : 5/11/2017 9:00:00 PM
    DataSliceEnd        : 5/11/2017 10:00:00 PM
    Status              : Succeeded
    Timestamp           : 5/16/2017 8:00:33 PM
    RetryAttempt        : 0
    Properties          : {}
    ErrorMessage        :
    ActivityName        : CopyFromBlobToSQL
    PipelineName        : ADFTutorialPipeline
    Type                : Copy  
    

Pour obtenir une documentation complète sur les applets de commande Data Factory, consultez la Référence des applets de commande Data Factory.For comprehensive documentation on Data Factory cmdlets, see Data Factory Cmdlet Reference.

RésuméSummary

Dans ce tutoriel, vous avez créé une fabrique de données Azure pour copier des données d'objet blob Azure dans une base de données Azure SQL.In this tutorial, you created an Azure data factory to copy data from an Azure blob to an Azure SQL database. Vous avez utilisé PowerShell pour créer la fabrique de données, les services liés, les jeux de données et un pipeline.You used PowerShell to create the data factory, linked services, datasets, and a pipeline. Voici les étapes de premier niveau que vous avez effectuées dans ce didacticiel :Here are the high-level steps you performed in this tutorial:

  1. Création d’une fabrique de donnéesAzure.Created an Azure data factory.

  2. Création de services liés:Created linked services:

    a.a. Un service lié Stockage Azure pour lier votre compte Stockage Azure contenant des données d’entrée.An Azure Storage linked service to link your Azure storage account that holds input data.
    b.b. Un service lié Azure SQL pour lier votre base de données SQL contenant les données de sortie.An Azure SQL linked service to link your SQL database that holds the output data.

  3. Création de jeux de données qui décrivent les données d’entrée et de sortie des pipelines.Created datasets that describe input data and output data for pipelines.

  4. Création d’un pipeline avec une activité de copie avec BlobSource en tant que source et SqlSink en tant que récepteur.Created a pipeline with Copy Activity, with BlobSource as the source and SqlSink as the sink.

Étapes suivantesNext steps

Dans ce tutoriel, vous avez utilisé le stockage Blob Azure comme magasin de données source et une base de données Azure SQL comme banque de données de destination dans une opération de copie.In this tutorial, you used Azure blob storage as a source data store and an Azure SQL database as a destination data store in a copy operation. Le tableau ci-dessous contient la liste des magasins de données pris en charge en tant que sources et destinations par l’activité de copie :The following table provides a list of data stores supported as sources and destinations by the copy activity:

CatégorieCategory Banque de donnéesData store Prise en charge en tant que sourceSupported as a source Prise en charge en tant que récepteurSupported as a sink
Microsoft AzureAzure stockage d’objets blob AzureAzure Blob storage
  Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
  Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
  Azure SQL DatabaseAzure SQL Database
  Azure SQL Data WarehouseAzure SQL Data Warehouse
  Index Recherche AzureAzure Search Index
  Stockage Table AzureAzure Table storage
Bases de donnéesDatabases Amazon RedshiftAmazon Redshift
  DB2*DB2*
  MySQL*MySQL*
  Oracle*Oracle*
  PostgreSQL*PostgreSQL*
  SAP Business Warehouse*SAP Business Warehouse*
  SAP HANA*SAP HANA*
  SQL Server*SQL Server*
  Sybase*Sybase*
  Teradata*Teradata*
NoSQLNoSQL Cassandra*Cassandra*
  MongoDB*MongoDB*
FileFile Amazon S3Amazon S3
  Système de fichiers*File System*
  FTPFTP
  HDFS*HDFS*
  SFTPSFTP
AutresOthers HTTP génériqueGeneric HTTP
  OData génériqueGeneric OData
  ODBC générique*Generic ODBC*
  SalesforceSalesforce
  Table web (table HTML)Web Table (table from HTML)

Pour découvrir comment copier des données vers/depuis un magasin de données, cliquez sur le lien du magasin de données dans le tableau.To learn about how to copy data to/from a data store, click the link for the data store in the table.