Utiliser Azure Data Factory pour migrer des données d’Amazon S3 vers le stockage AzureUse Azure Data Factory to migrate data from Amazon S3 to Azure Storage

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Azure Data Factory fournit un mécanisme performant, robuste et rentable pour migrer des données à l’échelle d’Amazon S3 vers le stockage Blob Azure ou Azure Data Lake Storage Gen2.Azure Data Factory provides a performant, robust, and cost-effective mechanism to migrate data at scale from Amazon S3 to Azure Blob Storage or Azure Data Lake Storage Gen2. Cet article fournit les informations suivantes à l’attention des ingénieurs et des développeurs de données :This article provides the following information for data engineers and developers:

  • PerformancesPerformance
  • Résilience de copieCopy resilience
  • Sécurité du réseauNetwork security
  • Architecture de solution de haut niveauHigh-level solution architecture
  • Meilleures pratiques en matière d’implémentationImplementation best practices

PerformancesPerformance

ADF offre une architecture serverless qui autorise le parallélisme à différents niveaux, ce qui permet aux développeurs de créer des pipelines pour utiliser pleinement la bande passante de votre réseau, ainsi que les IOPS et la bande passante de stockage pour maximiser le débit de déplacement de données pour votre environnement.ADF offers a serverless architecture that allows parallelism at different levels, which allows developers to build pipelines to fully utilize your network bandwidth as well as storage IOPS and bandwidth to maximize data movement throughput for your environment.

Les clients ont réussi à migrer des pétaoctets de données constitués de centaines de millions de fichiers d’Amazon S3 vers le stockage d’objets Blob Azure, avec un débit soutenu de 2 Gbits/s et plus.Customers have successfully migrated petabytes of data consisting of hundreds of millions of files from Amazon S3 to Azure Blob Storage, with a sustained throughput of 2 GBps and higher.

Le diagramme illustre plusieurs partitions de fichiers dans un magasin A W S S3 avec des actions de copie associées à Stockage Blob Azure A D L S Gen2.

L’image ci-dessus montre comment vous pouvez obtenir des vitesses de déplacement de données exceptionnelles à travers différents niveaux de parallélisme:The picture above illustrates how you can achieve great data movement speeds through different levels of parallelism:

  • Une seule activité de copie peut tirer parti des ressources de calcul évolutives : lorsque vous utilisez Azure Integration Runtime, vous pouvez spécifier jusqu'à 256 DIUs pour chaque activité de copie serverless ; lorsque vous utilisez des Integration Runtime auto-hébergés, vous pouvez effectuer un scale-up de la machine ou un scale-out vers plusieurs machines (jusqu’à 4 nœuds), et une seule activité de copie partitionnera son jeu de fichiers sur tous les nœuds.A single copy activity can take advantage of scalable compute resources: when using Azure Integration Runtime, you can specify up to 256 DIUs for each copy activity in a serverless manner; when using self-hosted Integration Runtime, you can manually scale up the machine or scale out to multiple machines (up to 4 nodes), and a single copy activity will partition its file set across all nodes.
  • Une activité de copie unique lit et écrit dans le magasin de données à l’aide de plusieurs conversations.A single copy activity reads from and writes to the data store using multiple threads.
  • Le flux de contrôle ADF peut démarrer plusieurs activités de copie en parallèle, par exemple Pour chaque boucle.ADF control flow can start multiple copy activities in parallel, for example using For Each loop.

RésilienceResilience

Dans une exécution d’activité de copie unique, ADF intègre un mécanisme de nouvelle tentative qui permet de gérer un certain niveau d’échecs temporaires dans les magasins de données ou dans le réseau sous-jacent.Within a single copy activity run, ADF has built-in retry mechanism so it can handle a certain level of transient failures in the data stores or in the underlying network.

Lors de la copie binaire de S3 vers un objet Blob et de S3 vers ADLS Gen2, ADF effectue automatiquement des points de contrôle.When doing binary copying from S3 to Blob and from S3 to ADLS Gen2, ADF automatically performs checkpointing. Si l’exécution d’une activité de copie a échoué ou a expiré, lors d’une nouvelle tentative, la copie reprend à partir du dernier point d’échec au lieu de commencer depuis le début.If a copy activity run has failed or timed out, on a subsequent retry, the copy resumes from the last failure point instead of starting from the beginning.

Sécurité du réseauNetwork security

Par défaut, ADF transfère les données d’Amazon S3 vers le stockage Blob Azure ou Azure Data Lake Storage Gen2 à l’aide d’une connexion chiffrée sur le protocole HTTPS.By default, ADF transfers data from Amazon S3 to Azure Blob Storage or Azure Data Lake Storage Gen2 using encrypted connection over HTTPS protocol. Le protocole HTTPS assure le chiffrement des données en transit et empêche les écoutes clandestines et les attaques de l’intercepteur.HTTPS provides data encryption in transit and prevents eavesdropping and man-in-the-middle attacks.

Sinon, si vous ne souhaitez pas que les données soient transférées via l’internet public, vous pouvez obtenir une sécurité accrue en transférant des données via un lien de peering privé entre le service de connexion directe AWS et Azure Express Route.Alternatively, if you do not want data to be transferred over public Internet, you can achieve higher security by transferring data over a private peering link between AWS Direct Connect and Azure Express Route. Reportez-vous à l’architecture de la solution ci-dessous pour savoir comment procéder.Refer to the solution architecture below on how this can be achieved.

Architecture de solutionSolution architecture

Migrer des données sur l’Internet public :Migrate data over public Internet:

Le diagramme illustre une migration sur Internet par H T T P entre un magasin A W S S3, via Azure Integration Runtime dans A D F Azure, et le service Stockage Azure.

  • Dans cette architecture, les données sont transférées en toute sécurité à l’aide du protocole HTTPS sur l’Internet public.In this architecture, data is transferred securely using HTTPS over public Internet.
  • La source Amazon S3 ainsi que les destinations Azure Blob Storage ou Azure Data Lake Storage Gen2 sont configurées pour autoriser le trafic à partir de toutes les adresses IP du réseau.Both the source Amazon S3 as well as the destination Azure Blob Storage or Azure Data Lake Storage Gen2 are configured to allow traffic from all network IP addresses. Reportez-vous à la deuxième architecture ci-dessous pour savoir comment limiter l’accès réseau à une plage d’adresses IP spécifique.Refer to the second architecture below on how you can restrict network access to specific IP range.
  • Vous pouvez facilement augmenter la quantité de puissance serverless pour utiliser pleinement votre réseau et votre bande passante de stockage, de manière à obtenir le meilleur débit pour votre environnement.You can easily scale up the amount of horsepower in serverless manner to fully utilize your network and storage bandwidth so that you can get the best throughput for your environment.
  • La migration des instantanés initiaux et la migration des données Delta peuvent être réalisées à l’aide de cette architecture.Both initial snapshot migration and delta data migration can be achieved using this architecture.

Migrer des données via un lien privé :Migrate data over private link:

Le diagramme illustre une migration sur une connexion de Peering privé entre un magasin A W S S3, via un runtime d'intégration auto-hébergé sur des machines virtuelles Azure accédant à des points de terminaison de service de réseau virtuel, et le service Stockage Azure.

  • Dans cette architecture, la migration des données s’effectue via un lien de peering privé entre AWS Direct Connect et Azure Express Route, de telle sorte que les données ne transitent jamais sur l’Internet public.In this architecture, data migration is done over a private peering link between AWS Direct Connect and Azure Express Route such that data never traverses over public Internet. Cela nécessite l'utilisation de AWS VPC et du réseau virtuel Azure.It requires use of AWS VPC and Azure Virtual network.
  • Vous devez installer le runtime d'intégration ADF auto-hébergé sur une machine virtuelle Windows au sein de votre réseau virtuel Azure pour réaliser cette architecture.You need to install ADF self-hosted integration runtime on a Windows VM within your Azure virtual network to achieve this architecture. Vous pouvez effectuer un scale-up manuel de vos machines virtuelles IR auto-hébergées ou effectuer un scale-out sur plusieurs machines virtuelles (jusqu’à 4 nœuds) pour utiliser pleinement votre réseau et vos IOPS/bande passante de stockage.You can manually scale up your self-hosted IR VMs or scale out to multiple VMs (up to 4 nodes) to fully utilize your network and storage IOPS/bandwidth.
  • S’il est acceptable de transférer des données sur HTTPS mais que vous souhaitez verrouiller l’accès réseau à la source S3 à une plage d’adresses IP spécifique, vous pouvez adopter une variante de cette architecture en supprimant l’AWS VPC et en remplaçant le lien privé par HTTPS.If it is acceptable to transfer data over HTTPS but you want to lock down network access to source S3 to a specific IP range, you can adopt a variation of this architecture by removing AWS VPC and replacing private link with HTTPS. Vous devez conserver le runtime d'intégration virtuel Azure et auto-hébergé sur une machine virtuelle Azure, afin de pouvoir utiliser une adresse IP publiquement routable à des fins de filtrage.You will want to keep Azure Virtual and self-hosted IR on Azure VM so you can have a static publicly routable IP for filtering purpose.
  • Cette architecture permet à la fois la migration initiale des données instantanées et la migration des données delta.Both initial snapshot data migration and delta data migration can be achieved using this architecture.

Meilleures pratiques en matière d’implémentationImplementation best practices

Authentification et gestion des informations d’identificationAuthentication and credential management

Migration initiale des données d’instantanéInitial snapshot data migration

La partition de données est recommandée en particulier lors de la migration de plus de 100 To de données.Data partition is recommended especially when migrating more than 100 TB of data. Pour partitionner les données, tirez parti du paramètre « Prefix » pour filtrer les dossiers et les fichiers d’Amazon S3 par nom, puis chaque travail de copie ADF peut copier une partition à la fois.To partition the data, leverage the ‘prefix’ setting to filter the folders and files in Amazon S3 by name, and then each ADF copy job can copy one partition at a time. Vous pouvez exécuter plusieurs tâches de copie ADF simultanément pour un meilleur débit.You can run multiple ADF copy jobs concurrently for better throughput.

Si l’un des travaux de copie échoue en raison d’un problème temporaire de réseau ou de magasin de données, vous pouvez réexécuter la tâche de copie ayant échoué pour recharger à nouveau cette partition spécifique à partir de AWS S3.If any of the copy jobs fail due to network or data store transient issue, you can rerun the failed copy job to reload that specific partition again from AWS S3. Tous les autres travaux de copie qui chargent d’autres partitions ne seront pas affectés.All other copy jobs loading other partitions will not be impacted.

Migration des données DeltaDelta data migration

La méthode la plus efficace pour identifier les fichiers nouveaux ou modifiés à partir de AWS S3 est d’utiliser une convention d’affectation de noms partitionnée : lorsque les données de l’AWS S3 ont été partitionnées avec les informations de tranche de temps dans le nom de fichier ou de dossier (par exemple,/yyyy/mm/dd/file.csv), votre pipeline peut facilement identifier les fichiers/dossiers à copier de façon incrémentielle.The most performant way to identify new or changed files from AWS S3 is by using time-partitioned naming convention – when your data in AWS S3 has been time partitioned with time slice information in the file or folder name (for example, /yyyy/mm/dd/file.csv), then your pipeline can easily identify which files/folders to copy incrementally.

En guise d’alternative, si vos données de AWS S3 ne sont pas partitionnées, ADF peut identifier les fichiers nouveaux ou modifiés par leur LastModifiedDate.Alternatively, If your data in AWS S3 is not time partitioned, ADF can identify new or changed files by their LastModifiedDate. La façon de procéder est la suivante : ADF analyse tous les fichiers de AWS S3 et copie uniquement le nouveau fichier mis à jour dont la date de dernière modification est supérieur à une certaine valeur.The way it works is that ADF will scan all the files from AWS S3, and only copy the new and updated file whose last modified timestamp is greater than a certain value. Sachez que si vous avez un grand nombre de fichiers en S3, l’analyse de fichiers initiale peut prendre beaucoup de temps, quel que soit le nombre de fichiers correspondant à la condition de filtre.Be aware that if you have a large number of files in S3, the initial file scanning could take a long time regardless of how many files match the filter condition. Dans ce cas, vous avez la possibilité de partitionner les données en premier, en utilisant le même paramètre de préfixe pour la migration initiale des instantanés, afin que l’analyse des fichiers puisse se produire en parallèle.In this case you are suggested to partition the data first, using the same ‘prefix’ setting for initial snapshot migration, so that the file scanning can happen in parallel.

Pour les scénarios qui requièrent le runtime d’intégration auto-hébergé sur une machine virtuelle AzureFor scenarios that require self-hosted Integration runtime on Azure VM

Si vous migrez des données via un lien privé ou si vous souhaitez autoriser une plage d’adresses IP spécifiques sur un pare-feu Amazon S3, vous devez installer le runtime d’intégration auto-hébergé sur une machine virtuelle Windows Azure.Whether you are migrating data over private link or you want to allow specific IP range on Amazon S3 firewall, you need to install self-hosted Integration runtime on Azure Windows VM.

  • La configuration de démarrage recommandée pour chaque machine virtuelle Azure est Standard_D32s_v3 avec des processeurs virtuels 32 et 128 Go de mémoire.The recommend configuration to start with for each Azure VM is Standard_D32s_v3 with 32 vCPU and 128-GB memory. Vous pouvez conserver à surveiller l’utilisation du processeur et de la mémoire de la machine virtuelle IR pendant la migration des données afin de déterminer si vous devez augmenter la taille de la machine virtuelle pour améliorer les performances ou réduire la taille de la machine virtuelle pour réduire les coûts.You can keep monitoring CPU and memory utilization of the IR VM during the data migration to see if you need to further scale up the VM for better performance or scale down the VM to save cost.
  • Vous pouvez également effectuer un scale-out en associant jusqu’à 4 nœuds de machine virtuelle à un seul runtime d’intégration auto-hébergé.You can also scale out by associating up to 4 VM nodes with a single self-hosted IR. Une seule tâche de copie exécutée sur un runtime d’intégration auto-hébergé partitionne automatiquement le jeu de fichiers et tire parti de tous les nœuds de machine virtuelle pour copier les fichiers en parallèle.A single copy job running against a self-hosted IR will automatically partition the file set and leverage all VM nodes to copy the files in parallel. Pour une haute disponibilité, il est recommandé de commencer par deux nœuds de machine virtuelle pour éviter un point de défaillance unique pendant la migration des données.For high availability, you are recommended to start with 2 VM nodes to avoid single point of failure during the data migration.

Limitation du débitRate limiting

Il est recommandé de procéder à un examen des performances avec un exemple de jeu de données représentatif, afin de pouvoir déterminer la taille de partition appropriée.As a best practice, conduct a performance POC with a representative sample dataset, so that you can determine an appropriate partition size.

Commencez avec une seule partition et une seule activité de copie avec le paramètre DIU par défaut.Start with a single partition and a single copy activity with default DIU setting. Augmentez progressivement le paramètre DIU jusqu'à atteindre la limite de bande passante de votre réseau ou la limite IOPS/bande passante des magasins de données, ou vous avez atteint le nombre maximal de 256 DIU autorisé pour une activité de copie unique.Gradually increase the DIU setting until you reach the bandwidth limit of your network or IOPS/bandwidth limit of the data stores, or you have reached the max 256 DIU allowed on a single copy activity.

Ensuite, augmentez progressivement le nombre d’activités de copie simultanées jusqu’à ce que vous atteigniez les limites de votre environnement.Next, gradually increase the number of concurrent copy activities until you reach limits of your environment.

Lorsque vous rencontrez des erreurs de limitation signalées par l'activité de copie de l'ADF, réduisez le paramètre d'accès simultané ou DIU dans l'ADF ou envisagez d'augmenter les limites de bande passante/IOPS des magasins de données et du réseau.When you encounter throttling errors reported by ADF copy activity, either reduce the concurrency or DIU setting in ADF, or consider increasing the bandwidth/IOPS limits of the network and data stores.

Estimation du coûtEstimating Price

Notes

Il s’agit d’un exemple de tarification hypothétique.This is a hypothetical pricing example. Vos tarifs réels dépendent du débit réel dans votre environnement.Your actual pricing depends on the actual throughput in your environment.

Considérez le pipeline suivant construit pour la migration de données de S3 vers le Stockage Blob Azure :Consider the following pipeline constructed for migrating data from S3 to Azure Blob Storage:

Le diagramme illustre un pipeline de migration des données, avec un déclencheur manuel dirigeant vers Lookup, vers ForEach, vers un sous-pipeline pour chaque partition contenant Copy, puis vers Procédure stockée.

Prenons l’exemple suivant :Let us assume the following:

  • Le volume total de données est de 2 PoTotal data volume is 2 PB
  • Migration de données via HTTPS à l’aide de la première architecture de solutionMigrating data over HTTPS using first solution architecture
  • 2 Po est divisé en partitions de 1K et chaque copie déplace une partition2 PB is divided into 1 K partitions and each copy moves one partition
  • Chaque copie est configurée avec DIU = 256 et atteint un débit de 1 Gbit/s.Each copy is configured with DIU=256 and achieves 1 GBps throughput
  • L’accès concurrentiel ForEach est défini sur 2 et le débit agrégé est de 2 Gbits/sForEach concurrency is set to 2 and aggregate throughput is 2 GBps
  • Au total, il faut 292 heures pour terminer la migrationIn total, it takes 292 hours to complete the migration

Voici le prix estimé selon les hypothèses ci-dessus :Here is the estimated price based on the above assumptions:

Capture d'écran d'un tableau contenant une estimation de prix.

Références supplémentairesAdditional references

ModèleTemplate

Voici le modèle avec lequel commencer pour migrer des pétaoctets de données composées de centaines de millions de fichiers d’Amazon S3 vers Azure Data Lake Storage Gen2.Here is the template to start with to migrate petabytes of data consisting of hundreds of millions of files from Amazon S3 to Azure Data Lake Storage Gen2.

Étapes suivantesNext steps