Copier des données depuis ou vers Azure Files à l’aide d’Azure Data Factory
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
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, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
Cet article explique comment copier des données vers et depuis Azure Files. Pour en savoir plus sur Azure Data Factory, lisez l’article d’introduction.
Fonctionnalités prises en charge
Ce connecteur Azure Files est pris en charge pour les fonctionnalités suivantes :
Fonctionnalités prises en charge | IR | Point de terminaison privé managé |
---|---|---|
Activité de copie (source/récepteur) | ① ② | ✓ Exclure le compte de stockage V1 |
Activité de recherche | ① ② | ✓ Exclure le compte de stockage V1 |
Activité GetMetadata | ① ② | ✓ Exclure le compte de stockage V1 |
Supprimer l’activité | ① ② | ✓ Exclure le compte de stockage V1 |
① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé
Vous pouvez copier des données à partir d’Azure Files vers toute banque de données réceptrice ou copier des données depuis toute banque de données source prise en charge vers Azure Files. Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs pour l’activité de copie, consultez Magasins de données et formats pris en charge.
Plus précisément, ce connecteur Azure Files prend en charge ce qui suit :
- Copie de fichiers en utilisant des authentifications par clé de compte et par signature d’accès partagé (SAS) de service.
- Copie de fichiers en l'état ou analyse/génération de fichiers avec les formats de fichier et codecs de compression pris en charge.
Prise en main
Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :
- L’outil Copier des données
- Le portail Azure
- Le kit SDK .NET
- Le kit SDK Python
- Azure PowerShell
- L’API REST
- Le modèle Azure Resource Manager
Créez un service lié à Azure Files à l’aide de l’interface utilisateur
Utilisez les étapes suivantes pour créer un service lié à Azure Files dans l’interface utilisateur du portail Azure.
Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse et sélectionnez Services liés, puis cliquez sur Nouveau :
Recherchez le fichier, puis sélectionnez le connecteur pour Azure Files nommé Stockage de fichiers Azure.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
Détails de configuration des connecteurs
Les sections suivantes fournissent des informations détaillées sur les propriétés utilisées pour définir les entités spécifiques d’Azure Files.
Propriétés du service lié
Le connecteur Azure Files prend en charge les types d’authentification suivants. Pour plus d’informations, consultez les sections correspondantes.
- Authentification par clé de compte
- Authentification avec une signature d’accès partagé
- Authentification d’identité managée affectée par le système
- Authentification d’identité managée affectée par l’utilisateur
Remarque
Si vous utilisiez le service lié Azure Files avec le modèle hérité, avec l’interface utilisateur de création ADF présentée comme « Authentification de base », il est toujours pris en charge en l’état, mais il vous est suggéré d’utiliser le nouveau modèle à l’avenir. Le modèle hérité transfère des données depuis/vers le stockage via le protocole SMB (Server Message Block), tandis que le nouveau modèle utilise le kit SDK de stockage qui offre un meilleur débit. Pour effectuer la mise à niveau, vous pouvez modifier votre service lié pour basculer la méthode d’authentification sur « Clé de compte » ou « URI SAS ». Aucune modification n’est nécessaire sur le jeu de données ou l’activité de copie.
Authentification par clé de compte
Pour l’authentification par clé de compte Azure Files, Data Factory prend en charge les propriétés suivantes :
Property | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur : AzureFileStorage. | Oui |
connectionString | Spécifiez les informations requises pour se connecter à Azure Files. Vous pouvez également définir une clé de compte dans Azure Key Vault et extraire la configuration accountKey de la chaîne de connexion. Pour plus d’informations, consultez les exemples suivants et l’article Stocker les informations d’identification dans Azure Key Vault. |
Oui |
fileShare | Spécifiez le partage de fichiers. | Oui |
instantané | Spécifiez la date de l’instantané de partage de fichiers si vous souhaitez effectuer une copie à partir d’un instantané. | Non |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Vous pouvez utiliser runtime d’intégration Azure ou un runtime d’intégration auto-hébergé (si votre banque de données se trouve dans un réseau privé). À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non |
Exemple :
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemple : stockage de la clé de compte dans Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
"fileShare": "<file share name>",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"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. Pour plus d’informations sur les signatures d’accès partagé, consultez Signatures d’accès partagé : Comprendre le modèle de signature d’accès partagé.
Pour l’authentification par signature d’accès partagé, le service prend en charge les propriétés suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur : AzureFileStorage. | Oui |
sasUri | Spécifiez l’URI de signature d’accès partagé aux ressources. 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. |
Oui |
fileShare | Spécifiez le partage de fichiers. | Oui |
instantané | Spécifiez la date de l’instantané de partage de fichiers si vous souhaitez effectuer une copie à partir d’un instantané. | Non |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Vous pouvez utiliser runtime d’intégration Azure ou un runtime d’intégration auto-hébergé (si votre banque de données se trouve dans un réseau privé). À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non |
Exemple :
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the resource e.g. https://<accountname>.file.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemple : stocker le jeton SAP dans Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.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>>"
},
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Authentification d’identité managée affectée par le système
Une fabrique de données ou un pipeline de Synapse peut être associé à une identité managée attribuée par le système pour les ressources Azure, qui représente cette ressource pour l’authentification auprès d’autres services Azure. Vous pouvez utiliser cette identité managée affectée par le système pour l’authentification Azure Files. 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 le système, effectuez les étapes suivantes :
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 attribué par le système générée en même temps que votre fabrique ou espace de travail Synapse.
Accordez l’autorisation d’identité managée dans Azure Files. Pour plus d’informations sur les rôles, consultez cet article.
- En tant que source, dans Contrôle d’accès (IAM), accordez au moins le rôle Lecteur privilégié des données du fichier de stockage.
- En tant que récepteur, dans Contrôle d’accès (IAM), accordez au moins le rôle Contributeur privilégié des données du fichier de stockage.
Les propriétés suivantes sont prises en charge pour un service lié Azure Files :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur AzureFileStorage. | Oui |
serviceEndpoint | Spécifiez le point de terminaison de service Azure Files en suivant le modèle https://<accountName>.file.core.windows.net/ . |
Oui |
fileShare | Spécifiez le partage de fichiers. | Oui |
instantané | Spécifiez la date de l’instantané de partage de fichiers si vous souhaitez effectuer une copie à partir d’un instantané. | Non |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Vous pouvez utiliser Azure Integration Runtime. À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non |
Remarque
L’authentification d’identité managée affectée par le système est prise en charge seulement par le runtime d’intégration Azure.
Exemple :
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Authentification d’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 Azure Files, ce qui permet l’accès aux données et leur copie depuis ou vers Azure Files. 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 :
Créez une ou plusieurs identités managées affectées par l’utilisateur et accordez une autorisation dans Azure Files. Pour plus d’informations sur les rôles, consultez cet article.
- En tant que source, dans Contrôle d’accès (IAM), accordez au moins le rôle Lecteur privilégié des données du fichier de stockage.
- En tant que récepteur, dans Contrôle d’accès (IAM), accordez au moins le rôle Contributeur privilégié des données du fichier de stockage.
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.
Les propriétés suivantes sont prises en charge pour un service lié Azure Files :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur AzureFileStorage. | Oui |
serviceEndpoint | Spécifiez le point de terminaison de service Azure Files en suivant le modèle https://<accountName>.file.core.windows.net/ . |
Oui |
credentials | Spécifiez l’identité managée affectée par l’utilisateur en tant qu’objet d’informations d’identification. | Oui |
fileShare | Spécifiez le partage de fichiers. | Oui |
instantané | Spécifiez la date de l’instantané de partage de fichiers si vous souhaitez effectuer une copie à partir d’un instantané. | Non |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Vous pouvez utiliser runtime d’intégration Azure ou un runtime d’intégration auto-hébergé (si votre banque de données se trouve dans un réseau privé). À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non |
Exemple :
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Modèle hérité
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur : AzureFileStorage. | Oui |
host | Spécifiez le point de terminaison Azure Files comme suit : \- Utilisation de l’interface utilisateur : spécifiez \\<storage name>.file.core.windows.net\<file service name> - Utilisation de JSON : "host": "\\\\<storage name>.file.core.windows.net\\<file service name>" . |
Oui |
userid | Spécifiez l’utilisateur pouvant accéder à Azure Files comme suit : \- Utilisation de l’interface utilisateur : spécifiez AZURE\<storage name> \- Utilisation de JSON : "userid": "AZURE\\<storage name>" . |
Oui |
mot de passe | Spécifiez la clé d’accès au stockage. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité dans Data Factory, ou référencez un secret stocké dans Azure Key Vault. | Oui |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Vous pouvez utiliser runtime d’intégration Azure ou un runtime d’intégration auto-hébergé (si votre banque de données se trouve dans un réseau privé). À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non pour Source, Oui pour Récepteur |
Exemple :
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
"userid": "AZURE\\<storage name>",
"password": {
"type": "SecureString",
"value": "<storage access key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
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 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.
- Format Avro
- Format binaire
- Format de texte délimité
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Les propriétés suivantes sont prises en charge pour Azure Files sous les paramètres location
dans le jeu de données basé sur le format :
Property | Description | Obligatoire |
---|---|---|
type | La propriété type sous location dans le jeu de données doit être définie sur AzureFileStorageLocation. |
Oui |
folderPath | Chemin d’accès du dossier. Si vous souhaitez utiliser un caractère générique pour filtrer le dossier, ignorez ce paramètre et spécifiez-le dans les paramètres de la source de l’activité. | Non |
fileName | Nom de fichier dans le chemin d’accès 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é. | Non |
Exemple :
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureFileStorageLocation",
"folderPath": "root/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 l’article Pipelines. Cette section fournit la liste des propriétés prises en charge par Azure Files en tant que source et récepteur.
Azure Files en tant que 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.
- Format Avro
- Format binaire
- Format de texte délimité
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Les propriétés suivantes sont prises en charge pour Azure Files sous les paramètres storeSettings
dans la source de copie basée sur le format :
Property | Description | Obligatoire |
---|---|---|
type | La propriété type sous storeSettings doit être définie sur AzureFileStorageReadSettings. |
Oui |
Recherchez les fichiers à copier : | ||
OPTION 1 : chemin d’accès statique |
Copiez à partir 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 dossier, spécifiez en plus wildcardFileName comme * . |
|
OPTION 2 : préfixe de fichier - prefix |
Préfixe du nom de fichier sous le partage de fichiers donné, configuré dans un jeu de données pour filtrer les fichiers sources. Les fichiers dont le nom commence par fileshare_in_linked_service/this_prefix sont sélectionnés. Il utilise le filtre côté service pour Azure Files, qui offre de meilleures performances qu’un filtre de caractères génériques. Cette fonctionnalité n’est pas prise en charge lors de l’utilisation d’un modèle de service lié hérité. |
Non |
OPTION 3 : caractère générique - wildcardFolderPath |
Chemin d’accès du dossier avec des caractères génériques 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. |
Non |
OPTION 3 : caractère générique - wildcardFileName |
Nom du fichier avec des caractères génériques situé dans le chemin d’accès 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. |
Oui |
OPTION 4 : 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 d’accès relatif configuré dans le jeu de données. Si vous utilisez cette option, ne spécifiez pas de nom de fichier dans le jeu de données. Pour plus d’exemples, consultez Exemples de listes de fichiers. |
Non |
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 . |
Non |
deleteFilesAfterCompletion | Indique si les fichiers binaires seront supprimés du magasin source après leur déplacement vers le magasin de destination. La suppression se faisant par fichier, lorsque l’activité de copie échoue, vous pouvez constater que certains fichiers ont déjà été copiés vers la destination et supprimés de la source, tandis que d’autres restent 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. |
Non |
modifiedDatetimeStart | Filtre de fichiers en fonction de 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 . |
Non |
modifiedDatetimeEnd | Identique à ce qui précède. | Non |
enablePartitionDiscovery | Pour les fichiers partitionnés, spécifiez s’il faut analyser les partitions à partir du chemin d’accès au fichier et les ajouter en tant que colonnes sources supplémentaires. Les valeurs autorisées sont false (par défaut) et true. |
Non |
partitionRootPath | Lorsque la découverte de partition est activée, spécifiez le chemin d’accès 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 d’accès 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 d’accès configuré dans le jeu de données. – Quand vous utilisez le filtre de dossiers de caractères génériques, le chemin d’accès racine de la partition est le sous-chemin d’accès avant le premier caractère générique. Par exemple, en supposant que vous configurez le chemin d’accès dans le jeu de données en tant que « root/folder/year=2020/month=08/day=27 » : – Si vous spécifiez le chemin d’accès 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 d’accès racine de la partition n’est pas spécifié, aucune colonne supplémentaire n’est générée. |
Non |
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. | Non |
Exemple :
"activities":[
{
"name": "CopyFromAzureFileStorage",
"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": "AzureFileStorageReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Files en tant que 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 Azure Files sous les paramètres storeSettings
dans le récepteur de copie basée sur le format :
Property | Description | Obligatoire |
---|---|---|
type | La propriété type sous storeSettings doit être définie sur AzureFileStorageWriteSettings. |
Oui |
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 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. - 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 seul 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. |
Non |
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. | Non |
Exemple :
"activities":[
{
"name": "CopyToAzureFileStorage",
"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": "AzureFileStorageWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
Remarque
Lorsque vous utilisez l’identité managée attribuée par le système ou par l’utilisateur comme type d’authentification, vous pouvez copier jusqu’à 4 Mo de données dans le récepteur.
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 | DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
(vide, utiliser la valeur par défaut) | true | DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
*.csv |
false | DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
*.csv |
true | DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.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 |
---|---|---|
root DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv Métadonnées FileListToCopy.txt |
File1.csv Subfolder1/File3.csv Subfolder1/File5.csv |
Dans le jeu de données : - chemin d’accès du dossier : root/FolderA Dans la source de l’activité de copie : - chemin d’accès à la liste de fichiers : root/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. |
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 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré de la même manière que la source : Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5. |
true | flattenHierarchy | Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré comme suit : Folder1 nom généré automatiquement pour Fichier1 nom généré automatiquement pour Fichier2 nom généré automatiquement pour Fichier3 nom généré automatiquement pour Fichier4 nom généré automatiquement pour Fichier5 |
true | mergeFiles | Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré comme suit : Folder1 Le contenu de Fichier1 + Fichier2 + Fichier3 + Fichier4 + Fichier5 est fusionné dans un fichier portant le nom généré automatiquement |
false | preserveHierarchy | Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré comme suit Folder1 Fichier1 Fichier2 Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés. |
false | flattenHierarchy | Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré comme suit Folder1 nom généré automatiquement pour Fichier1 nom généré automatiquement pour Fichier2 Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés. |
false | mergeFiles | Folder1 Fichier1 Fichier2 Sousdossier1 Fichier3 Fichier4 Fichier5 |
Le dossier cible Dossier1 est créé et structuré comme suit Folder1 Le contenu de Fichier1 + Fichier2 est fusionné dans un 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. |
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
Notes
Les Modèles suivants sont toujours pris en charge tels quels à des fins de compatibilité descendante. Il est recommandé d’utiliser le nouveau modèle mentionné dans les sections ci-dessus à partir de maintenant. L’interface utilisateur de création peut désormais générer ce nouveau modèle.
Modèle de jeu de données hérité
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type du jeu de données doit être définie sur : FileShare | Oui |
folderPath | Chemin d'accès au dossier. Le filtre de caractères génériques est pris en charge, et 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 ^ 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 : dossier_racine/sous-dossier/ ; consultez d’autres exemples dans Exemples de filtres de dossier et de fichier. |
Oui |
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 les suivants : * (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 votre nom de fichier réel 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 suivant ce modèle : « Data.[GUID de l’ID d’exécution de l’activité].[GUID si FlattenHierarchy].[format si configuré].[compression si configurée] », par exemple « Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz ». Si vous copiez à partir d’une source tabulaire à l’aide du nom de table au lieu de la requête, le modèle de nom est « [nom de la table].[format].[compression si configurée] », par exemple « MyTable.csv ». |
Non |
modifiedDatetimeStart | Filtre de fichiers en fonction de 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 ». Sachez que les performances globales du déplacement des données sont affectées par l’activation de ce paramètre lorsque vous souhaitez filtrer des fichiers parmi de grandes quantités de fichiers. Les propriétés peuvent avoir la valeur 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. |
Non |
modifiedDatetimeEnd | Filtre de fichiers en fonction de 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 ». Sachez que les performances globales du déplacement des données sont affectées par l’activation de ce paramètre lorsque vous souhaitez filtrer des fichiers parmi de grandes quantités de fichiers. Les propriétés peuvent avoir la valeur 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. |
Non |
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 dans un format spécifique, les types de format de fichier suivants sont pris en charge : 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, consultez les sections relatives à 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. Types pris en charge : GZip, Deflate, BZip2 et ZipDeflate. Niveaux pris en charge : Optimal et Fastest. |
Non |
Conseil
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 le nom du fichier.
Pour copier un sous-ensemble de fichiers d’un dossier, spécifiez folderPath avec la partie dossier et fileName avec le filtre de caractères génériques.
Notes
Si vous utilisez la propriété « fileFilter » pour le filtre de fichiers, il est toujours pris en charge tel quel, mais il est conseillé d’utiliser la nouvelle fonctionnalité de filtre ajoutée à « fileName » à l’avenir.
Exemple :
{
"name": "AzureFileStorageDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"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
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type de la source d’activité de copie doit être définie sur : FileSystemSource | Oui |
recursive | Indique si les données sont lues de manière récursive dans les sous-dossiers ou uniquement dans le dossier spécifié. Remarque : Quand l’option récursive a la valeur true et que le récepteur est un magasin basé sur des fichiers, le dossier/sous-dossier vide n’est pas copié/créé dans le récepteur. Valeurs autorisées : true (par défaut) et false |
Non |
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. | Non |
Exemple :
"activities":[
{
"name": "CopyFromAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure File Storage input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Modèle hérité du récepteur d’activité de copie
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type du récepteur d’activité de copie doit être définie sur : FileSystemSink | Oui |
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 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. - 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 seul fichier. Si le nom de fichier est spécifié, le nom de fichier fusionné est le nom spécifié. Dans le cas contraire, le nom de fichier est généré automatiquement. |
Non |
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. | Non |
Exemple :
"activities":[
{
"name": "CopyToAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure File Storage output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "FileSystemSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Contenu connexe
Pour obtenir une liste des magasins de données pris en charge comme sources et récepteurs par l’activité de copie, consultez la section sur les magasins de données pris en charge.