Copier des données vers et depuis Data Lake Storage Gen1 à l’aide de Data FactoryCopy data to and from Data Lake Storage Gen1 by using Data Factory

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 Azure Data Lake Storage Gen1 connector in V2 (Connecteur Azure Data Lake Storage Gen1 dans V2).If you are using the current version of the Data Factory service, see Azure Data Lake Storage Gen1 connector in V2.

Cet article explique comment utiliser l’activité de copie dans Azure Data Factory pour déplacer des données vers et depuis Azure Data Lake Storage Gen1 (appelé auparavant Azure Data Lake Store).This article explains how to use Copy Activity in Azure Data Factory to move data to and from Azure Data Lake Storage Gen1 (previously known as Azure Data Lake Store). Il s’appuie sur l’article Activités de déplacement des données, une vue d’ensemble du déplacement de données avec l’activité de copie.It builds on the Data movement activities article, an overview of data movement with Copy Activity.

Scénarios pris en chargeSupported scenarios

Vous pouvez copier les données à partir d’Azure Data Lake Store dans les magasins de données suivants :You can copy data from Azure Data Lake Store to the following data stores:

CatégorieCategory Banque de donnéesData store
AzureAzure stockage d’objets blob AzureAzure Blob storage
Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
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 SQL ServerSQL Server
OracleOracle
FichierFile Système de fichiersFile system

Vous pouvez copier les données des magasins de données suivants dans Azure Data Lake Store :You can copy data from the following data stores to Azure Data Lake Store:

CatégorieCategory Banque de donnéesData store
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
Stockage Table AzureAzure Table storage
Bases de donnéesDatabases Amazon RedshiftAmazon Redshift
DB2DB2
MySQLMySQL
OracleOracle
PostgreSQLPostgreSQL
SAP Business WarehouseSAP Business Warehouse
SAP HANASAP HANA
SQL ServerSQL Server
SybaseSybase
TeradataTeradata
NosqlNoSQL CassandraCassandra
MongoDBMongoDB
FichierFile Amazon S3Amazon S3
Système de fichiersFile system
FTPFTP
HDFSHDFS
SFTPSFTP
AutresOthers HTTP génériqueGeneric HTTP
OData génériqueGeneric OData
ODBC génériqueGeneric ODBC
SalesforceSalesforce
Table web (table HTML)Web table (table from HTML)

Notes

Créez un compte Data Lake Store avant de créer un pipeline avec activité de copie.Create a Data Lake Store account before creating a pipeline with Copy Activity. Pour plus d’informations, consultez Prise en main d’Azure Data Lake Store.For more information, see Get started with Azure Data Lake Store.

Types d’authentification pris en chargeSupported authentication types

Le connecteur Data Lake Store prend en charge les types d’authentification suivants :The Data Lake Store connector supports these authentication types:

  • Authentification d’un principal du serviceService principal authentication
  • Utilisation de l’authentification des informations d’identification utilisateur (OAuth)User credential (OAuth) authentication

Nous vous recommandons d’utiliser l’authentification de principal du service, en particulier pour une copie planifiée des données.We recommend that you use service principal authentication, especially for a scheduled data copy. Un comportement d’expiration de jeton peut se produire avec l’authentification par informations d’identification utilisateur.Token expiration behavior can occur with user credential authentication. Pour les détails de configuration, consultez la section Propriétés du service lié.For configuration details, see the Linked service properties section.

Prise en mainGet started

Vous pouvez créer un pipeline avec une activité de copie qui déplace les données vers ou à partir d’Azure Data Lake Store à l’aide de différents outils/API.You can create a pipeline with a copy activity that moves data to/from an Azure Data Lake Store by using different tools/APIs.

Le moyen le plus simple de créer un pipeline pour copier des données consiste à utiliser l’Assistant de copie.The easiest way to create a pipeline to copy data is to use the Copy Wizard. Pour suivre un tutoriel sur la création d’un pipeline à l’aide de l’Assistant de copie, consultez Tutoriel : Créer un pipeline à l’aide de l’Assistant de copie.For a tutorial on creating a pipeline by using the Copy Wizard, see Tutorial: Create a pipeline using Copy Wizard.

Vous pouvez également utiliser les outils suivants pour créer un pipeline : Visual Studio, Azure PowerShell, modèle Azure Resource Manager, .NET API et REST API.You can also use the following tools to create a pipeline: Visual Studio, Azure PowerShell, Azure Resource Manager template, .NET API, and REST API. Pour obtenir des instructions détaillées sur la création d’un pipeline avec une activité de copie, consultez le didacticiel sur l’activité de copie.See Copy activity tutorial for step-by-step instructions to create a pipeline with a copy activity.

Que vous utilisiez des outils ou des API, la création d’un pipeline qui déplace les données d’un magasin de données source vers un magasin de données récepteur implique les étapes suivantes :Whether you use the tools or APIs, you perform the following steps to create a pipeline that moves data from a source data store to a sink data store:

  1. Création d'une fabrique de données.Create a data factory. Une fabrique de données peut contenir un ou plusieurs pipelines.A data factory may contain one or more pipelines.
  2. Création de services liés pour lier les magasins de données d’entrée et de sortie à votre fabrique de données.Create linked services to link input and output data stores to your data factory. Par exemple, si vous copiez des données d’un stockage Blob Azure dans Azure Data Lake Store, vous créez deux services liés pour lier votre compte de stockage Azure et Azure Data Lake Store à votre fabrique de données.For example, if you are copying data from an Azure blob storage to an Azure Data Lake Store, you create two linked services to link your Azure storage account and Azure Data Lake store to your data factory. Pour plus d’informations sur les propriétés de service lié qui sont spécifiques à Azure Data Lake Store, consultez la section Propriétés du service lié.For linked service properties that are specific to Azure Data Lake Store, see linked service properties section.
  3. Création de jeux de données pour représenter les données d’entrée et de sortie de l’opération de copie.Create datasets to represent input and output data for the copy operation. Dans l’exemple mentionné à la dernière étape, vous créez un jeu de données pour spécifier le conteneur d’objets blob et le dossier qui contient les données d’entrée.In the example mentioned in the last step, you create a dataset to specify the blob container and folder that contains the input data. Ensuite, vous créez un autre jeu de données pour spécifier le chemin du dossier/fichier dans l’instance de Data Lake Store qui contient les données copiées à partir du stockage Blob.And, you create another dataset to specify the folder and file path in the Data Lake store that holds the data copied from the blob storage. Pour plus d’informations sur les propriétés de jeu de données qui sont spécifiques à Azure Data Lake Store, consultez la section Propriétés du jeu de données.For dataset properties that are specific to Azure Data Lake Store, see dataset properties section.
  4. Création d’un pipeline avec une activité de copie qui utilise un jeu de données en tant qu’entrée et un jeu de données en tant que sortie.Create a pipeline with a copy activity that takes a dataset as an input and a dataset as an output. Dans l’exemple mentionné plus haut, vous utilisez BlobSource comme source et AzureDataLakeStoreSink comme récepteur pour l’activité de copie.In the example mentioned earlier, you use BlobSource as a source and AzureDataLakeStoreSink as a sink for the copy activity. De la même façon, si vous copiez des données d’Azure Data Lake Store vers le Stockage Blob Azure, vous utilisez AzureDataLakeStoreSource et BlobSink dans l’activité de copie.Similarly, if you are copying from Azure Data Lake Store to Azure Blob Storage, you use AzureDataLakeStoreSource and BlobSink in the copy activity. Pour plus d’informations sur les propriétés de l’activité de copie qui sont spécifiques à Azure Data Lake Store, consultez la section Propriétés de l’activité de copie.For copy activity properties that are specific to Azure Data Lake Store, see copy activity properties section. Pour plus d’informations sur l’utilisation d’un magasin de données en tant que source ou que récepteur, cliquez sur le lien correspondant à votre magasin de données dans la section précédente.For details on how to use a data store as a source or a sink, click the link in the previous section for your data store.

Lorsque vous utilisez l’Assistant, les définitions JSON de ces entités Data Factory (services liés, jeux de données et pipeline) sont automatiquement créées pour vous.When you use the wizard, JSON definitions for these Data Factory entities (linked services, datasets, and the pipeline) are automatically created for you. Lorsque vous utilisez les outils/API (à l’exception de l’API .NET), vous devez définir ces entités Data Factory à l’aide du format JSON.When you use tools/APIs (except .NET API), you define these Data Factory entities by using the JSON format. Pour obtenir des exemples comportant des définitions JSON pour les entités Data Factory utilisées pour copier les données vers ou à partir d’Azure Data Lake Store, consultez la section Exemples JSON de cet article.For samples with JSON definitions for Data Factory entities that are used to copy data to/from an Azure Data Lake Store, see JSON examples section of this article.

Les sections suivantes offrent des informations détaillées sur les propriétés JSON utilisées pour définir les entités Data Factory propres à Data Lake Store.The following sections provide details about JSON properties that are used to define Data Factory entities specific to Data Lake Store.

Propriétés du service liéLinked service properties

Un service lié lie un magasin de données à une fabrique de données.A linked service links a data store to a data factory. Pour lier votre magasin de données Data Lake Store à votre fabrique de données, vous devez créer un service lié de type AzureDataLakeStore.You create a linked service of type AzureDataLakeStore to link your Data Lake Store data to your data factory. Le tableau suivant décrit les éléments JSON spécifiques pour des services Data Lake Store liés.The following table describes JSON elements specific to Data Lake Store linked services. Vous pouvez choisir entre une authentification par principal de service et par informations d’identification utilisateur.You can choose between service principal and user credential authentication.

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type doit être définie sur : AzureDataLakeStore.The type property must be set to AzureDataLakeStore. OUIYes
dataLakeStoreUridataLakeStoreUri Informations à propos du compte Azure Data Lake Store.Information about the Azure Data Lake Store account. Cette information prend un des formats suivants : https://[accountname].azuredatalakestore.net/webhdfs/v1 ou adl://[accountname].azuredatalakestore.net/.This information takes one of the following formats: https://[accountname].azuredatalakestore.net/webhdfs/v1 or adl://[accountname].azuredatalakestore.net/. OUIYes
subscriptionIdsubscriptionId ID d’abonnement Azure auquel appartient le compte Data Lake Store.Azure subscription ID to which the Data Lake Store account belongs. Requis pour le récepteurRequired for sink
resourceGroupNameresourceGroupName Nom du groupe de ressources Azure auquel appartient le compte Data Lake Store.Azure resource group name to which the Data Lake Store account belongs. Requis pour le récepteurRequired for sink

Pour utiliser l’authentification d’un principal du service, inscrivez une entité d’application dans Azure Active Directory (Azure AD) et lui accorder l’accès à Data Lake Store.To use service principal authentication, register an application entity in Azure Active Directory (Azure AD) and grant it the access to Data Lake Store. Consultez la page Authentification de service à service pour des instructions détaillées.For detailed steps, see Service-to-service authentication. Prenez note des valeurs suivantes, qui vous permettent de définir le service lié :Make note of the following values, which you use to define the linked service:

  • ID de l'applicationApplication ID
  • Clé de l'applicationApplication key
  • ID clientTenant ID

Important

Veillez à accorder l’autorisation appropriée au principal de service dans Azure Data Lake Store :Make sure you grant the service principal proper permission in Azure Data Lake Store:

  • Pour utiliser Data Lake Store en tant que source, accordez au moins l’autorisation d’accès aux données Lecture + Exécution pour répertorier et copier le contenu d’un dossier, ou l’autorisation Lecture pour copier un seul fichier.To use Data Lake Store as source, grant at least Read + Execute data access permission to list and copy the contents of a folder, or Read permission to copy a single file. Aucune exigence sur le contrôle d’accès au niveau du compte.No requirement on account level access control.
  • Pour utiliser Data Lake Store en tant que récepteur, accordez au moins l’autorisation d’accès aux données Écriture + Exécution pour créer des éléments enfants dans le dossier.To use Data Lake Store as sink, grant at least Write + Execute data access permission to create child items in the folder. Et si vous utilisez Azure IR pour autoriser la copie (la source et le récepteur sont tous les deux dans le cloud) et permettre la détection par Data Factory de la région de Data Lake Store, accordez au moins le rôle Lecteur dans le contrôle d’accès au compte (IAM).And if you use Azure IR to empower copy (both source and sink are in cloud), in order to let Data Factory detect Data Lake Store's region, grant at least Reader role in account access control (IAM). Si vous souhaitez éviter ce rôle IAM, choisissez de spécifier executionLocation avec l’emplacement de votre Data Lake Store dans l’activité de copie.If you want to avoid this IAM role, specify executionLocation with the location of your Data Lake Store in copy activity.
  • Si vous utilisez l’Assistant Copie pour créer des pipelines, accordez au moins le rôle Lecteur dans le contrôle d’accès au compte (IAM).If you use Copy Wizard to author pipelines, grant at least Reader role in account access control (IAM). De plus, accordez au moins l’autorisation Lecture + Exécution à la racine de Data Lake Store (« / ») et à ses enfants.Also, grant at least Read + Execute permission to your Data Lake Store root ("/") and its children. Sinon, le message « Les informations d’identification fournies ne sont pas valides » peut s’afficher.Otherwise you might see the message "The credentials provided are invalid."

Utilisez l’authentification par principal de service en spécifiant les propriétés suivantes :Use service principal authentication by specifying the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
servicePrincipalIdservicePrincipalId Spécifiez l’ID client de l’application.Specify the application's client ID. OUIYes
servicePrincipalKeyservicePrincipalKey Spécifiez la clé de l’application.Specify the application's key. OUIYes
clienttenant Spécifiez les informations de locataire (nom de domaine ou ID de locataire) dans lesquels se trouve votre application.Specify the tenant information (domain name or tenant ID) under which your application resides. Vous pouvez le récupérer en pointant la souris dans le coin supérieur droit du portail Azure.You can retrieve it by hovering the mouse in the upper-right corner of the Azure portal. OUIYes

Exemple : Authentification d’un principal de serviceExample: Service principal authentication

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Authentification des informations d’identification utilisateurUser credential authentication

Vous pouvez également utiliser l’authentification des informations d’identification utilisateur pour la copie vers ou à partir de Data Lake Store en spécifiant les propriétés ci-dessous :Alternatively, you can use user credential authentication to copy from or to Data Lake Store by specifying the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
authorizationauthorization Cliquez sur le bouton Autoriser dans Data Factory Editor et saisissez vos informations d’identification, ce qui affecte l’URL d’autorisation générée automatiquement à cette propriété.Click the Authorize button in the Data Factory Editor and enter your credential that assigns the autogenerated authorization URL to this property. OUIYes
sessionIdsessionId ID de session OAuth issu de la session d’autorisation OAuth.OAuth session ID from the OAuth authorization session. Chaque ID de session est unique et ne peut être utilisé qu’une seule fois.Each session ID is unique and can be used only once. Ce paramètre est généré automatiquement lorsque vous utilisez Data Factory Editor.This setting is automatically generated when you use the Data Factory Editor. OUIYes

Important

Veillez à accorder l’autorisation appropriée à l’utilisateur dans Azure Data Lake Store :Make sure you grant the user proper permission in Azure Data Lake Store:

  • Pour utiliser Data Lake Store en tant que source, accordez au moins l’autorisation d’accès aux données Lecture + Exécution pour répertorier et copier le contenu d’un dossier, ou l’autorisation Lecture pour copier un seul fichier.To use Data Lake Store as source, grant at least Read + Execute data access permission to list and copy the contents of a folder, or Read permission to copy a single file. Aucune exigence sur le contrôle d’accès au niveau du compte.No requirement on account level access control.
  • Pour utiliser Data Lake Store en tant que récepteur, accordez au moins l’autorisation d’accès aux données Écriture + Exécution pour créer des éléments enfants dans le dossier.To use Data Lake Store as sink, grant at least Write + Execute data access permission to create child items in the folder. Et si vous utilisez Azure IR pour autoriser la copie (la source et le récepteur sont tous les deux dans le cloud) et permettre la détection par Data Factory de la région de Data Lake Store, accordez au moins le rôle Lecteur dans le contrôle d’accès au compte (IAM).And if you use Azure IR to empower copy (both source and sink are in cloud), in order to let Data Factory detect Data Lake Store's region, grant at least Reader role in account access control (IAM). Si vous souhaitez éviter ce rôle IAM, choisissez de spécifier executionLocation avec l’emplacement de votre Data Lake Store dans l’activité de copie.If you want to avoid this IAM role, specify executionLocation with the location of your Data Lake Store in copy activity.
  • Si vous utilisez l’Assistant Copie pour créer des pipelines, accordez au moins le rôle Lecteur dans le contrôle d’accès au compte (IAM).If you use Copy Wizard to author pipelines, grant at least Reader role in account access control (IAM). De plus, accordez au moins l’autorisation Lecture + Exécution à la racine de Data Lake Store (« / ») et à ses enfants.Also, grant at least Read + Execute permission to your Data Lake Store root ("/") and its children. Sinon, le message « Les informations d’identification fournies ne sont pas valides » peut s’afficher.Otherwise you might see the message "The credentials provided are invalid."

Exemple : Authentification des informations d’identification utilisateurExample: User credential authentication

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "sessionId": "<session ID>",
            "authorization": "<authorization URL>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Expiration du jetonToken expiration

Le code d’autorisation que vous générez à l’aide du bouton Autoriser expire au bout d’un certain temps.The authorization code that you generate by using the Authorize button expires after a certain amount of time. Le message suivant signifie que le jeton d’authentification a expiré :The following message means that the authentication token has expired:

Erreur de l’opération des informations d’identification : invalid_grant - AADSTS70002 : Erreur de validation des informations d’identification.Credential operation error: invalid_grant - AADSTS70002: Error validating credentials. AADSTS70008 : L’autorisation d’accès fournie a expiré ou est révoquée.AADSTS70008: The provided access grant is expired or revoked. ID de trace : d18629e8-af88-43c5-88e3-d8419eb1fca1 ID de corrélation : fac30a0c-6be6-4e02-8d69-a776d2ffefd7 Horodatage : 2015-12-15 21-09-31Z.Trace ID: d18629e8-af88-43c5-88e3-d8419eb1fca1 Correlation ID: fac30a0c-6be6-4e02-8d69-a776d2ffefd7 Timestamp: 2015-12-15 21-09-31Z.

Le tableau suivant présente les délais d’expiration associés aux différents types de comptes d’utilisateur :The following table shows the expiration times of different types of user accounts:

Type d’utilisateurUser type Expire aprèsExpires after
Comptes d’utilisateurs non gérés par Azure Active Directory (par exemple @hotmail.com ou @live.com)User accounts not managed by Azure Active Directory (for example, @hotmail.com or @live.com) 12 heures12 hours
Comptes d’utilisateurs gérés par Azure Active DirectoryUsers accounts managed by Azure Active Directory 14 jours après la dernière exécution de tranche de données14 days after the last slice run

90 jours, si une tranche basée sur un service lié OAuth est exécutée au moins une fois tous les 14 jours90 days, if a slice based on an OAuth-based linked service runs at least once every 14 days

Si vous modifiez votre mot de passe avant cette date d’expiration du jeton, le jeton expirera immédiatement.If you change your password before the token expiration time, the token expires immediately. Vous verrez le message mentionné précédemment dans cette section.You will see the message mentioned earlier in this section.

Vous pouvez autoriser à nouveau le compte à l’aide du bouton Autoriser à l’expiration du jeton, puis redéployer le service lié.You can reauthorize the account by using the Authorize button when the token expires to redeploy the linked service. Vous pouvez également générer des valeurs pour les propriétés sessionId et authorization à l’aide du code suivant :You can also generate values for the sessionId and authorization properties programmatically by using the following code:

if (linkedService.Properties.TypeProperties is AzureDataLakeStoreLinkedService ||
    linkedService.Properties.TypeProperties is AzureDataLakeAnalyticsLinkedService)
{
    AuthorizationSessionGetResponse authorizationSession = this.Client.OAuth.Get(this.ResourceGroupName, this.DataFactoryName, linkedService.Properties.Type);

    WindowsFormsWebAuthenticationDialog authenticationDialog = new WindowsFormsWebAuthenticationDialog(null);
    string authorization = authenticationDialog.AuthenticateAAD(authorizationSession.AuthorizationSession.Endpoint, new Uri("urn:ietf:wg:oauth:2.0:oob"));

    AzureDataLakeStoreLinkedService azureDataLakeStoreProperties = linkedService.Properties.TypeProperties as AzureDataLakeStoreLinkedService;
    if (azureDataLakeStoreProperties != null)
    {
        azureDataLakeStoreProperties.SessionId = authorizationSession.AuthorizationSession.SessionId;
        azureDataLakeStoreProperties.Authorization = authorization;
    }

    AzureDataLakeAnalyticsLinkedService azureDataLakeAnalyticsProperties = linkedService.Properties.TypeProperties as AzureDataLakeAnalyticsLinkedService;
    if (azureDataLakeAnalyticsProperties != null)
    {
        azureDataLakeAnalyticsProperties.SessionId = authorizationSession.AuthorizationSession.SessionId;
        azureDataLakeAnalyticsProperties.Authorization = authorization;
    }
}

Pour plus d’informations sur les classes Data Factory utilisées dans le code, consultez les rubriques AzureDataLakeStoreLinkedService, classe, AzureDataLakeAnalyticsLinkedService, classe et AuthorizationSessionGetResponse, classe.For details about the Data Factory classes used in the code, see the AzureDataLakeStoreLinkedService Class, AzureDataLakeAnalyticsLinkedService Class, and AuthorizationSessionGetResponse Class topics. Ajoutez une référence à la version 2.9.10826.1824 de Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll pour la classe WindowsFormsWebAuthenticationDialog utilisée dans le code.Add a reference to version 2.9.10826.1824 of Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll for the WindowsFormsWebAuthenticationDialog class used in the code.

Conseils de dépannageTroubleshooting tips

Symptôme : Lors de la copie de données dans Azure Data Lake Store, si votre activité de copie échoue avec l’erreur suivante :Symptom: When copying data into Azure Data Lake Store, if your copy activity fail with the following error:

Failed to detect the region for Azure Data Lake account {your account name}. Please make sure that the Resource Group name: {resource group name} and subscription ID: {subscription ID} of this Azure Data Lake Store resource are correct.

Cause racine : Il existe deux causes possibles :Root cause: There are 2 possible reasons:

  1. Le resourceGroupName et/ou subscriptionId spécifié dans le service lié Azure Data Lake Store est incorrectThe resourceGroupName and/or subscriptionId specified in Azure Data Lake Store linked service is incorrect;
  2. L’utilisateur ou le principal de service n’a pas l’autorisation nécessaireThe user or the service principal doesn't have the needed permission.

Résolution :Resolution:

  1. Vérifiez que le subscriptionId et resourceGroupName que vous spécifiez dans le service lié typeProperties sont bien ceux appartenant à votre compte Data Lake.Make sure the subscriptionId and resourceGroupName you specify in the linked service typeProperties are indeed the ones that your data lake account belongs to.

  2. Veillez à accorder au moins le rôle Lecteur à l’utilisateur ou au principal de service sur le compte Data Lake.Make sure you grant at least Reader role to the user or service principal on the data lake account. Voici comment faire :Here is how to make it:

    1. Accédez au portail Azure -> votre compte Data Lake Store.Go to the Azure portal -> your Data Lake Store account
    2. Cliquez sur Contrôle d’accès (IAM) dans le panneau du Data Lake Store.Click Access control (IAM) on the blade of the Data Lake Store
    3. Cliquez sur Ajouter une attribution de rôle.Click Add role assignment
    4. Affectez à Rôle la valeur Lecteur et sélectionnez l’utilisateur ou le principal de service que vous utilisez pour la copie afin d’octroyer l’accès.Set Role as Reader, and select the user or the service principal you use for copy to grant access
  3. Si vous ne souhaitez pas accorder le rôle de Lecteur à l’utilisateur ou au principal de service, l’alternative consiste à spécifier explicitement un emplacement d’exécution dans l’activité de copie avec l’emplacement de votre Data Lake Store.If you don't want to grant Reader role to the user or service principal, alternative is to explicitly specify an execution location in copy activity with the location of your Data Lake Store. Exemple :Example:

    {
      "name": "CopyToADLS",
      "type": "Copy",
      ......
      "typeProperties": {
        "source": {
          "type": "<source type>"
        },
        "sink": {
          "type": "AzureDataLakeStoreSink"
        },
        "exeuctionLocation": "West US"
      }
    }
    

Propriétés du jeu de donnéesDataset properties

Pour spécifier un jeu de données afin de représenter les données d’entrée dans un Data Lake Store, vous devez définir la propriété type du jeu de données sur AzureDataLakeStore.To specify a dataset to represent input data in a Data Lake Store, you set the type property of the dataset to AzureDataLakeStore. Définissez la propriété linkedServiceName du jeu de données sur le nom du service lié Data Lake Store.Set the linkedServiceName property of the dataset to the name of the Data Lake Store linked service. Pour obtenir une liste complète des sections et propriétés JSON disponibles pour la définition de jeux de données, consultez l’article Création de jeux de données.For a full list of JSON sections and properties available for defining datasets, see the Creating datasets article. Les sections d’un jeu de données en JSON, comme la structure, la disponibilité et la stratégie sont similaires pour tous les types de jeux de données (par exemple, Azure SQL Database, Azure Blob et Azure Table).Sections of a dataset in JSON, such as structure, availability, and policy, are similar for all dataset types (Azure SQL database, Azure blob, and Azure table, for example). La section typeProperties est différente pour chaque type de jeu de données et fournit des informations notamment sur l'emplacement et le format des données dans le magasin de données.The typeProperties section is different for each type of dataset and provides information such as location and format of the data in the data store.

La section typeProperties correspondant au jeu de données de type AzureDataLakeStore contient les propriétés suivantes :The typeProperties section for a dataset of type AzureDataLakeStore contains the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
folderPathfolderPath Chemin d’accès au conteneur et au dossier dans Data Lake Store.Path to the container and folder in Data Lake Store. OUIYes
fileNamefileName Le nom du fichier dans Azure Data Lake Store.Name of the file in Azure Data Lake Store. La propriété fileName est facultative et sensible à la casse.The fileName property is optional and case-sensitive.

Si vous spécifiez fileName, l’activité (y compris la copie) fonctionne sur le fichier spécifique.If you specify fileName, the activity (including Copy) works on the specific file.

Lorsque fileName n’est pas spécifié, la copie inclut tous les fichiers dans le paramètre folderPath du jeu de données d’entrée.When fileName is not specified, Copy includes all files in folderPath in the input dataset.

Lorsque fileName n'est pas spécifié pour un jeu de données de sortie et que preserveHierarchy n'est pas spécifié dans le récepteur d'activité, le nom du fichier généré est au format Data._Guid_.txt.When fileName is not specified for an output dataset and preserveHierarchy is not specified in activity sink, the name of the generated file is in the format Data._Guid_.txt. Par exemple : Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.For example: Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.
NonNo
partitionedBypartitionedBy La propriété partitionedBy est facultative.The partitionedBy property is optional. Vous pouvez l'utiliser pour spécifier un chemin dynamique et le nom de fichier pour les données de série chronologique.You can use it to specify a dynamic path and file name for time-series data. Par exemple, folderPath peut être paramétré pour toutes les heures de données.For example, folderPath can be parameterized for every hour of data. Consultez La propriété partitionedBy pour obtenir plus d’informations et des exemples.For details and examples, see The partitionedBy property. NonNo
formatformat Les types de formats suivants sont pris en charge : TextFormat, JsonFormat, AvroFormat, OrcFormat et ParquetFormat.The following format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, and ParquetFormat. Définissez la propriété type située sous Format sur l’une de ces valeurs.Set the type property under format to one of these values. Pour en savoir plus, voir les sections Format Text, Format JSON, Format Avro, Format Orc et Format Parquet dans l’article Formats de fichiers et de compression pris en charge dans Azure Data Factory.For more information, see the Text format, JSON format, Avro format, ORC format, and Parquet Format sections in the File and compression formats supported by Azure Data Factory article.

Si vous souhaitez copier des fichiers en l’état entre des magasins de fichiers (copie binaire), ignorez la section format dans les deux définitions de jeu de données d’entrée et de sortie.If you want to copy files "as-is" between file-based stores (binary copy), skip the format section in both input and output dataset definitions.
NonNo
compressioncompression Spécifiez le type et le niveau de compression pour les données.Specify the type and level of compression for the data. Les types pris en charge sont : GZip, Deflate, BZip2 et ZipDeflate.Supported types are GZip, Deflate, BZip2, and ZipDeflate. Les niveaux pris en charge sont Optimal et Fastest.Supported levels are Optimal and Fastest. Pour plus d’informations, consultez Formats de fichiers et de compression pris en charge dans Azure Data Factory.For more information, see File and compression formats supported by Azure Data Factory. NonNo

La propriété partitionedByThe partitionedBy property

Vous pouvez spécifier des propriétés folderPath et un fileName dynamiques pour les données de série chronologique avec la propriété partitionedBy, les fonctions Data Factory et les variables système.You can specify dynamic folderPath and fileName properties for time-series data with the partitionedBy property, Data Factory functions, and system variables. Pour plus de détails, consultez l’article Azure Data Factory - Variables système et fonctions.For details, see the Azure Data Factory - functions and system variables article.

Dans l’exemple suivant, {Slice} est remplacé par la valeur de la variable système Data Factory SliceStart au format spécifié (yyyyMMddHH).In the following example, {Slice} is replaced with the value of the Data Factory system variable SliceStart in the format specified (yyyyMMddHH). Le nom SliceStart fait référence à l’heure de début de la tranche.The name SliceStart refers to the start time of the slice. La propriété folderPath est différente pour chaque secteur, comme dans wikidatagateway/wikisampledataout/2014100103 ou wikidatagateway/wikisampledataout/2014100104.The folderPath property is different for each slice, as in wikidatagateway/wikisampledataout/2014100103 or wikidatagateway/wikisampledataout/2014100104.

"folderPath": "wikidatagateway/wikisampledataout/{Slice}",
"partitionedBy":
[
    { "name": "Slice", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyyMMddHH" } },
],

Dans l’exemple suivant, l’année, le mois, le jour et l’heure de SliceStart sont extraits dans des variables distinctes qui sont utilisées par les propriétés folderPath et fileName :In the following example, the year, month, day, and time of SliceStart are extracted into separate variables that are used by the folderPath and fileName properties:

"folderPath": "wikidatagateway/wikisampledataout/{Year}/{Month}/{Day}",
"fileName": "{Hour}.csv",
"partitionedBy":
[
    { "name": "Year", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
    { "name": "Month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
    { "name": "Day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } },
    { "name": "Hour", "value": { "type": "DateTime", "date": "SliceStart", "format": "hh" } }
],

Consultez les articles Jeux de données dans Azure Data Factory et Planification et exécution dans Data Factory pour mieux comprendre les jeux de données de série chronologique, la planification et les segments.For more details on time-series datasets, scheduling, and slices, see the Datasets in Azure Data Factory and Data Factory scheduling and execution articles.

Propriétés de l’activité de copieCopy activity properties

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez l’article Création de pipelines.For a full list of sections and properties available for defining activities, see the Creating pipelines article. Les propriétés comme le nom, la description, les tables d’entrée et de sortie et la stratégie sont disponibles pour tous les types d’activités.Properties such as name, description, input and output tables, and policy are available for all types of activities.

Les propriétés disponibles dans la section typeProperties d’une activité varient pour chaque type d’activité.The properties available in the typeProperties section of an activity vary with each activity type. Pour une activité de copie, elles dépendent des types de sources et récepteurs.For a copy activity, they vary depending on the types of sources and sinks.

AzureDataLakeStoreSource prend en charge les propriétés suivantes dans la section typeProperties :AzureDataLakeStoreSource supports the following property in the typeProperties section:

PropriétéProperty DescriptionDescription Valeurs autoriséesAllowed values ObligatoireRequired
recursiverecursive Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié.Indicates whether the data is read recursively from the subfolders or only from the specified folder. True (valeur par défaut), FalseTrue (default value), False NonNo

AzureDataLakeStoreSink prend en charge les propriétés suivantes dans la section typeProperties :AzureDataLakeStoreSink supports the following properties in the typeProperties section:

PropriétéProperty DescriptionDescription Valeurs autoriséesAllowed values ObligatoireRequired
copyBehaviorcopyBehavior Spécifie le comportement de copie.Specifies the copy behavior. PreserveHierarchy : conserve la hiérarchie des fichiers dans le dossier cible.PreserveHierarchy: Preserves the file hierarchy in the target folder. Le chemin d’accès relatif du fichier source vers le dossier source est identique au chemin d’accès relatif du fichier cible vers le dossier cible.The relative path of source file to source folder is identical to the relative path of target file to target folder.

FlattenHierarchy : tous les fichiers du dossier source sont créés dans le premier niveau du dossier cible.FlattenHierarchy: All files from the source folder are created in the first level of the target folder. Les fichiers cibles sont créés avec un nom généré automatiquement.The target files are created with autogenerated names.

MergeFiles : fusionne tous les fichiers du dossier source dans un seul fichier.MergeFiles: Merges all files from the source folder to one file. Si le nom d’objet blob ou de fichier est spécifié, le nom de fichier fusionné est le nom spécifié.If the file or blob name is specified, the merged file name is the specified name. Dans le cas contraire, le nom de fichier est généré automatiquement.Otherwise, the file name is autogenerated.
NonNo

exemples de valeurs recursive et copyBehaviorrecursive and copyBehavior examples

Cette section décrit le comportement résultant de l’opération de copie pour différentes combinaisons de valeurs recursive et copyBehavior.This section describes the resulting behavior of the Copy operation for different combinations of recursive and copyBehavior values.

recursiverecursive copyBehaviorcopyBehavior Comportement résultantResulting behavior
truetrue preserveHierarchypreserveHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré de la même manière que la sourcethe target folder Folder1 is created with the same structure as the source

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5.        File5.
truetrue flattenHierarchyflattenHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible Dossier1 est créé et structuré comme suit :the target Folder1 is created with the following structure:

Dossier1Folder1
    nom généré automatiquement pour Fichier1    auto-generated name for File1
    nom généré automatiquement pour Fichier2    auto-generated name for File2
    nom généré automatiquement pour Fichier3    auto-generated name for File3
    nom généré automatiquement pour Fichier4    auto-generated name for File4
    nom généré automatiquement pour Fichier5    auto-generated name for File5
truetrue mergeFilesmergeFiles Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible Dossier1 est créé et structuré comme suit :the target Folder1 is created with the following structure:

Dossier1Folder1
    Le contenu de Fichier1 + Fichier2 + Fichier3 + Fichier4 + Fichier5 est fusionné dans un fichier avec le nom de fichier généré automatiquement    File1 + File2 + File3 + File4 + File 5 contents are merged into one file with auto-generated file name
falsefalse preserveHierarchypreserveHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2


Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse flattenHierarchyflattenHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Dossier1Folder1
    nom généré automatiquement pour Fichier1    auto-generated name for File1
    nom généré automatiquement pour Fichier2    auto-generated name for File2


Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse mergeFilesmergeFiles Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Dossier1Folder1
    Le contenu de Fichier1 + Fichier2 est fusionné dans un fichier avec le nom de fichier généré automatiquement.    File1 + File2 contents are merged into one file with auto-generated file name. nom généré automatiquement pour Fichier1auto-generated name for File1

Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.

Formats de fichier et de compression pris en chargeSupported file and compression formats

Pour plus d’informations, voir Formats de fichiers et de compression pris en charge dans Azure Data Factory.For details, see the File and compression formats in Azure Data Factory article.

Exemples JSON pour copier des données vers et depuisData Lake StoreJSON examples for copying data to and from Data Lake Store

Les exemples suivants fournissent des exemples de définitions JSON.The following examples provide sample JSON definitions. Vous pouvez utiliser ces exemples de définitions pour créer un pipeline à l’aide de Visual Studio ou d’Azure PowerShell.You can use these sample definitions to create a pipeline by using Visual Studio or Azure PowerShell. Les exemples indiquent comment copier des données vers et depuis Data Lake Store et Azure Blob Storage.The examples show how to copy data to and from Data Lake Store and Azure Blob storage. Toutefois, les données peuvent être copiées directement à partir de n’importe quelle source, vers tout récepteur pris en charge.However, data can be copied directly from any of the sources to any of the supported sinks. Pour plus d’informations, consultez la section « Banques de données et formats pris en charge » de l’article Déplacer des données à l’aide de l’activité de copie.For more information, see the section "Supported data stores and formats" in the Move data by using Copy Activity article.

Exemple : copie de données du stockage Blob Azure vers Azure Data Lake StoreExample: Copy data from Azure Blob Storage to Azure Data Lake Store

L’exemple de code dans cette section montre :The example code in this section shows:

L’exemple montre la copie des données de série horaire depuis un stockage d’objets blob vers Azure Data Lake Store toutes les heures.The examples show how time-series data from Azure Blob Storage is copied to Data Lake Store every hour.

Service lié Azure StorageAzure Storage linked service

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Service lié Azure Data Lake StoreAzure Data Lake Store linked service

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Notes

Pour les détails de configuration, consultez la section Propriétés du service lié.For configuration details, see the Linked service properties section.

Jeu de données d'entrée d'objet Blob AzureAzure blob input dataset

Dans l’exemple suivant, les données sont récupérées à partir d'un nouvel objet Blob toutes les heures ("frequency": "Hour", "interval": 1).In the following example, data is picked up from a new blob every hour ("frequency": "Hour", "interval": 1). Le nom du chemin d'accès et du fichier de dossier pour l'objet blob sont évalués dynamiquement en fonction de l'heure de début du segment en cours de traitement.The folder path and file name for the blob are dynamically evaluated based on the start time of the slice that is being processed. Le chemin d’accès du dossier utilise l’année, le mois et le jour de début.The folder path uses the year, month, and day portion of the start time. Le nom de fichier utilise la partie heure de l’heure de début.The file name uses the hour portion of the start time. Le paramètre "external": true informe le service Data Factory que cette table est externe à la Data Factory et non produite par une activité dans la Data Factory.The "external": true setting informs the Data Factory service that the table is external to the data factory and is not produced by an activity in the data factory.

{
  "name": "AzureBlobInput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ]
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Jeu de données de sortie Azure Data Lake StoreAzure Data Lake Store output dataset

L’exemple suivant copie des données dans un magasin Data Lake Store.The following example copies data to Data Lake Store. De nouvelles données sont copiées dans Data Lake Store toutes les heures.New data is copied to Data Lake Store every hour.

{
    "name": "AzureDataLakeStoreOutput",
    "properties": {
        "type": "AzureDataLakeStore",
        "linkedServiceName": "AzureDataLakeStoreLinkedService",
        "typeProperties": {
            "folderPath": "datalake/output/"
        },
        "availability": {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Activité de copie dans un pipeline avec une source Blob et un récepteur Data Lake StoreCopy activity in a pipeline with a blob source and a Data Lake Store sink

Dans l’exemple suivant, le pipeline contient une activité de copie qui est configurée pour utiliser les jeux de données d’entrée et de sortie.In the following example, the pipeline contains a copy activity that is configured to use the input and output datasets. L’activité de copie est planifiée pour s’exécuter toutes les heures.The copy activity is scheduled to run every hour. Dans la définition JSON du pipeline, le type source est défini sur BlobSource et le type sink est défini sur AzureDataLakeStoreSink.In the pipeline JSON definition, the source type is set to BlobSource, and the sink type is set to AzureDataLakeStoreSink.

{
    "name":"SamplePipeline",
    "properties":
    {
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline with copy activity",
        "activities":
        [
            {
                "name": "AzureBlobtoDataLake",
                "description": "Copy Activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureDataLakeStoreOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "AzureDataLakeStoreSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Exemple : copie de données d’Azure Data Lake Store vers un objet blob AzureExample: Copy data from Azure Data Lake Store to an Azure blob

L’exemple de code dans cette section montre :The example code in this section shows:

Le code copie des données appartenant à une série horaire depuis un magasin Data Lake vers un objet blob Azure toutes les heures.The code copies time-series data from Data Lake Store to an Azure blob every hour.

Service lié Azure Data Lake StoreAzure Data Lake Store linked service

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        }
    }
}

Notes

Pour les détails de configuration, consultez la section Propriétés du service lié.For configuration details, see the Linked service properties section.

Service lié Azure StorageAzure Storage linked service

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Jeu de données Azure Data Lake de sortieAzure Data Lake input dataset

Dans cet exemple, la définition de "external" sur true informe le service Data Factory qu’il s’agit d’un jeu de données qui est externe à la Data Factory et non produit par une activité dans la Data Factory.In this example, setting "external" to true informs the Data Factory service that the table is external to the data factory and is not produced by an activity in the data factory.

{
    "name": "AzureDataLakeStoreInput",
    "properties":
    {
        "type": "AzureDataLakeStore",
        "linkedServiceName": "AzureDataLakeStoreLinkedService",
        "typeProperties": {
            "folderPath": "datalake/input/",
            "fileName": "SearchLog.tsv",
            "format": {
                "type": "TextFormat",
                "rowDelimiter": "\n",
                "columnDelimiter": "\t"
            }
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval": 1
        },
        "policy": {
            "externalData": {
                "retryInterval": "00:01:00",
                "retryTimeout": "00:10:00",
                "maximumRetry": 3
            }
        }
    }
}

Jeu de données de sortie d’objet Blob AzureAzure blob output dataset

Dans l’exemple suivant, les données sont écrites dans un nouvel objet Blob toutes les heures ("frequency": "Hour", "interval": 1).In the following example, data is written to a new blob every hour ("frequency": "Hour", "interval": 1). Le chemin d’accès du dossier pour l’objet blob est évalué dynamiquement en fonction de l’heure de début du segment en cours de traitement.The folder path for the blob is dynamically evaluated based on the start time of the slice that is being processed. Le chemin d’accès du dossier utilise l’année, le mois, le jour et la partie heure de l’heure de début.The folder path uses the year, month, day, and hours portion of the start time.

{
  "name": "AzureBlobOutput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}/hourno={Hour}",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": "\t",
        "rowDelimiter": "\n"
      }
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

Activité de copie dans un pipeline avec une source Azure Data Lake Store et un récepteur BlobA copy activity in a pipeline with an Azure Data Lake Store source and a blob sink

Dans l’exemple suivant, le pipeline contient une activité de copie qui est configurée pour utiliser les jeux de données d’entrée et de sortie.In the following example, the pipeline contains a copy activity that is configured to use the input and output datasets. L’activité de copie est planifiée pour s’exécuter toutes les heures.The copy activity is scheduled to run every hour. Dans la définition JSON du pipeline, le type source est défini sur AzureDataLakeStoreSource et le type sink est défini sur BlobSink.In the pipeline JSON definition, the source type is set to AzureDataLakeStoreSource, and the sink type is set to BlobSink.

{
    "name":"SamplePipeline",
    "properties":{
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline for copy activity",
        "activities":[
            {
                "name": "AzureDakeLaketoBlob",
                "description": "copy activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureDataLakeStoreInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "AzureDataLakeStoreSource",
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Dans la définition d’activité de copie, vous pouvez également mapper des colonnes du jeu de données source aux colonnes du jeu de données récepteur.In the copy activity definition, you can also map columns from the source dataset to columns in the sink dataset. Pour plus d’informations, consultez Mappage de colonnes de jeux de données dans Azure Data Factory.For details, see Mapping dataset columns in Azure Data Factory.

Performances et réglagePerformance and tuning

Consultez l’article Guide sur les performances et le réglage de l’activité de copie pour en savoir plus sur les facteurs clés affectant les performances de déplacement des données (activité de copie) et les manières de les optimiser.To learn about the factors that affect Copy Activity performance and how to optimize it, see the Copy Activity performance and tuning guide article.