Partager via


Copier et transformer des données dans Data Lake Storage Gen2 avec Data Factory ou Azure Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Tip

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, la business intelligence et le reporting. Découvrez comment démarrer un nouvel essai gratuitement !

Azure Data Lake Storage Gen2 (ADLS Gen2) est un ensemble de fonctionnalités dédiées à l'analytique du Big Data et intégrées au service Stockage Blob Azure. Il vous permet d’interagir avec vos données selon les deux paradigmes que sont le système de fichiers et le stockage d’objets.

Cet article indique comment utiliser l’activité de copie pour copier des données depuis et vers Azure Data Lake Storage Gen2 et utiliser Data Flow pour transformer les données dans Azure Data Lake Storage Gen2. Pour en savoir plus, lisez l’article d’introduction pour Azure Data Factory ou Azure Synapse Analytics.

Tip

Pour plus d’informations sur le scénario de migration de lac de données ou d’entrepôt de données, consultez Migration des données dans Azure à partir d’un lac de données ou d’un entrepôt de données.

Fonctionnalités prises en charge

Ce connecteur Azure Data Lake Storage Gen2 est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR Point de terminaison privé managé
Activité Copy (source/récepteur) (1) (2)
Flux de données de mappage (source/récepteur)
Activité de recherche (1) (2)
Activité GetMetadata (1) (2)
Supprimer l’activité (1) (2)

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Pour l’activité de copie, avec ce connecteur, vous pouvez effectuer les opérations suivantes :

Get started

Tip

Pour une procédure pas à pas d’utilisation du connecteur Data Lake Storage Gen2, consultez Charger des données dans Azure Data Lake Storage Gen2.

Pour effectuer l’activité de copie avec un pipeline, vous pouvez utiliser l’un des outils ou kits sdk suivants :

Créer un service lié Azure Data Lake Storage Gen2 à l’aide de l’interface utilisateur

Utilisez les étapes suivantes pour créer un service lié Azure Data Lake Storage Gen2 dans l’interface utilisateur du portail Azure.

  1. Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse, sélectionnez Services liés, puis sélectionnez Nouveau :

  2. Recherchez Azure Data Lake Storage Gen2 et sélectionnez le connecteur Azure Data Lake Storage Gen2.

    Sélectionnez le connecteur Azure Data Lake Storage Gen2.

  3. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Capture d’écran de la configuration du service lié Azure Data Lake Storage Gen2.

Détails de configuration du connecteur

Les sections suivantes fournissent des informations sur les propriétés utilisées pour définir les entités Data Factory ou de pipeline Synapse spécifiques de Data Lake Storage Gen2.

Propriétés du service lié

Le connecteur Azure Data Lake Storage Gen2 prend en charge les types d’authentification suivants. Consultez les sections correspondantes pour plus d’informations :

Note

  • Si vous souhaitez utiliser le runtime d'intégration global d'Azure pour vous connecter à Data Lake Storage Gen2 en activant l'option Autoriser les services Microsoft approuvés à accéder à ce compte de stockage sur le pare-feu de stockage Azure, vous devez utiliser l'authentification par identité managée. Pour plus d’informations sur les paramètres du pare-feu de stockage Azure, consultez Configurer des pare-feu et des réseaux virtuels dans Stockage Azure.
  • Si vous utilisez PolyBase ou l’instruction COPY pour charger des données dans Azure Synapse Analytics et que votre Data Lake Storage Gen2 source ou de préproduction est configuré avec un point de terminaison de réseau virtuel Azure, vous devez utiliser l’authentification par identité managée comme l’exige Azure Synapse. Pour en savoir plus sur la configuration requise, voir la section sur l’authentification par identité managée.

Authentification par clé de compte

Pour l’authentification par clé de compte de stockage, les propriétés suivantes sont prises en charge :

Property Description Required
type La propriété type doit être définie sur AzureBlobFS. Yes
url Point de terminaison pour Data Lake Storage Gen2 avec le modèle de https://<accountname>.dfs.core.windows.net. Yes
accountKey Clé de compte pour Data Lake Storage Gen2. Marquez ce champ en tant que SecureString afin de le stocker de façon sécurisée, ou référencez un secret stocké dans Azure Key Vault. Yes
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d'intégration Azure ou un runtime d’intégration auto-hébergé si votre banque de données se trouve sur un réseau privé. Si cette propriété n’est pas spécifiée, le runtime d’intégration Azure par défaut est utilisé. No

Note

Le point de terminaison du système de fichiers ADLS secondaire n’est pas pris en charge lors de l’utilisation de l’authentification par clé de compte. Vous pouvez utiliser d’autres types d’authentification.

Example:

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
            "accountkey": { 
                "type": "SecureString", 
                "value": "<accountkey>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentification avec une signature d’accès partagé

Une signature d'accès partagé fournit un accès délégué aux ressources de votre compte de stockage. Vous pouvez utiliser une signature d’accès partagé pour octroyer à un client des autorisations d’accès limité à des objets de votre compte de stockage pendant une période donnée.

Vous n’êtes pas obligé de partager vos clés d’accès de compte. La signature d’accès partagé est un URI qui englobe dans ses paramètres de requête toutes les informations nécessaires pour obtenir un accès authentifié à une ressource de stockage. Pour accéder aux ressources de stockage avec la signature d’accès partagé, il suffit au client de transmettre cette dernière à la méthode ou au constructeur approprié.

Pour plus d’informations sur les signatures d’accès partagé, consultez Utilisation des signatures d’accès partagé (SAP).

Note

  • Le service prend désormais en charge les signatures d’accès partagé de service et les signatures d’accès partagé de compte. Pour plus d’informations sur les signatures d’accès partagé, consultez Accorder un accès limité aux ressources du Stockage Azure à l’aide des signatures d’accès partagé.
  • Dans les configurations de jeu de données ultérieures, le chemin du dossier est le chemin absolu commençant au niveau du conteneur. Vous devez en configurer un qui soit aligné avec le chemin dans votre URI SAS.

Les propriétés suivantes sont prises en charge pour l’utilisation de l’authentification par signature d’accès partagé :

Property Description Required
type La propriété type doit être définie sur AzureBlobFS (suggéré) Yes
sasUri Spécifiez l’URI de signature d’accès partagé des ressources de stockage, telles qu’un objet blob ou un conteneur.
Marquez ce champ comme SecureString pour le stocker en toute sécurité. Vous pouvez également placer le jeton SAP dans Azure Key Vault pour utiliser la rotation automatique et supprimer la portion jeton. Pour plus d’informations, consultez les exemples suivants et Stocker des informations d’identification dans Azure Key Vault.
Yes
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d’intégration Azure ou un runtime d’intégration auto-hébergé (si votre banque de données se trouve sur un réseau privé). Si cette propriété n’est pas spécifiée, le service utilise le runtime d’intégration Azure par défaut. No

Note

Si vous utilisez le service lié de type AzureStorage, il est toujours pris en charge tel quel. Toutefois, nous vous suggérons d’utiliser désormais le nouveau type de service lié AzureDataLakeStorageGen2.

Example:

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemple : stockage de la clé de compte dans Azure Key Vault

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Lorsque vous créez un URI de signature d’accès partagé, prenez en compte les points suivants :

  • Définissez des autorisations de lecture/écriture appropriées sur les objets en fonction de l’utilisation du service lié (lecture, écriture, lecture/écriture).
  • Définissez le paramètre Heure d’expiration correctement. Assurez-vous que l’accès aux objets du stockage n’expire pas pendant la période active du pipeline.
  • L’URI doit être créé au niveau du blob ou du conteneur appropriés en fonction des besoins. Un URI de signature d’accès partagé vers un objet blob permet à la fabrique de données ou au pipeline Synapse d’accéder à cet objet blob spécifique. Un URI de signature d’accès partagé vers un conteneur de stockage Blob permet à la fabrique de données d’itérer via des objets blob dans ce conteneur. Pour fournir l’accès à plus ou moins d’objets ultérieurement ou mettre à jour l’URI de signature d’accès partagé, rappelez-vous de mettre à jour le service lié avec le nouvel URI.

Authentification d’un principal du service

Pour l’authentification de principal de service, effectuez les étapes suivantes.

  1. Enregistrez une application auprès de la plateforme d’identité Microsoft. Pour savoir comment, regardez Démarrage rapide : Inscrire une application à l’aide de la plateforme d’identités Microsoft. Prenez note des valeurs suivantes qui vous permettent de définir le service lié :

    • ID de l'application
    • Clé de l'application
    • ID du locataire
  2. Accordez l’autorisation nécessaire au principal de service. Pour obtenir des exemples sur le fonctionnement des autorisations dans Data Lake Storage Gen2, consultez Listes de contrôle d’accès sur les fichiers et répertoires.

    • En tant que source : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation de lecture pour les fichiers à copier. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Lecteur des données Blob du stockage .
    • Comme évier : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation d'écriture pour le dossier récepteur. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Contributeur aux données Blob du stockage.

Note

Si vous utilisez l'interface utilisateur pour créer et que le principal du service n'est pas défini avec le rôle « Lecteur/Contributeur de données Blob de stockage » dans IAM, lorsque vous effectuez un test de connexion ou que vous parcourez des dossiers, choisissez « Tester la connexion au chemin du fichier » ou « Parcourir à partir du chemin spécifié » et spécifiez un chemin avec l'autorisation de lecture + exécution pour continuer.

Ces propriétés sont prises en charge pour le service lié :

Property Description Required
type La propriété type doit être définie sur AzureBlobFS. Yes
url Point de terminaison pour Data Lake Storage Gen2 avec le modèle de https://<accountname>.dfs.core.windows.net. Yes
servicePrincipalId Spécifiez l’ID client de l’application. Yes
servicePrincipalCredentialType Type d’informations d’identification à utiliser pour l’authentification de principal du service. Les valeurs autorisées sont ServicePrincipalKey et ServicePrincipalCert. Yes
servicePrincipalCredential Informations d’identification du principal du service.
Quand vous utilisez ServicePrincipalKey comme type d’informations d’identification, spécifiez la clé de l’application. Marquez ce champ en tant que SecureString afin de le stocker de façon sécurisée, ou référencez un secret stocké dans Azure Key Vault.
Lorsque vous utilisez ServicePrincipalCert comme informations d’identification, référencez un certificat dans Azure Key Vault et vérifiez que le type de contenu du certificat est PKCS #12.
Yes
servicePrincipalKey Spécifiez la clé de l’application. Marquez ce champ en tant que SecureString afin de le stocker de façon sécurisée, ou référencez un secret stocké dans Azure Key Vault.
Cette propriété est toujours prise en charge telle quelle pour servicePrincipalId + servicePrincipalKey. Comme ADF ajoute une nouvelle authentification par certificat du principal du service, le nouveau modèle pour l’authentification de principal du service est servicePrincipalId + servicePrincipalCredentialType + servicePrincipalCredential.
No
tenant Spécifiez les informations de locataire (nom de domaine ou ID de locataire) dans lesquels se trouve votre application. Récupérez-les en pointant la souris dans le coin supérieur droit du Portail Azure. Yes
azureCloudType Pour l’authentification du principal de service, spécifiez le type d’environnement cloud Azure auquel votre application Microsoft Entra est inscrite.
Les valeurs autorisées sont AzurePublic, AzureChina, AzureUsGovernment et AzureGermany. Par défaut, l’environnement cloud du pipeline Data Factory ou Synapse est utilisé.
No
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d'intégration Azure ou un runtime d’intégration auto-hébergé si votre banque de données se trouve sur un réseau privé. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. No

Exemple : utilisation de l’authentification de la clé du principal de service

Vous pouvez également stocker la clé du principal du service dans Azure Key Vault.

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemple : utilisation de l’authentification par certificat du principal du service

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentification via une identité managée affectée par le système

Une fabrique de données ou un espace de travail Synapse peut être associé à une identité managée affectée par le système. Vous pouvez utiliser directement cette identité managée affectée par le système pour l’authentification Azure Data Lake Storage Gen2, ce qui revient à utiliser votre propre principal de service. Cela permet à la fabrique ou l’espace de travail désignés d’accéder aux données et de les copier depuis ou vers votre Data Lake Storage Gen2.

Pour utiliser l’authentification par identité managée affectée par le système, effectuez les étapes suivantes.

  1. Récupérez les informations d’identité managée affectée par le système en copiant la valeur de l’ID d’objet d’identité managée générée en même temps que votre fabrique de données ou espace de travail Synapse.

  2. Accordez à l’identité managée affectée par le système une autorisation appropriée. Pour obtenir des exemples sur le fonctionnement des autorisations dans Data Lake Storage Gen2, consultez Listes de contrôle d’accès sur les fichiers et répertoires.

    • En tant que source : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation de lecture pour les fichiers à copier. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Lecteur des données Blob du stockage .
    • Comme évier : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation d'écriture pour le dossier récepteur. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Contributeur aux données Blob du stockage.

Ces propriétés sont prises en charge pour le service lié :

Property Description Required
type La propriété type doit être définie sur AzureBlobFS. Yes
url Point de terminaison pour Data Lake Storage Gen2 avec le modèle de https://<accountname>.dfs.core.windows.net. Yes
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d'intégration Azure ou un runtime d’intégration auto-hébergé si votre banque de données se trouve sur un réseau privé. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. No

Example:

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentification via une identité managée affectée par l’utilisateur

Une fabrique de données peut être affectée à une ou plusieurs identités managées par l’utilisateur. Vous pouvez utiliser cette identité managée affectée par l’utilisateur pour l’authentification du stockage d’objets blob, ce qui permet à d’accéder aux données et de les copier à partir de ou vers Data Lake Storage Gen2. Pour en savoir plus sur les identités managées pour les ressources Azure, consultez Identités managées pour les ressources Azure

Pour utiliser l’authentification par identité managée affectée par l’utilisateur, effectuez les étapes suivantes :

  1. Créez une ou plusieurs identités managées attribuées par l’utilisateur et accordez-leur l’accès à Azure Data Lake Storage Gen2. Pour obtenir des exemples sur le fonctionnement des autorisations dans Data Lake Storage Gen2, consultez Listes de contrôle d’accès sur les fichiers et répertoires.

    • En tant que source : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation de lecture pour les fichiers à copier. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Lecteur des données Blob du stockage .
    • Comme évier : Dans l'Explorateur Stockage Microsoft Azure, accordez au moins l'autorisation d'exécution pour ALL les dossiers en amont et le système de fichiers, ainsi que l'autorisation d'écriture pour le dossier récepteur. Dans le contrôle d’accès (IAM), vous pouvez également accorder au moins un rôle Contributeur aux données Blob du stockage.
  2. Attribuez une ou plusieurs identités managées affectées par l’utilisateur à votre fabrique de données et créez des informations d’identification pour chaque identité managée affectée par l’utilisateur.

Ces propriétés sont prises en charge pour le service lié :

Property Description Required
type La propriété type doit être définie sur AzureBlobFS. Yes
url Point de terminaison pour Data Lake Storage Gen2 avec le modèle de https://<accountname>.dfs.core.windows.net. Yes
credentials Spécifiez l’identité managée affectée par l’utilisateur en tant qu’objet d’informations d’identification. Yes
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d'intégration Azure ou un runtime d’intégration auto-hébergé si votre banque de données se trouve sur un réseau privé. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. No

Example:

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
                }
            },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Note

Si vous utilisez l’interface utilisateur de Data Factory pour créer et que l’identité managée n’est pas définie avec le rôle « Lecteur/Contributeur de données blob de stockage » dans IAM, lorsque vous effectuez des tests de connexion ou de navigation/navigation dans des dossiers, choisissez « Tester la connexion au chemin d’accès au fichier » ou « Parcourir à partir du chemin spécifié », puis spécifiez un chemin avec l’autorisation Lecture + Exécution pour continuer.

Important

Si vous utilisez PolyBase ou l’instruction COPY pour charger des données de Data Lake Storage Gen2 dans Azure Synapse Analytics et que vous avez recours à l’authentification par identité managée pour Data Lake Storage Gen2, veillez également à suivre les étapes 1 à 3 de cette aide. Ces étapes inscrivent votre serveur auprès de Microsoft Entra ID et attribuent le rôle de contributeur aux données de l’objet blob de stockage. Data Factory gère le reste. Si vous configurez le Stockage blob avec un point de terminaison de réseau virtuel Azure, vous devez également activer Autoriser les services Microsoft approuvés à accéder à ce compte de stockage dans le menu des paramètres Pare-feu et réseaux virtuels du compte Stockage Azure, comme l’exige Azure Synapse.

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez l’article sur les jeux de données.

Azure Data Factory prend en charge les formats de fichier suivants. Reportez-vous à chaque article pour les paramètres basés sur le format.

Les propriétés suivantes sont prises en charge pour Data Lake Storage Gen2 dans les paramètres location du jeu de données basé sur le format :

Property Description Required
type La propriété de type sous location dans le jeu de données doit être définie sur AzureBlobFSLocation. Yes
fileSystem Nom du système de fichiers Data Lake Storage Gen2. No
folderPath Chemin d’accès à un dossier sous le système de fichiers donné. Si vous souhaitez utiliser un caractère générique pour filtrer les dossiers, ignorez ce paramètre et spécifiez-le dans les paramètres de la source de l’activité. No
fileName Nom de fichier dans le chemin d’accès fileSystem +folderPath donné. Si vous souhaitez utiliser un caractère générique pour filtrer les fichiers, ignorez ce paramètre et spécifiez-le dans les paramètres de la source de l’activité. No

Example:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Data Lake Storage Gen2 linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobFSLocation",
                "fileSystem": "filesystemname",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Propriétés de l’activité de copie

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez les articles Configurations des activités de copie et Pipelines et activités. Cette section fournit la liste des propriétés prises en charge par la source et le récepteur Data Lake Storage Gen2.

Azure Data Lake Storage Gen2 comme type de source

Azure Data Factory prend en charge les formats de fichier suivants. Reportez-vous à chaque article pour les paramètres basés sur le format.

Vous avez plusieurs options pour copier des données à partir de ADLS Gen2 :

  • Copier à partir du chemin d’accès spécifié dans le jeu de données.
  • Filtre de caractères génériques sur le chemin d’accès du dossier ou le nom du fichier, consultez wildcardFolderPath et wildcardFileName.
  • Copier les fichiers définis dans un fichier texte donné en tant que jeu de fichiers, consultez fileListPath.

Les propriétés suivantes sont prises en charge pour Data Lake Storage Gen2 dans les paramètres storeSettings de la source de copie basée sur le format :

Property Description Required
type La propriété type sous storeSettings doit être définie sur AzureBlobFSReadSettings. Yes
Localisez les fichiers à copier :
OPTION 1 : chemin d’accès statique
Copie à partir du système de fichiers donné ou du chemin d’accès au dossier/fichier spécifié dans le jeu de données. Si vous souhaitez copier tous les fichiers d’un système de fichiers/dossier, spécifiez en plus wildcardFileName comme *.
OPTION 2 : caractère générique
- wildcardFolderPath
Chemin d’accès du dossier avec des caractères génériques sous le système de fichiers configuré dans le jeu de données pour filtrer les dossiers sources.
Les caractères génériques autorisés sont : * (correspond à zéro ou plusieurs caractères) et ? (correspond à zéro ou un caractère) ; utilisez ^ en guise d’échappement si votre nom de dossier contient effectivement ce caractère d’échappement ou générique.
Consultez d’autres exemples dans les exemples de filtre de dossier et de fichier.
No
OPTION 2 : caractère générique
- wildcardFileName
Nom du fichier avec des caractères génériques situé dans le chemin d’accès système de fichiers + folderPath/wildcardFolderPath donné pour filtrer les fichiers sources.
Les caractères génériques autorisés sont : * (correspond à zéro ou plusieurs caractères) et ? (correspond à zéro ou un caractère) ; utilisez ^ en guise d’échappement si votre nom de fichier contient effectivement ce caractère d’échappement ou générique. Consultez d’autres exemples dans les exemples de filtre de dossier et de fichier.
Yes
OPTION 3 : liste de fichiers
- fileListPath
Indique de copier un ensemble de fichiers donné. Pointez vers un fichier texte contenant la liste des fichiers que vous voulez copier, un fichier par ligne indiquant le chemin relatif configuré dans le jeu de données.
Lorsque vous utilisez cette option, ne spécifiez pas le nom du fichier dans l'ensemble de données. Pour plus d’exemples, consultez Exemples de listes de fichiers.
No
Paramètres supplémentaires :
recursive Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié. Lorsque l’option « recursive » est définie sur true et que le récepteur est un magasin basé sur un fichier, un dossier vide ou un sous-dossier n’est pas copié ou créé sur le récepteur.
Les valeurs autorisées sont true (par défaut) et false.
Cette propriété ne s’applique pas lorsque vous configurez fileListPath.
No
deleteFilesAfterCompletion Indique si les fichiers binaires seront supprimés du magasin source après leur déplacement vers le magasin de destination. La suppression de fichier s'effectue par fichier, donc lorsque l'activité de copie échoue, vous verrez que certains fichiers ont déjà été copiés vers la destination et supprimés de la source, tandis que d'autres restent toujours dans le magasin source.
Cette propriété est valide uniquement dans un scénario de copie de fichiers binaires. La valeur par défaut est false.
No
modifiedDatetimeStart Filtre de fichiers basé sur l'attribut : Dernière modification.
Les fichiers seront sélectionnés si l’heure de leur dernière modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd. L’heure est appliquée au fuseau horaire UTC au format « 2018-12-01T05:00:00Z ».
Les propriétés peuvent avoir la valeur Null, ce qui a pour effet qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés.
Cette propriété ne s’applique pas lorsque vous configurez fileListPath.
No
modifiedDatetimeEnd Identique à ce qui précède. No
enablePartitionDiscovery Pour les fichiers partitionnés, spécifiez s’il faut analyser les partitions à partir du chemin d’accès du fichier et les ajouter en tant qu’autres colonnes sources.
Les valeurs autorisées sont false (par défaut) et true.
No
partitionRootPath Lorsque la découverte de partition est activée, spécifiez le chemin racine absolu pour pouvoir lire les dossiers partitionnés en tant que colonnes de données.

S’il n’est pas spécifié, par défaut,
– Quand vous utilisez le chemin du fichier dans le jeu de données ou la liste des fichiers sur la source, le chemin racine de la partition est le chemin configuré dans le jeu de données.
– Quand vous utilisez le filtre de dossiers de caractères génériques, le chemin racine de la partition est le sous-chemin avant le premier caractère générique.

Par exemple, en supposant que vous configurez le chemin dans le jeu de données en tant que « root/folder/year=2020/month=08/day=27 » :
– Si vous spécifiez le chemin racine de la partition en tant que « root/folder/year=2020 », l’activité de copie génère deux colonnes supplémentaires, month et day, ayant respectivement la valeur « 08 » et « 27 », en plus des colonnes contenues dans les fichiers.
– Si le chemin racine de la partition n’est pas spécifié, aucune colonne supplémentaire n’est générée.
No
maxConcurrentConnections La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. No

Example:

"activities":[
    {
        "name": "CopyFromADLSGen2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "AzureBlobFSReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Data Lake Storage Gen2 comme type de récepteur

Azure Data Factory prend en charge les formats de fichier suivants. Reportez-vous à chaque article pour les paramètres basés sur le format.

Les propriétés suivantes sont prises en charge pour Data Lake Storage Gen2 dans les paramètres storeSettings du récepteur de copie basée sur le format :

Property Description Required
type La propriété type sous storeSettings doit être définie sur AzureBlobFSWriteSettings. Yes
copyBehavior Définit le comportement de copie lorsque la source est constituée de fichiers d’une banque de données basée sur un fichier.

Les valeurs autorisées sont les suivantes :
- PreserveHierarchy (par défaut) : conserve la hiérarchie des fichiers dans le dossier cible. Le chemin relatif du fichier source vers le dossier source est identique au chemin relatif du fichier cible vers le dossier cible.
- FlattenHierarchy : tous les fichiers du dossier source figurent dans le premier niveau du dossier cible. Les noms des fichiers cibles sont générés automatiquement.
- MergeFiles : fusionne tous les fichiers du dossier source dans un même fichier. Si le nom de fichier est spécifié, le nom de fichier fusionné est le nom spécifié. Dans le cas contraire, il s’agit d’un nom de fichier généré automatiquement.
No
blockSizeInMB Spécifiez la taille du bloc (en Mo) qui est utilisée pour écrire des données dans ADLS Gen2. En savoir plus sur les objets blobs de blocs.
Les valeurs autorisées sont comprises entre 4 et 100 Mo.
Par défaut, ADF détermine automatiquement la taille du bloc en fonction du type et des données de votre magasin source. Pour une copie non binaire dans ADLS Gen2, la taille de bloc par défaut est de 100 Mo, ce qui permet le stockage d’environ 4,75 To de données au maximum. Il peut ne pas être optimal lorsque vos données ne sont pas volumineuses, en particulier lorsque vous utilisez le runtime d’intégration auto-hébergé avec un réseau médiocre, ce qui entraîne un délai d’expiration d’opération ou un problème de performances. Vous pouvez spécifier explicitement une taille de bloc, tandis que vous vérifiez que blockSizeInMB*50000 est suffisamment grand pour stocker les données, sinon l’exécution de l’activité de copie échoue.
No
maxConcurrentConnections La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. No
metadata Définissez des métadonnées personnalisées lors de la copie dans le récepteur. Chaque objet sous le tableau metadata représente une colonne supplémentaire. name définit le nom de clé de métadonnées et value indique la valeur des données de cette clé. Si la fonctionnalité de conservation des attributs est utilisée, les métadonnées spécifiées vont s’unir/remplacer les métadonnées du fichier source.

Les valeurs de données autorisées sont :
- $$LASTMODIFIED : une variable réservée indique de stocker l'heure de dernière modification des fichiers sources. Appliquez à la source basée sur un fichier uniquement avec le format binaire.
- Expression
- Valeur statique
No

Example:

"activities":[
    {
        "name": "CopyToADLSGen2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureBlobFSWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

Exemples de filtres de dossier et de fichier

Cette section décrit le comportement résultant de l’utilisation de filtres de caractères génériques dans les noms de fichier et les chemins de dossier.

folderPath fileName recursive Structure du dossier source et résultat du filtrage (les fichiers en gras sont récupérés)
Folder* (vide, utiliser la valeur par défaut) false FolderA
     File1.csv
     File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (vide, utiliser la valeur par défaut) true FolderA
     File1.csv
     File2.json
    Subfolder1
         File3.csv
         File4.json
         File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv false FolderA
     File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true FolderA
     File1.csv
    File2.json
    Subfolder1
         File3.csv
        File4.json
         File5.csv
AnotherFolderB
    File6.csv

Exemples de liste de fichiers

Cette section décrit le comportement résultant de l’utilisation du chemin d’accès à la liste de fichiers dans la source de l’activité de copie.

En supposant que vous disposez de la structure de dossiers source suivante et que vous souhaitez copier les fichiers en gras :

Exemple de structure source Contenu de FileListToCopy.txt Configuration ADF
filesystem
    FolderA
         File1.csv
        File2.json
        Subfolder1
             File3.csv
            File4.json
             File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
Dans le jeu de données :
- système de fichiers : filesystem
- chemin d’accès du dossier : FolderA

Dans la source de l’activité de copie :
- chemin d’accès à la liste de fichiers : filesystem/Metadata/FileListToCopy.txt

Le chemin d’accès à la liste de fichiers pointe vers un fichier texte dans le même magasin de données qui contient la liste de fichiers que vous voulez copier, un fichier par ligne étant le chemin d’accès relatif au chemin d’accès configuré dans le jeu de données.

Quelques exemples de valeurs recursive et copyBehavior

Cette section décrit le comportement résultant de l’opération de copie pour différentes combinaisons de valeurs recursive et copyBehavior.

recursive copyBehavior Structure du dossier source Cible obtenue
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le Dossier1 cible est créé et structuré de la même manière que la source :

Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le dossier cible Dossier1 est créé et structuré comme suit :

Folder1
    nom généré automatiquement pour Fichier1
    nom généré automatiquement pour File2
    nom généré automatiquement pour File3
    nom généré automatiquement pour File4
    nom généré automatiquement pour File5
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le dossier cible Dossier1 est créé et structuré comme suit :

Folder1
    Le contenu de File1 + File2 + File3 + File4 + File5 est fusionné en un seul fichier avec un nom de fichier généré automatiquement.
false preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le dossier cible Dossier1 est créé et structuré comme suit :

Folder1
    File1
    File2

Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.
false flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le dossier cible Dossier1 est créé et structuré comme suit :

Folder1
    nom généré automatiquement pour Fichier1
    nom généré automatiquement pour File2

Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.
false mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Le dossier cible Dossier1 est créé et structuré comme suit :

Folder1
    Le contenu de File1 + File2 est fusionné en un seul fichier avec un nom de fichier généré automatiquement. nom généré automatiquement pour Fichier1

Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.

Conserver les métadonnées lors de la copie

Lorsque vous copiez des fichiers depuis Amazon S3/Azure Blob/Azure Data Lake Storage Gen2 vers Azure Data Lake Storage Gen2/Azure Blob, vous pouvez choisir de conserver les métadonnées des fichiers avec les données. Pour plus d’informations, consultez Conserver les métadonnées.

Conserver les listes de contrôle d'accès (ACL) de Data Lake Storage Gen1/Gen2

Lorsque vous copiez des fichiers à partir d’Azure Data Lake Storage Gen1/Gen2 vers Gen2, vous pouvez choisir de conserver les listes de contrôle d’accès (ACL) POSIX, ainsi que des données. Pour plus d’informations, consultez Conserver les listes de contrôle d’accès entre Data Lake Storage Gen1/Gen2 et Gen2.

Tip

Pour copier des données à partir d’Azure Data Lake Storage Gen1 dans Gen2 en général, consultez l’article Copier les données depuis Azure Data Lake Storage Gen1 vers Gen2 pour obtenir une procédure pas à pas et découvrir les meilleures pratiques.

Propriétés du mappage de flux de données

Lorsque vous transformez des données en flux de données de mappage, vous pouvez lire et écrire des fichiers à partir d’Azure Data Lake Storage Gen2 aux formats suivants :

Les paramètres spécifiques au format se trouvent dans la documentation de ce format. Pour plus d’informations, consultez Transformation de la source d’un mappage de flux de données et Transformation du récepteur dans le flux de données de mappage.

Transformation de la source

Dans la transformation de la source, vous pouvez lire à partir d’un conteneur, d’un dossier ou d’un fichier individuel dans Azure Data Lake Storage Gen2. L’onglet Options de la source vous permet de gérer la façon dont les fichiers sont lus.

Capture d'écran de l'onglet Options source dans la transformation de la source du flux de données de mappage.

Chemin générique : L'utilisation d'un modèle générique demandera à ADF de parcourir chaque dossier et fichier correspondant dans une seule transformation source. Il s’agit d’un moyen efficace de traiter plusieurs fichiers dans un seul et même flux. Ajoutez plusieurs modèles de correspondance à caractères génériques avec le signe + qui apparaît quand vous placez le pointeur sur votre modèle existant.

Dans le conteneur source, choisissez une série de fichiers qui correspondent à un modèle. Seul le conteneur peut être spécifié dans le jeu de données. Votre chemin contenant des caractères génériques doit donc également inclure le chemin de votre dossier à partir du dossier racine.

Exemples de caractères génériques :

  • * Représente n’importe quel ensemble de caractères

  • ** Représente une imbrication de répertoires récursifs

  • ? Remplace un caractère

  • [] Met en correspondance un ou plusieurs caractères indiqués entre crochets

  • /data/sales/**/*.csv Obtient tous les fichiers CSV se trouvant sous /data/sales

  • /data/sales/20??/**/ Obtient tous les fichiers datés du 20ème siècle

  • /data/sales/*/*/*.csv Obtient les fichiers CSV à deux niveaux sous /data/sales

  • /data/sales/2004/*/12/[XY]1?.csv Obtient tous les fichiers CSV datés de décembre 2004, commençant par X ou Y et ayant comme préfixe un nombre à deux chiffres

Chemin racine de la partition : si vous avez partitionné des dossiers dans votre source de fichier avec un format key=value (par exemple, année=2019), vous pouvez attribuer le niveau supérieur de cette arborescence de dossiers de partitions à un nom de colonne dans votre flux de données.

Tout d’abord, définissez un caractère générique pour inclure tous les chemins d’accès aux dossiers partitionnés, ainsi qu’aux fichiers feuilles que vous souhaitez lire.

Capture d'écran des paramètres du fichier source de partition dans la transformation de la source du flux de données de mappage.

Utilisez le paramètre Chemin racine de la partition pour définir le niveau supérieur de la structure de dossiers. Quand vous affichez le contenu de vos données à l’aide d’un aperçu des données, vous voyez qu’ADF ajoute les partitions résolues trouvées dans chacun de vos niveaux de dossiers.

Chemin racine de la partition

Liste des fichiers : Il s'agit d'un ensemble de fichiers. Créez un fichier texte qui inclut une liste de fichiers avec chemin relatif à traiter. Pointez sur ce fichier texte.

Colonne pour stocker le nom du fichier : Stockez le nom du fichier source dans une colonne de vos données. Entrez un nouveau nom de colonne pour stocker la chaîne de nom de fichier.

Après l'achèvement : Choisissez de ne rien faire avec le fichier source après l'exécution du flux de données, supprimez le fichier source ou déplacez le fichier source. Pour le déplacement, les chemins sont des chemins relatifs.

Pour déplacer les fichiers sources vers un autre emplacement de post-traitement, sélectionnez tout d’abord « Déplacer » comme opération de fichier. Définissez ensuite le répertoire de provenance (« from »). Si vous n’utilisez pas de caractères génériques pour votre chemin, le paramètre « from » sera le même dossier que votre dossier source.

Si vous avez un chemin d’accès source avec caractère générique, votre syntaxe se présente comme suit :

/data/sales/20??/**/*.csv

vous pouvez spécifier «from» sous la forme

/data/sales

et « to » sous la forme

/backup/priorSales

Dans le cas présent, tous les fichiers qui provenaient de /data/sales sont déplacés dans /backup/priorSales.

Note

Les opérations de fichier s’exécutent uniquement quand vous démarrez le flux de données à partir d’une exécution de pipeline (débogage ou exécution) qui utilise l’activité Exécuter le flux de données dans un pipeline. Les opérations de fichiers ne s’exécutent pas en mode débogage de Data Flow.

Filtrer par dernière modification : Vous pouvez filtrer les fichiers que vous traitez en spécifiant une plage de dates à laquelle ils ont été modifiés pour la dernière fois. Toutes les dates et heures sont exprimées en UTC.

Activer la capture des données modifiées : Si cette option est vraie, vous obtiendrez uniquement les fichiers nouveaux ou modifiés à partir de la dernière exécution. Vous obtiendrez toujours le chargement initial des données d’instantané complètes lors de la première exécution, suivi de la capture des fichiers modifiés uniquement lors des prochaines exécutions. Pour plus d’informations, consultez la rubrique sur la Capture des changements de données

Capture d'écran montrant l'activation de la capture des données modifiées.

Propriétés du récepteur

Dans la transformation du récepteur, vous pouvez écrire dans un conteneur ou un dossier dans Azure Data Lake Storage Gen2. L’onglet Paramètres vous permet de gérer la façon dont les fichiers sont écrits.

Options du récepteur

Effacer le dossier : Détermine si le dossier de destination doit être effacé ou non avant l'écriture des données.

Option de nom de fichier : Détermine comment les fichiers de destination sont nommés dans le dossier de destination. Les options de nom de fichier sont les suivantes :

  • Défaut : Autoriser Spark à nommer les fichiers en fonction des valeurs par défaut de PART.
  • Modèle : Saisissez un modèle qui énumère vos fichiers de sortie par partition. Par exemple, loans[n].csv crée loans1.csv, loans2.csv, etc.
  • Par partition : Entrez un nom de fichier par partition.
  • En tant que données dans la colonne : Définissez le fichier de sortie sur la valeur d'une colonne. Le chemin est relatif au conteneur du jeu de données et non pas au dossier de destination. Si vous avez un chemin de dossier dans votre jeu de données, il sera remplacé.
  • Sortie dans un seul fichier : Combinez les fichiers de sortie partitionnés en un seul fichier nommé. Le chemin est relatif au dossier du jeu de données. Sachez que l’opération de fusion peut éventuellement échouer en fonction de la taille du nœud. Cette option n'est pas recommandée pour les grands ensembles de données.

Citer tout : Détermine s'il faut placer toutes les valeurs entre guillemets

umask

Vous pouvez éventuellement définir le umask pour les fichiers en utilisant les indicateurs POSIX de lecture, écriture et exécution pour le propriétaire, l’utilisateur et le groupe.

Commandes de pré-traitement et de traitement

Vous pouvez éventuellement exécuter des commandes du système de fichiers Hadoop avant ou après l’écriture dans un récepteur d’ADLS Gen2. Les commandes suivantes sont prises en charge :

  • cp
  • mv
  • rm
  • mkdir

Examples:

  • mkdir /folder1
  • mkdir -p folder1
  • mv /folder1/*.* /folder2/
  • cp /folder1/file1.txt /folder2
  • rm -r /folder1

Les paramètres sont également pris en charge par le générateur d’expressions, par exemple :

mkdir -p {$tempPath}/commands/c1/c2 mv {$tempPath}/commands/*.* {$tempPath}/commands/c1/c2

Par défaut, les dossiers sont créés en tant qu’utilisateur/racine. Reportez-vous au conteneur de niveau supérieur avec « / ».

Propriétés de l’activité Lookup

Pour en savoir plus sur les propriétés, consultez Activité Lookup.

Propriétés de l’activité GetMetadata

Pour en savoir plus sur les propriétés, consultez Activité GetMetadata.

Propriétés de l’activité Delete

Pour en savoir plus sur les propriétés, consultez Activité Delete.

Modèles hérités

Note

Les Modèles suivants sont toujours pris en charge tels quels à des fins de compatibilité descendante. Vous êtes suggéré d’utiliser le nouveau modèle mentionné dans les sections ci-dessus à l’avenir, et l’interface utilisateur de création ADF a basculé vers la génération du nouveau modèle.

Modèle de jeu de données hérité

Property Description Required
type La propriété type du jeu de données doit être définie sur AzureBlobFSFile. Yes
folderPath Chemin vers le dossier dans Data Lake Storage Gen2. Si non spécifié, il pointe vers la racine.

Le filtre de caractères génériques est pris en charge. Les caractères génériques autorisés sont les suivants : * (correspond à zéro ou plusieurs caractères) et ? (correspond à zéro ou un caractère). Utilisez ^ comme caractère d'échappement si le nom réel de votre dossier contient des caractères génériques ou ce caractère d'échappement.

Exemples : filesystem/folder/. Consultez d’autres exemples dans les exemples de filtre de dossier et de fichier.
No
fileName Filtre de nom ou de caractère générique pour les fichiers sous le « folderPath » spécifié. Si vous ne spécifiez pas de valeur pour cette propriété, le jeu de données pointe vers tous les fichiers du dossier.

Dans le filtre, les caractères génériques autorisés sont * (correspond à zéro caractère ou plus) et ? (correspond à zéro ou un caractère).
- Exemple 1 : "fileName": "*.csv"
- Exemple 2 : "fileName": "???20180427.txt"
Utilisez ^ comme caractère d'échappement si le nom réel de votre fichier contient des caractères génériques ou ce caractère d'échappement.

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é, l'activité de copie génère automatiquement le nom de fichier avec le modèle suivant : "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]", par exemple, « Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz ». Si vous effectuez la copie à partir d’une source tabulaire à l’aide d’un nom de table au lieu d’une requête, le modèle du nom est « [nom_table].[format].[compression si configurée] », par exemple « MyTable.csv ».
No
modifiedDatetimeStart Filtre de fichiers en fonction de l’attribut Dernière modification. Les fichiers sont sélectionnés si leur dernière heure de modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd. L’heure est appliquée au fuseau horaire UTC au format « 2018-12-01T05:00:00Z ».

Les performances globales du déplacement des données sont influencées par l’activation de ce paramètre lorsque vous souhaitez appliquer un filtre sur de grandes quantités de fichiers.

Les propriétés peuvent être NULL, ce qui signifie qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés.
No
modifiedDatetimeEnd Filtre de fichiers en fonction de l’attribut Dernière modification. Les fichiers sont sélectionnés si leur dernière heure de modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd. L’heure est appliquée au fuseau horaire UTC au format « 2018-12-01T05:00:00Z ».

Les performances globales du déplacement des données sont influencées par l’activation de ce paramètre lorsque vous souhaitez appliquer un filtre sur de grandes quantités de fichiers.

Les propriétés peuvent être NULL, ce qui signifie qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés.
No
format 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.

Si vous souhaitez analyser ou générer des fichiers d’un format spécifique, les types de formats de fichier pris en charge sont les suivants : TextFormat, JsonFormat, AvroFormat, OrcFormat et ParquetFormat. Définissez la propriété type située sous Format sur l’une de ces valeurs. Pour en savoir plus, voir les sections Format Text, Format JSON, Format Avro, Format ORC et Format Parquet.
Non (uniquement pour un scénario de copie binaire)
compression Spécifiez le type et le niveau de compression pour les données. Pour plus d’informations, voir Formats de fichier et de codecs de compression pris en charge.
Les types pris en charge sont **GZip**, **Deflate**, **BZip2**, and **ZipDeflate** .
Les niveaux pris en charge sont Optimal et Fastest.
No

Tip

Pour copier tous les fichiers d’un dossier, spécifiez folderPath uniquement.
Pour copier un seul fichier avec un nom donné, spécifiez folderPath avec la partie dossier et fileName avec un nom de fichier.
Pour copier un sous-ensemble de fichiers d’un dossier, spécifiez folderPath avec la partie dossier et fileName avec un filtre de caractères génériques.

Example:

{
    "name": "ADLSGen2Dataset",
    "properties": {
        "type": "AzureBlobFSFile",
        "linkedServiceName": {
            "referenceName": "<Azure Data Lake Storage Gen2 linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "myfilesystem/myfolder",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Modèle hérité de la source d’activité de copie

Property Description Required
type La propriété type de la source d’activité de copie doit être définie sur AzureBlobFSSource. Yes
recursive Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié. Lorsque l’option « recursive » est définie sur true et que le récepteur est un magasin basé sur un fichier, un dossier vide ou un sous-dossier n’est pas copié ou créé sur le récepteur.
Les valeurs autorisées sont true (par défaut) et false.
No
maxConcurrentConnections La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. No

Example:

"activities":[
    {
        "name": "CopyFromADLSGen2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ADLS Gen2 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureBlobFSSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Modèle hérité du récepteur d’activité de copie

Property Description Required
type La propriété type du récepteur d’activité de copie doit être définie sur AzureBlobFSSink. Yes
copyBehavior Définit le comportement de copie lorsque la source est constituée de fichiers d’une banque de données basée sur un fichier.

Les valeurs autorisées sont les suivantes :
- PreserveHierarchy (par défaut) : conserve la hiérarchie des fichiers dans le dossier cible. Le chemin relatif du fichier source vers le dossier source est identique au chemin relatif du fichier cible vers le dossier cible.
- FlattenHierarchy : tous les fichiers du dossier source figurent dans le premier niveau du dossier cible. Les noms des fichiers cibles sont générés automatiquement.
- MergeFiles : fusionne tous les fichiers du dossier source dans un même fichier. Si le nom de fichier est spécifié, le nom de fichier fusionné est le nom spécifié. Dans le cas contraire, il s’agit d’un nom de fichier généré automatiquement.
No
maxConcurrentConnections La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. No

Example:

"activities":[
    {
        "name": "CopyToADLSGen2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ADLS Gen2 output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureBlobFSSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Capture des données modifiées

Azure Data Factory peut obtenir des fichiers nouveaux ou modifiés uniquement à partir d’Azure Data Lake Storage Gen2 en activant l’option Activer la capture des changements de données dans la transformation source du flux de données de mappage. Avec cette option de connecteur, vous pouvez lire les fichiers nouveaux ou mis à jour uniquement et appliquer des transformations avant de charger les données transformées dans les jeux de données de destination de votre choix.

Veillez à ne pas changer le nom du pipeline et de l’activité, afin que le point de contrôle puisse toujours être enregistré à partir de la dernière exécution et que vous puissiez obtenir les modifications à partir de ce moment-là. Si vous modifiez le nom de votre pipeline ou le nom de votre activité, le point de contrôle sera réinitialisé et vous recommencerez depuis le début lors de la prochaine exécution.

Lorsque vous déboguez le pipeline, Activer la capture des changements de données fonctionne également. Le point de contrôle est réinitialisé quand vous actualisez votre navigateur lors de l’exécution du débogage. Une fois que vous êtes satisfait du résultat de l’exécution du débogage, vous pouvez publier et déclencher le pipeline. Il commencera toujours depuis le début, quel que soit le point de contrôle précédent enregistré par l’exécution du débogage.

Dans la section de monitoring, vous avez toujours la possibilité de réexécuter un pipeline. Lorsque vous procédez ainsi, les modifications sont toujours obtenues à partir de l’enregistrement de point de contrôle dans l’exécution de votre pipeline sélectionné.

Consultez les magasins de données pris en charge pour obtenir la liste des sources et magasins de données pris en charge en tant que récepteurs par l’activité Copy.