Guide sur les performances et la scalabilité de l’activité de copie
Article
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 !
Parfois, vous souhaitez effectuer une migration de données à grande échelle d’un lac de données ou un entrepôt de données d’entreprise (EDW) vers Azure. Dans d’autres cas, vous souhaiterez ingérer dans Azure de grandes quantités de données provenant de différentes sources pour l’analytique du Big Data. Dans chaque cas, il est essentiel d’obtenir des performances et une scalabilité optimales.
Les pipelines Azure Data Factory et Azure Synapse Analytics propose un mécanisme d’ingestion des données offrant les avantages suivants :
Gère de grandes quantités de données
Est très performant
Est économique
Ces avantages en font une solution idéale pour les ingénieurs de données qui souhaitent créer des pipelines d’ingestion de données évolutifs et très performants.
Après avoir lu cet article, vous serez en mesure de répondre aux questions suivantes :
Quel niveau de performance et de scalabilité puis-je obtenir à l’aide de l’activité de copie pour les scénarios de migration de données et d’ingestion de données ?
Quelles sont les étapes à suivre pour régler les performances de l’activité de copie ?
Quelles optimisations de performances puis-je utiliser pour une seule exécution d’activité de copie ?
Quels sont les autres facteurs externes à prendre en compte lors de l’optimisation des performances de copie ?
Performances et évolutivité de copie accessibles à l’aide de pipelines Azure Data Factory et Synapse
Les pipelines Azure Data Factory et Synapse offrent une architecture serverless qui permet le parallélisme à différents niveaux.
Cette architecture vous permet de développer des pipelines qui optimisent le débit des déplacements de données pour votre environnement. Ces pipelines utilisent pleinement les ressources suivantes :
Bande passante réseau entre les magasins de données source et de destination
Opérations d’entrée/sortie du magasin de données source ou de destination par seconde (IOPS) et bande passante
Cette utilisation complète signifie que vous pouvez estimer le débit global en mesurant le débit minimal disponible avec les ressources suivantes :
Magasin de données source
Banque de données de destination
Bande passante réseau entre les magasins de données source et de destination
Le tableau ci-dessous montre le calcul de la durée du déplacement des données. La durée dans chaque cellule est calculée en fonction d’un réseau donné et de la bande passante de la banque de données, ainsi que d’une taille de charge utile donnée.
Notes
La durée fournie ci-dessous vise à représenter des performances atteignables dans une solution d’intégration de données de bout en bout, à l’aide d’une ou de plusieurs techniques d’optimisation des performances décrites dans Fonctionnalités d’optimisation des performances de copie, notamment l’utilisation de ForEach pour partitionner et générer plusieurs activités de copie simultanées. Nous vous recommandons de suivre les étapes indiquées dans Procédure de réglage des performances pour optimiser les performances de copie pour votre jeu de données et votre configuration système spécifiques. Vous devez utiliser les nombres obtenus dans vos tests de réglage des performances pour la planification du déploiement de la production, la planification de la capacité et la projection de la facturation.
Taille des données / bandwidth
50 Mbits/s
100 Mbits/s
500 Mbits/s
1 Gbit/s
5 Gbit/s
10 Gbits/s
50 Gbit/s
1 Go
2,7 min
1,4 min
0,3 min
0,1 min
0,03 min
0,01 min
0,0 min
10 Go
27,3 min
13,7 min
2,7 min
1,3 min
0,3 min
0,1 min
0,03 min
100 Go
4,6 heures
2,3 heures
0,5 heure
0,2 heures
0,05 heure
0,02 heure
0,0 heure
1 To
46,6 heures
23,3 heures
4,7 heures
2,3 heures
0,5 heure
0,2 heures
0,05 heure
10 To
19,4 jours
9,7 jours
1,9 jours
0,9 jour
0,2 jour
0,1 jour
0,02 jour
100 To
194,2 jours
97,1 jours
19,4 jours
9,7 jours
1,9 jours
1 jour
0,2 jour
1 Po
64,7 mois
32,4 mois
6,5 mois
3,2 mois
0,6 mois
0,3 mois
0,06 mois
10 Po
647,3 mois
323,6 mois
64,7 mois
31.6 mois
6,5 mois
3,2 mois
0,6 mois
La copie est évolutive à différents niveaux :
Le flux de contrôle peut démarrer plusieurs activités de copie en parallèle, par exemple Pour chaque boucle.
Une seule activité de copie peut tirer parti de plusieurs ressources de calcul évolutives.
Lorsque vous utilisez le runtime d’intégration auto-hébergé, vous pouvez adopter l’une des approches suivantes :
Effectuer manuellement un scale-up de la machine.
Effectuer un scale-out sur plusieurs machines (jusqu’à quatre nœuds), et une seule activité de copie partitionne son ensemble de fichiers sur tous les nœuds.
Une activité de copie unique lit et écrit dans le magasin de données à l’aide de plusieurs threads en parallèle.
Procédure de réglage des performances
Procédez comme suit pour régler les performances de votre service avec l’activité de copie :
Choisir un jeu de données de test et établir une base de référence.
Pendant le développement, testez votre pipeline en utilisant l’activité de copie sur un échantillon de données représentatif. Le jeu de données que vous choisissez doit représenter vos modèles de données typiques avec les attributs suivants :
Structure de dossiers
Modèle de fichier
Schéma de données
Votre jeu de données doit également être suffisamment important pour évaluer les performances de copie. Une taille appropriée prend au moins dix minutes pour que l’activité de copie se termine. Collectez les détails de l’exécution et les caractéristiques des performances suivant la surveillance de l’activité de copie.
Comment optimiser les performances d’une seule activité de copie :
Nous vous recommandons d’optimiser les performances en utilisant une seule activité de copie.
Si l’activité de copie est exécutée sur un runtime d’intégration Azure :
Si l’activité de copie est exécutée sur un runtime d’intégration auto-hébergé :
Nous vous recommandons d’utiliser un ordinateur dédié pour héberger le runtime d’intégration. L’ordinateur doit être séparé du serveur qui héberge le magasin de données. Commencez avec les valeurs par défaut du paramètre de copie parallèle en utilisant un seul nœud pour l’IR auto-hébergé.
Effectuez une série de tests de performances. Prenez note des performances atteintes. Incluez les valeurs réelles utilisées, telles que les DIU et les copies en parallèles. Reportez-vous à Supervision de l’activité de copie pour savoir comment collecter les résultats des tests et les paramètres de performances utilisés. Pour identifier et résoudre le goulot d’étranglement, découvrez comment résoudre les problèmes liés aux performances de l’activité de copie.
Renouvelez l’opération pour exécuter des tests de performances supplémentaires en suivant les instructions de résolution des problèmes et de réglage. Une fois que les exécutions d’activité de copie unique n’obtiennent pas de meilleur débit, déterminez s’il faut optimiser le débit agrégé en exécutant plusieurs copies simultanément. Cette option est abordée dans le point numéroté suivant.
Comment optimiser le débit agrégé en exécutant plusieurs copies simultanément :
Vous avez désormais optimisé les performances d’une seule activité de copie. Si vous n’avez pas encore atteint les limites supérieures de débit de votre environnement, vous pouvez exécuter plusieurs activités de copie en parallèle. Vous pouvez les exécuter en parallèle à l’aide des constructions de flux de contrôle. L’une de ces constructions est la boucle For Each. Pour plus d’informations, consultez les articles suivants relatifs aux modèles de solution :
Étendez la configuration à l’ensemble de votre jeu de données.
Lorsque vous êtes satisfait des résultats et des performances de l’exécution, vous pouvez étendre la définition et le pipeline pour couvrir l’ensemble de votre jeu de données.
Résoudre les problèmes de performances de l’activité de copie
Une unité d’intégration de données (DIU) est une mesure qui représente la puissance d’une seule unité dans Azure Data Factory et les pipelines Synapse. La puissance est une combinaison de l’allocation des ressources du processeur, de la mémoire et du réseau. Une DIU s’applique uniquement au runtime d’intégration Azure. Une DIU ne s’applique pas au runtime d’intégration auto-hébergé. En savoir plus ici.
Extensibilité du runtime d’intégration auto-hébergé
Vous souhaiterez peut-être héberger une charge de travail simultanée croissante. Vous pouvez également chercher à obtenir des performances supérieures dans le cadre de votre charge de travail actuelle. Vous pouvez améliorer l’échelle du traitement en procédant de l’une des manières suivantes :
Vous pouvez effectuer un scale-up du runtime d’intégration auto-hébergé en augmentant le nombre de travaux simultanés pouvant s’exécuter sur un nœud.
Le scale-up fonctionne uniquement si le processeur et la mémoire du nœud ne sont pas pleinement utilisés.
Vous pouvez effectuer un scale-out du runtime d’intégration auto-hébergé en ajoutant plus de nœuds (machines).
Pour plus d'informations, consultez les pages suivantes :
Vous pouvez définir la propriété parallelCopies pour indiquer le parallélisme que vous souhaitez que l’activité de copie utilise. Considérez cette propriété comme le nombre maximal de threads dans l’activité de copie. Les threads fonctionnent en parallèle. Les threads lisent à partir de votre source ou écrivent dans vos magasins de données récepteur. En savoir plus
copie intermédiaire
Une opération de copie de données peut envoyer les données directement au magasin de données récepteur. Vous pouvez également choisir d’utiliser Stockage Blob comme magasin temporaire de processus de site. Plus d’informations
Contenu connexe
Consultez les autres articles relatifs à l’activité de copie :
Faites la démonstration d’une compréhension des tâches d’engineering données courantes pour implémenter et gérer des charges de travail d’engineering données sur Microsoft Azure en utilisant un certain nombre de services Azure.