Copie de données à partir du Stockage compatible Amazon S3 avec 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 à partir d’Amazon Simple Storage Service (Amazon S3) Compatible Storage. Pour plus d’informations, consultez les articles de présentation pour Azure Data Factory et Synapse Analytics.
Fonctionnalités prises en charge
Ce connecteur Amazon S3 Compatible Storage est pris en charge pour les activités suivantes :
Fonctionnalités prises en charge | IR |
---|---|
Activité de copie (source/-) | ① ② |
Activité de recherche | ① ② |
Activité GetMetadata | ① ② |
Supprimer l’activité | ① ② |
① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé
Plus spécifiquement, ce connecteur Amazon S3 Compatible Storage prend en charge la copie de fichiers en l’état ou l’analyse de fichiers avec les formats de fichier et codecs de compression pris en charge. Le connecteur utilise AWS Signature version 4 pour authentifier les demandes auprès d’Amazon S3. Vous pouvez utiliser ce connecteur Amazon S3 Compatible Storage pour copier des données à partir de n’importe quel fournisseur de stockage compatible S3. Spécifiez l’URL du service correspondant dans la configuration de service lié.
Autorisations requises
Pour copier des données à partir d’Amazon S3 Compatible Storage, vérifiez que vous disposez des autorisations s3:GetObject
et s3:GetObjectVersion
pour les opérations d’objet Amazon S3.
Si vous utilisez l’interface utilisateur pour créer, des s3:ListAllMyBuckets
autorisations supplémentaires et s3:ListBucket
/s3:GetBucketLocation
sont requises pour les opérations telles que le test de la connexion au service lié et la navigation à partir de la racine. Si vous ne souhaitez pas accorder ces autorisations, vous pouvez choisir les options « Test connection to file path » (« Tester la connexion au chemin du fichier ») ou « Browse from specified path » («Parcourir à partir du chemin spécifié ») dans interface utilisateur.
Pour obtenir la liste complète des autorisations Amazon S3, consultez l’article Spécification des autorisations d’une stratégie sur le site AWS.
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éer un service lié à Amazon S3 Compatible Storage à l’aide de l’interface utilisateur
Utilisez les étapes suivantes pour créer un service lié à Amazon S3 Compatible Storage 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 Amazon et sélectionnez le connecteur Amazon S3 Compatible Storage.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
Informations de configuration du connecteur
Les sections suivantes donnent des informations sur les propriétés utilisées pour définir les entités spécifiques du Stockage compatible Amazon S3.
Propriétés du service lié
Les propriétés prises en charge pour un service lié Amazon S3 Compatible prises en charge sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur AmazonS3Compatible. | Oui |
accessKeyId | ID de la clé d’accès secrète. | Oui |
secretAccessKey | La clé d’accès secrète elle-même. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. | Oui |
serviceUrl | Spécifiez le point de terminaison S3 personnalisé https://<service url> . |
Non |
forcePathStyle | Indique s’il faut utiliser un accès de type chemin d’accès S3 au lieu de l’accès de type hébergement virtuel. Les valeurs autorisées sont : false (par défaut), true. Consultez la documentation de chaque magasin de données pour vérifier si l’accès de type chemin d’accès est nécessaire ou non. |
Non |
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. | Non |
Exemple :
{
"name": "AmazonS3CompatibleLinkedService",
"properties": {
"type": "AmazonS3Compatible",
"typeProperties": {
"accessKeyId": "<access key id>",
"secretAccessKey": {
"type": "SecureString",
"value": "<secret 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 prises en charge pour Amazon S3 Compatible Storage sous les paramètres location
dans un jeu de données basé sur le format sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type indiquée sous location dans un jeu de données doit être définie sur AmazonS3CompatibleLocation. |
Oui |
bucketName | Nom du compartiment S3 Compatible Storage. | Oui |
folderPath | Chemin d’accès au dossier sous le compartiment donné. 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 sous le compartiment et le chemin d’accès du dossier donnés. Si vous souhaitez utiliser un caractère générique pour filtrer des dossiers, ignorez ce paramètre et spécifiez-le dans les paramètres de la source de l’activité. | Non |
version | Version de l’objet S3 Compatible Storage, si le contrôle de version S3 Compatible Storage est activé. À défaut de spécification, la version la plus récente est extraite. | Non |
Exemple :
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Amazon S3 Compatible Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AmazonS3CompatibleLocation",
"bucketName": "bucketname",
"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 l’article Pipelines. Cette section donne la liste des propriétés prises en charge par la source Amazon S3 Compatible Storage.
Amazon S3 Compatible Storage comme type 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 prises en charge pour Amazon S3 Compatible Storage sous les paramètres storeSettings
dans une source de copie basée sur le format sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type indiquée sous storeSettings doit être définie sur AmazonS3CompatibleReadSettings. |
Oui |
Recherchez les fichiers à copier : | ||
OPTION 1 : chemin d’accès statique |
Copie à partir du compartiment 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 compartiment ou dossier, spécifiez en plus wildcardFileName comme * . |
|
OPTION 2 : préfixe S3 Compatible Storage - prefix |
Préfixe du nom de la clé S3 Compatible Storage sous le compartiment donné configuré dans un jeu de données pour filtrer les fichiers S3 Compatible Storage sources. Les clés sélectionnées sont les clés S3 Compatible Storage dont le nom commence par bucket_in_dataset/this_prefix . Elles utilisent le filtre côté service de S3 Compatible Storage, qui offre un meilleur niveau de performance qu’un filtre par caractères génériques.Quand vous utilisez le préfixe et que vous choisissez de copier le récepteur basé sur un fichier avec conservation de la hiérarchie, notez que le sous-chemin après le dernier signe « / » dans le préfixe est conservé. Par exemple, si vous avez la source bucket/folder/subfolder/file.txt et que vous configurez le préfixe sous la forme folder/sub , le chemin du fichier conservé est subfolder/file.txt . |
Non |
OPTION 3 : caractère générique - wildcardFolderPath |
Chemin d’accès du dossier avec des caractères génériques sous le compartiment donné configuré dans le jeu de données pour filtrer les dossiers sources. Les caractères génériques autorisés sont les suivants : * (correspond à zéro caractère ou plusieurs) et ? (correspond à zéro ou un caractère). Utilisez ^ comme caractère d’échappement si le nom de votre dossier contient un caractère générique ou ce caractère d’échappement. Consultez d’autres exemples dans les exemples de filtre de dossier et de fichier. |
Non |
OPTION 3 : caractère générique - wildcardFileName |
Nom de fichier avec caractères génériques sous le compartiment et le chemin d’accès du dossier donnés (ou chemin d’accès du dossier en caractères génériques) pour filtrer les fichiers sources. Les caractères génériques autorisés sont les suivants : * (correspond à zéro caractère ou plusieurs) et ? (correspond à zéro ou un caractère). Utilisez ^ comme caractère d’échappement si le nom de votre fichier contient un caractère générique ou ce caractère d’échappement. 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. Lorsque 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é. Notez que lorsque l’option recursive est définie sur true et que le récepteur est un magasin basé sur un fichier, un dossier ou un sous-dossier vide 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 | Les fichiers sont filtrés en fonction de l’attribut de dernière modification. Les fichiers sont sélectionnés si l’heure de leur dernière modification est postérieure ou égale à modifiedDatetimeStart et antérieure à modifiedDatetimeEnd . L’heure est appliquée à un 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. Quand modifiedDatetimeStart a une valeur de DateHeure, mais que la valeur de modifiedDatetimeEnd est NULL, les fichiers dont l’attribut de dernière modification a une valeur supérieure ou égale à la valeur de DateHeure sont sélectionnés. Quand modifiedDatetimeEnd a une valeur de DateHeure, mais que la valeur de modifiedDatetimeStart est NULL, les fichiers dont l’attribut de dernière modification a une valeur inférieure à la valeur de 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. – Quand vous utilisez le préfixe, le chemin d’accès racine de la partition est le sous-chemin d’accès avant le dernier « / ». 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": "CopyFromAmazonS3CompatibleStorage",
"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": "AmazonS3CompatibleReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
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.
Compartiment | key | recursive | Structure du dossier source et résultat du filtrage (les fichiers en gras sont récupérés) |
---|---|---|---|
Compartiment | Folder*/* |
false | Compartiment DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Compartiment | Folder*/* |
true | Compartiment DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Compartiment | Folder*/*.csv |
false | Compartiment DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Compartiment | Folder*/*.csv |
true | Compartiment 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 d’un chemin d’accès de liste de fichiers dans la source de l’activité Copy.
Supposons que vous disposez de la structure de dossiers sources suivante et que vous souhaitez copier les fichiers en gras :
Exemple de structure source | Contenu de FileListToCopy.txt | Configuration |
---|---|---|
Compartiment 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 : - compartiment : bucket - chemin d’accès du dossier : FolderA Dans la source de l’activité Copy : - chemin d’accès à la liste de fichiers : bucket/Metadata/FileListToCopy.txt Le chemin d’accès de 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 indiquant le chemin d’accès relatif configuré dans le jeu de données. |
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.
Contenu connexe
Pour obtenir la liste des magasins de données pris en charge par l'activité Copy en tant que sources et récepteurs, consultez Magasins de données pris en charge.