Guide sur les performances et le réglage de l’activité de copieCopy Activity performance and tuning guide

Notes

Cet article s’applique à la version 1 de Data Factory.This article applies to version 1 of Data Factory. Si vous utilisez la version actuelle du service Data Factory, consultez Guide sur les performances et le réglage de l’activité de copie pour Data Factory.If you are using the current version of the Data Factory service, see Copy activity performance and tuning guide for Data Factory.

L’activité de copie Azure Data Factory offre une solution de chargement de données de premier ordre, sécurisée, fiable et hautes performances.Azure Data Factory Copy Activity delivers a first-class secure, reliable, and high-performance data loading solution. Elle vous permet de copier des dizaines de téraoctets de données tous les jours entre une grande variété de banques de données cloud et locales.It enables you to copy tens of terabytes of data every day across a rich variety of cloud and on-premises data stores. Les performances de chargement des données très rapides constituent la clé pour vous permettre de vous concentrer sur le problème « big data » principal : créer des solutions d’analyse avancées et obtenir des informations approfondies à l’aide de toutes ces données.Blazing-fast data loading performance is key to ensure you can focus on the core “big data” problem: building advanced analytics solutions and getting deep insights from all that data.

Azure fournit un ensemble de solutions d’entrepôt de données et de stockage de données de niveau entreprise, et l’activité de copie offre une expérience de chargement des données hautement optimisée qui est facile à configurer et à mettre en œuvre.Azure provides a set of enterprise-grade data storage and data warehouse solutions, and Copy Activity offers a highly optimized data loading experience that is easy to configure and set up. Avec une seule activité de copie, vous pouvez obtenir ce qui suit :With just a single copy activity, you can achieve:

Cet article aborde les points suivants :This article describes:

Notes

Si vous n’êtes pas familiarisé avec l’activité de copie, voir Déplacer des données à l’aide de l’activité de copie avant de lire cet article.If you are not familiar with Copy Activity in general, see Move data by using Copy Activity before reading this article.

Performances de référencePerformance reference

À titre de référence, le tableau ci-dessous décrit la valeur de débit de copie en Mbits/s pour les paires de source et de récepteur données à partir de tests internes.As a reference, below table shows the copy throughput number in MBps for the given source and sink pairs based on in-house testing. À des fins de comparaison, il montre également comment les différents paramètres d’unités de déplacement des données cloud ou d’évolutivité de la passerelle de gestion des données (plusieurs nœuds de passerelle) peuvent améliorer les performances de copie.For comparison, it also demonstrates how different settings of cloud data movement units or Data Management Gateway scalability (multiple gateway nodes) can help on copy performance.

Matrice des performances

Important

Dans Azure Data Factory version 1, le minimum d’unités de déplacement de données cloud pour la copie de cloud-cloud est de deux.In Azure Data Factory version 1, the minimal cloud data movement units for cloud-to-cloud copy is two. Si ce minimum n’est pas spécifié, consultez les unités de déplacement de données par défaut utilisées dans les unités de déplacement de données cloud.If not specified, see default data movement units being used in cloud data movement units.

Points à noter :Points to note:

  • Le débit est calculé à l’aide de la formule suivante : [taille des données lues à partir de la source]/[durée d’exécution de l’activité de copie].Throughput is calculated by using the following formula: [size of data read from source]/[Copy Activity run duration].
  • Les chiffres de référence des performances dans le tableau ont été mesurés à l’aide du jeu de données TPC-H durant une seule exécution de l’activité de copie.The performance reference numbers in the table were measured using TPC-H data set in a single copy activity run.
  • Dans le cas de banques de données Azure, la source et le récepteur sont dans la même région Azure.In Azure data stores, the source and sink are in the same Azure region.
  • Pour une copie hybride entre des magasins de données en local et dans le cloud, chaque nœud de passerelle était exécuté sur un ordinateur isolé du magasin de données local et présentant les caractéristiques ci-dessous.For hybrid copy between on-premises and cloud data stores, each gateway node was running on a machine that was separate from the on-premises data store with below specification. Lorsqu’une seule activité était exécutée sur la passerelle, l’opération de copie n’a utilisé qu’une petite partie du processeur ou de la mémoire de l’ordinateur de test, ou de la bande passante réseau.When a single activity was running on gateway, the copy operation consumed only a small portion of the test machine's CPU, memory, or network bandwidth. Pour en savoir plus, voir Considérations relatives à la passerelle de gestion des données.Learn more from consideration for Data Management Gateway.
    UCCPU 32 cœurs 2,20 GHz Intel Xeon E5-2660 v232 cores 2.20 GHz Intel Xeon E5-2660 v2
    MémoireMemory 128 Go128 GB
    RéseauNetwork Interface Internet : 10 Gbits/s ; interface intranet : 40 Gbits/sInternet interface: 10 Gbps; intranet interface: 40 Gbps

Conseil

Vous pouvez obtenir un débit plus élevé en exploitant davantage d’unités de déplacement des données (DMU) que le nombre maximum par défaut, à savoir 32, pour l’exécution d’une activité de copie de cloud à cloud.You can achieve higher throughput by leveraging more data movement units (DMUs) than the default maximum DMUs, which is 32 for a cloud-to-cloud copy activity run. Par exemple, avec 100 unités DMU, vous pouvez copier des données depuis Azure Blob vers Azure Data Lake Store à 1,0 Go/s.For example, with 100 DMUs, you can achieve copying data from Azure Blob into Azure Data Lake Store at 1.0GBps. Pour en savoir plus sur cette fonctionnalité et le scénario pris en charge, consultez la section Unités de déplacement de données cloud.See the Cloud data movement units section for details about this feature and the supported scenario. Contactez le support Azure pour demander plus de DMU.Contact Azure support to request more DMUs.

Copie en parallèleParallel copy

Vous pouvez lire les données de la source ou écrire des données sur la destination en parallèle dans une exécution de l’activité de copie.You can read data from the source or write data to the destination in parallel within a Copy Activity run. Cette fonctionnalité améliore le débit d’une opération de copie et réduit le temps nécessaire pour déplacer des données.This feature enhances the throughput of a copy operation and reduces the time it takes to move data.

Ce paramètre est différent de la propriété concurrency au niveau de la définition d’activité.This setting is different from the concurrency property in the activity definition. La propriété concurrency détermine le nombre d’exécutions d’activité de copie simultanées pour traiter les données de différentes fenêtres d’activité (de 1h00 à 2h00, de 2h00 à 3h00, de 3h00 à 4h00, etc.).The concurrency property determines the number of concurrent Copy Activity runs to process data from different activity windows (1 AM to 2 AM, 2 AM to 3 AM, 3 AM to 4 AM, and so on). Cette fonctionnalité est utile lorsque vous effectuez une charge historique.This capability is helpful when you perform a historical load. La fonctionnalité de copie en parallèle s’applique à une exécution d’activité unique.The parallel copy capability applies to a single activity run.

Examinons un exemple de scénario.Let's look at a sample scenario. Dans l’exemple suivant, plusieurs tranches dans le passé doivent être traitées.In the following example, multiple slices from the past need to be processed. Data Factory exécute une instance de l’activité de copie (une exécution d’activité) pour chaque tranche :Data Factory runs an instance of Copy Activity (an activity run) for each slice:

  • La tranche de données de la première fenêtre d’activité (de 1h00 à 2h00) == > exécution d’activité 1The data slice from the first activity window (1 AM to 2 AM) ==> Activity run 1
  • La tranche de données de la deuxième fenêtre d’activité (de 2h00 à 3h00) == > exécution d’activité 2The data slice from the second activity window (2 AM to 3 AM) ==> Activity run 2
  • La tranche de données de la deuxième fenêtre d’activité (de 3h00 à 4h00) == > exécution d’activité 3The data slice from the second activity window (3 AM to 4 AM) ==> Activity run 3

Et ainsi de suite.And so on.

Dans cet exemple, lorsque la valeur concurrency est définie sur 2, l’exécution d’activité 1 et l’exécution d’activité 2 copient les données de deux fenêtres d’activité de façon simultanée pour améliorer les performances de déplacement de données.In this example, when the concurrency value is set to 2, Activity run 1 and Activity run 2 copy data from two activity windows concurrently to improve data movement performance. Toutefois, si plusieurs fichiers sont associés à l’exécution d’activité 1, le service de déplacement de données copie les fichiers de la source vers la destination, un fichier à la fois.However, if multiple files are associated with Activity run 1, the data movement service copies files from the source to the destination one file at a time.

Unités de déplacement de données cloudCloud data movement units

Une unité de déplacement de données cloud est une mesure qui représente la puissance (combinaison de l’allocation de ressources de processeur, de mémoire et de réseau) d’une seule unité dans Data Factory.A cloud data movement unit (DMU) is a measure that represents the power (a combination of CPU, memory, and network resource allocation) of a single unit in Data Factory. Une unité de déplacement de données cloud est applicable dans une opération de copie cloud-cloud, mais pas dans une copie hybride.DMU is applicable for cloud-to-cloud copy operations, but not in a hybrid copy.

Le minimum d’unités de déplacement de données cloud pour exécuter l’activité de copie est de deux.The minimal cloud data movement units to empower Copy Activity run is two. Si aucun minimum n’est spécifié, le tableau suivant répertorie les unités de déplacement de données par défaut utilisées dans différents scénarios de copie :If not specified, the following table lists the default DMUs used in different copy scenarios:

Scénario de copieCopy scenario Unités de déplacement de données cloud par défaut déterminées par le serviceDefault DMUs determined by service
Copie de données entre des magasins basés sur des fichiersCopy data between file-based stores Entre 4 et 16 selon le nombre et la taille des fichiers.Between 4 and 16 depending on the number and size of the files.
Tous les autres scénarios de copieAll other copy scenarios 44

Pour remplacer cette valeur par défaut, spécifiez une valeur pour la propriété cloudDataMovementUnits comme suit.To override this default, specify a value for the cloudDataMovementUnits property as follows. Les valeurs autorisées pour la propriété cloudDataMovementUnits sont les suivantes : 2, 4, 8, 16, 32.The allowed values for the cloudDataMovementUnits property are 2, 4, 8, 16, 32. Le nombre réel d’unités de déplacement de données cloud que l’opération de copie utilise au moment de l’exécution est égal ou inférieur à la valeur configurée, en fonction de votre modèle de données.The actual number of cloud DMUs that the copy operation uses at run time is equal to or less than the configured value, depending on your data pattern. Pour plus d’informations sur le niveau de gain de performances que vous pouvez obtenir lorsque vous configurez plusieurs unités pour une source et un récepteur de copie spécifiques, voir Performances de référence.For information about the level of performance gain you might get when you configure more units for a specific copy source and sink, see the performance reference.

"activities":[
    {
        "name": "Sample copy activity",
        "description": "",
        "type": "Copy",
        "inputs": [{ "name": "InputDataset" }],
        "outputs": [{ "name": "OutputDataset" }],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "cloudDataMovementUnits": 32
        }
    }
]

Notes

Si vous avez besoin de plus d’unités de déplacement de données cloud pour un débit plus élevé, contactez le support Azure.If you need more cloud DMUs for a higher throughput, contact Azure support. Actuellement, un paramètre de 8 et plus fonctionne uniquement lorsque vous copiez plusieurs fichiers à partir d’un stockage blob, d’une instance Data Lake Store, d’Amazon S3, d’un FTP cloud, d’un SFTP cloud vers un stockage blob, une instance Data Lake Store ou Azure SQL Database.Setting of 8 and above currently works only when you copy multiple files from Blob storage/Data Lake Store/Amazon S3/cloud FTP/cloud SFTP to Blob storage/Data Lake Store/Azure SQL Database.

parallelCopiesparallelCopies

Vous pouvez utiliser la propriété parallelCopies pour indiquer le parallélisme que vous voulez que l’activité de copie utilise.You can use the parallelCopies property to indicate the parallelism that you want Copy Activity to use. Vous pouvez penser cette propriété comme le nombre maximum de threads dans une activité de copie qui peut lire dans votre source ou écrire dans vos banques de données réceptrices en parallèle.You can think of this property as the maximum number of threads within Copy Activity that can read from your source or write to your sink data stores in parallel.

Pour chaque exécution d’activité de copie, Data Factory détermine le nombre de copies en parallèle à utiliser pour copier les données depuis la banque de données source et vers la banque de données de destination.For each Copy Activity run, Data Factory determines the number of parallel copies to use to copy data from the source data store and to the destination data store. Le nombre de copies en parallèle par défaut qu’il utilise dépend du type de source et de récepteur que vous utilisez.The default number of parallel copies that it uses depends on the type of source and sink that you are using.

Source et récepteurSource and sink Nombre de copie en parallèle par défaut déterminé par le serviceDefault parallel copy count determined by service
Copie de données entre les magasins basés sur fichier (stockage des objets blob ; Data Lake Store ; Amazon S3 ; un système de fichiers local ; un HDFS local)Copy data between file-based stores (Blob storage; Data Lake Store; Amazon S3; an on-premises file system; an on-premises HDFS) Entre 1 et 32.Between 1 and 32. Dépend de la taille des fichiers et du nombre d’unités de déplacement de données cloud utilisées pour copier des données entre les deux banques de données cloud, ou de la configuration physique de l’ordinateur de passerelle utilisé pour une copie hybride (pour copier des données vers ou à partir d’une banque de données locale).Depends on the size of the files and the number of cloud data movement units (DMUs) used to copy data between two cloud data stores, or the physical configuration of the Gateway machine used for a hybrid copy (to copy data to or from an on-premises data store).
Copier des données de n’importe quelle banque de données source vers le stockage Table AzureCopy data from any source data store to Azure Table storage 44
Toutes les autres paires de source et de récepteurAll other source and sink pairs 11

Généralement, le comportement par défaut doit offrir le meilleur débit.Usually, the default behavior should give you the best throughput. Or, pour contrôler la charge sur les ordinateurs qui hébergent vos banques de données ou pour optimiser les performances de copie, vous pouvez choisir de remplacer la valeur par défaut et spécifier une valeur pour la propriété parallelCopies .However, to control the load on machines that host your data stores, or to tune copy performance, you may choose to override the default value and specify a value for the parallelCopies property. La valeur doit être comprise entre 1 et 32 (inclus).The value must be between 1 and 32 (both inclusive). Au moment de l’exécution, pour des performances optimales, l’activité de copie utilise une valeur inférieure ou égale à la valeur que vous avez définie.At run time, for the best performance, Copy Activity uses a value that is less than or equal to the value that you set.

"activities":[
    {
        "name": "Sample copy activity",
        "description": "",
        "type": "Copy",
        "inputs": [{ "name": "InputDataset" }],
        "outputs": [{ "name": "OutputDataset" }],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "parallelCopies": 8
        }
    }
]

Points à noter :Points to note:

  • Lorsque vous copiez des données entre des banques basées sur fichier, la valeur parallelCopies détermine le parallélisme au niveau du fichier.When you copy data between file-based stores, the parallelCopies determine the parallelism at the file level. La segmentation dans un seul fichier se produit en arrière-plan de manière automatique et transparente. Elle est conçue pour utiliser la meilleure taille de segment appropriée pour un type de magasin de données source donné pour charger des données de manière parallèle et orthogonale à la valeur parallelCopies.The chunking within a single file would happen underneath automatically and transparently, and it's designed to use the best suitable chunk size for a given source data store type to load data in parallel and orthogonal to parallelCopies. Le nombre réel de copies en parallèle que le service de déplacement de données utilise pour l’opération de copie au moment de l’exécution ne peut pas être supérieur au nombre de fichiers dont vous disposez.The actual number of parallel copies the data movement service uses for the copy operation at run time is no more than the number of files you have. Si le comportement de copie est défini sur mergeFile, l’activité de copie ne peut pas tirer parti du parallélisme au niveau du fichier.If the copy behavior is mergeFile, Copy Activity cannot take advantage of file-level parallelism.
  • Lorsque vous spécifiez une valeur pour la propriété parallelCopies , songez à l’augmentation de la charge sur vos banques de données sources et réceptrices et sur la passerelle s’il s’agit d’une copie hybride.When you specify a value for the parallelCopies property, consider the load increase on your source and sink data stores, and to gateway if it is a hybrid copy. Cela se produit en particulier lorsque plusieurs activités ou exécutions simultanées des mêmes activités ont lieu en même temps dans la même banque de données.This happens especially when you have multiple activities or concurrent runs of the same activities that run against the same data store. Si vous remarquez que la banque de données ou la passerelle est submergée par la charge, diminuez la valeur parallelCopies pour alléger la charge.If you notice that either the data store or Gateway is overwhelmed with the load, decrease the parallelCopies value to relieve the load.
  • Lorsque vous copiez des données à partir de banques qui ne sont pas basées sur fichier vers des banques basées sur fichier, le service de déplacement de données ignore la propriété parallelCopies .When you copy data from stores that are not file-based to stores that are file-based, the data movement service ignores the parallelCopies property. Même si le parallélisme est spécifié, il n’est pas appliqué dans ce cas.Even if parallelism is specified, it's not applied in this case.

Notes

Vous devez utiliser la passerelle de gestion des données 1.11 ou une version ultérieure pour utiliser la fonctionnalité parallelCopies lorsque vous effectuez une copie hybride.You must use Data Management Gateway version 1.11 or later to use the parallelCopies feature when you do a hybrid copy.

Pour mieux utiliser ces deux propriétés et pour améliorer votre débit de déplacement de données, voir les exemples de cas d’utilisation.To better use these two properties, and to enhance your data movement throughput, see the sample use cases. Vous n’avez pas besoin de configurer parallelCopies pour tirer parti du comportement par défaut.You don't need to configure parallelCopies to take advantage of the default behavior. Si vous configurez parallelCopies et que la valeur est trop basse, plusieurs unités de déplacement de données cloud ne peuvent pas être pleinement utilisées.If you do configure and parallelCopies is too small, multiple cloud DMUs might not be fully utilized.

Impact sur la facturationBilling impact

Il est important de garder à l’esprit que vous êtes facturé selon la durée totale de l’opération de copie.It's important to remember that you are charged based on the total time of the copy operation. Si un travail de copie prenait auparavant une heure avec une seule unité cloud et qu’il prend maintenant 15 minutes avec quatre unités cloud, le montant total de la facture reste identique.If a copy job used to take one hour with one cloud unit and now it takes 15 minutes with four cloud units, the overall bill remains almost the same. Par exemple, vous utilisez quatre unités cloud.For example, you use four cloud units. La première unité cloud dépense 10 minutes, la deuxième, 10 minutes, la troisième, 5 minutes et la quatrième, 5 minutes, le tout dans une seule exécution d’activité de copie.The first cloud unit spends 10 minutes, the second one, 10 minutes, the third one, 5 minutes, and the fourth one, 5 minutes, all in one Copy Activity run. Vous êtes facturé pour la durée (déplacement de données) de la copie totale, qui est de 10 + 10 + 5 + 5 = 30 minutes.You are charged for the total copy (data movement) time, which is 10 + 10 + 5 + 5 = 30 minutes. L’utilisation de parallelCopies n’affecte pas la facturation.Using parallelCopies does not affect billing.

copie intermédiaireStaged copy

Lorsque vous copiez des données entre une banque de données source et une banque de données réceptrice, vous pouvez choisir d’utiliser le stockage Blob comme banque intermédiaire.When you copy data from a source data store to a sink data store, you might choose to use Blob storage as an interim staging store. La fonctionnalité intermédiaire est particulièrement utile dans les cas suivants :Staging is especially useful in the following cases:

  1. Vous voulez recevoir des données à partir de divers magasins de données dans SQL Data Warehouse via PolyBase.You want to ingest data from various data stores into SQL Data Warehouse via PolyBase. SQL Data Warehouse utilise PolyBase comme un mécanisme de haut débit pour charger des données volumineuses dans SQL Data Warehouse.SQL Data Warehouse uses PolyBase as a high-throughput mechanism to load a large amount of data into SQL Data Warehouse. Toutefois, la source de données doit se trouver dans le stockage Blob, et se conformer à des critères supplémentaires.However, the source data must be in Blob storage, and it must meet additional criteria. Lorsque vous chargez des données à partir d’une banque de données autre que le stockage Blob, vous pouvez activer la copie de données via un stockage Blob intermédiaire.When you load data from a data store other than Blob storage, you can activate data copying via interim staging Blob storage. Dans ce cas, Data Factory effectue les transformations de données requises pour garantir la conformité vis-à-vis des exigences de PolyBase.In that case, Data Factory performs the required data transformations to ensure that it meets the requirements of PolyBase. Ensuite, il utilise PolyBase pour charger des données dans SQL Data Warehouse.Then it uses PolyBase to load data into SQL Data Warehouse. Pour plus d’informations, consultez Utiliser PolyBase pour charger des données dans Azure SQL Data Warehouse.For more details, see Use PolyBase to load data into Azure SQL Data Warehouse. Consultez Charger 1 To dans Azure SQL Data Warehouse en moins de 15 minutes avec Azure Data Factory pour obtenir une procédure pas à pas avec un cas d’utilisation.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.
  2. Il peut être assez long parfois d’effectuer des déplacements de données hybrides (c’est-à-dire, de copier entre une banque de données locale et une banque de données cloud) sur une connexion réseau lente.Sometimes it takes a while to perform a hybrid data movement (that is, to copy between an on-premises data store and a cloud data store) over a slow network connection. Pour améliorer les performances, vous pouvez compresser les données locales afin de réduire le temps nécessaire pour déplacer des données vers la banque de données intermédiaire dans le cloud.To improve performance, you can compress the data on-premises so that it takes less time to move data to the staging data store in the cloud. Ensuite, vous pouvez décompresser les données dans la banque intermédiaire avant de les charger dans la banque de données de destination.Then you can decompress the data in the staging store before you load it into the destination data store.
  3. Vous ne souhaitez pas ouvrir les ports autres que le port 80 et le port 443 dans votre pare-feu, en raison des stratégies informatiques d’entreprise.You don't want to open ports other than port 80 and port 443 in your firewall, because of corporate IT policies. Par exemple, lorsque vous copiez des données d’une banque de données locale vers un récepteur Azure SQL Database ou un récepteur Azure SQL Data Warehouse, vous devez activer les communications TCP sortantes sur le port 1433 pour le pare-feu Windows et votre pare-feu d’entreprise.For example, when you copy data from an on-premises data store to an Azure SQL Database sink or an Azure SQL Data Warehouse sink, you need to activate outbound TCP communication on port 1433 for both the Windows firewall and your corporate firewall. Dans ce scénario, tirez parti de la passerelle pour commencer par copier les données dans une instance de stockage blob intermédiaire via HTTP ou HTTPS sur le port 443.In this scenario, take advantage of the gateway to first copy data to a Blob storage staging instance over HTTP or HTTPS on port 443. Ensuite, chargez les données dans SQL Database ou SQL Data Warehouse à partir du stockage Blob intermédiaire.Then, load the data into SQL Database or SQL Data Warehouse from Blob storage staging. Dans ce flux, vous n’avez pas besoin d’activer le port 1433.In this flow, you don't need to enable port 1433.

Fonctionnement de la copie intermédiaireHow staged copy works

Lorsque vous activez la fonctionnalité intermédiaire, tout d’abord les données sont copiées à partir de la banque de données source vers la banque de données intermédiaire (indiquez la vôtre).When you activate the staging feature, first the data is copied from the source data store to the staging data store (bring your own). Ensuite, les données sont copiées à partir de la banque de données intermédiaire dans la banque de données de réceptrice.Next, the data is copied from the staging data store to the sink data store. Data Factory gère automatiquement le flux à deux étapes pour vous.Data Factory automatically manages the two-stage flow for you. Data Factory nettoie également les données temporaires du stockage intermédiaire une fois le déplacement de données terminé.Data Factory also cleans up temporary data from the staging storage after the data movement is complete.

Dans le scénario de copie cloud (les banques de données sources et réceptrices de données sont dans le cloud), la passerelle n’est pas utilisée.In the cloud copy scenario (both source and sink data stores are in the cloud), gateway is not used. Le service Data Factory effectue les opérations de copie.The Data Factory service performs the copy operations.

Copie intermédiaire : scénario cloud

Dans le scénario de copie hybride, (la source existe en local et le récepteur dans le cloud), la passerelle déplace les données de la banque de données source vers une banque de données intermédiaire.In the hybrid copy scenario (source is on-premises and sink is in the cloud), the gateway moves data from the source data store to a staging data store. Le service Data Factory déplace les données de la banque de données intermédiaire vers la banque de données réceptrice.Data Factory service moves data from the staging data store to the sink data store. La copie de données à partir d’une banque de données cloud vers une banque de données locale à l’aide d’une banque intermédiaire est également prise en charge avec un flux inversé.Copying data from a cloud data store to an on-premises data store via staging also is supported with the reversed flow.

Copie intermédiaire : scénario hybride

Lorsque vous activez le déplacement de données à l’aide d’une banque de données intermédiaire, vous pouvez indiquer si vous souhaitez compresser les données avant de les déplacer de la banque de données source vers une banque de données intermédiaire, et les décompresser avant leur transfert d’une banque de données intermédiaire vers une banque de données réceptrice.When you activate data movement by using a staging store, you can specify whether you want the data to be compressed before moving data from the source data store to an interim or staging data store, and then decompressed before moving data from an interim or staging data store to the sink data store.

Actuellement, vous ne pouvez pas copier de données entre deux banques de données locales à l’aide d’une banque intermédiaire.Currently, you can't copy data between two on-premises data stores by using a staging store. Cette option sera bientôt disponible.We expect this option to be available soon.

ConfigurationConfiguration

Configurez le paramètre enableStaging sur l’activité de copie pour spécifier si vous souhaitez que les données soient placées dans un stockage blob intermédiaire avant d’être chargées dans une banque de données de destination.Configure the enableStaging setting in Copy Activity to specify whether you want the data to be staged in Blob storage before you load it into a destination data store. Lorsque vous définissez enableStaging sur TRUE, spécifiez les propriétés supplémentaires répertoriées dans le tableau suivant.When you set enableStaging to TRUE, specify the additional properties listed in the next table. Si vous n’en avez pas, vous devez créer un stockage Azure ou un service lié à la signature d’accès partagé du stockage pour le stockage intermédiaire.If you don’t have one, you also need to create an Azure Storage or Storage shared access signature-linked service for staging.

PropriétéProperty DescriptionDescription Valeur par défautDefault value RequisRequired
enableStagingenableStaging Indiquez si vous souhaitez copier les données via un magasin de données intermédiaire.Specify whether you want to copy data via an interim staging store. FalseFalse NonNo
linkedServiceNamelinkedServiceName Spécifiez le nom d’un service lié AzureStorage ou AzureStorageSas faisant référence à l’instance de stockage que vous utilisez comme banque de données intermédiaire.Specify the name of an AzureStorage or AzureStorageSas linked service, which refers to the instance of Storage that you use as an interim staging store.

Vous ne pouvez pas utiliser le stockage avec une signature d’accès partagé pour charger les données dans SQL Data Warehouse via PolyBase.You cannot use Storage with a shared access signature to load data into SQL Data Warehouse via PolyBase. Vous pouvez l’utiliser dans tous les autres scénarios.You can use it in all other scenarios.
N/AN/A Oui, quand enableStaging est défini sur TRUEYes, when enableStaging is set to TRUE
pathpath Spécifiez le chemin du stockage Blob où vous souhaitez placer les données intermédiaires.Specify the Blob storage path that you want to contain the staged data. Si vous ne renseignez pas le chemin d’accès, le service crée un conteneur pour stocker les données temporaires.If you do not provide a path, the service creates a container to store temporary data.

Ne spécifiez un chemin d’accès que si vous utilisez le stockage avec une signature d’accès partagé, ou si vous avez besoin de données temporaires dans un emplacement spécifique.Specify a path only if you use Storage with a shared access signature, or you require temporary data to be in a specific location.
N/AN/A NonNo
enableCompressionenableCompression Spécifie si les données doivent être compressées avant d’être copiées vers la destination.Specifies whether data should be compressed before it is copied to the destination. Ce paramètre réduit le volume de données transférées.This setting reduces the volume of data being transferred. FalseFalse NonNo

Voici un exemple de définition de l’activité de copie avec les propriétés qui sont décrites dans le tableau précédent :Here's a sample definition of Copy Activity with the properties that are described in the preceding table:

"activities":[
{
    "name": "Sample copy activity",
    "type": "Copy",
    "inputs": [{ "name": "OnpremisesSQLServerInput" }],
    "outputs": [{ "name": "AzureSQLDBOutput" }],
    "typeProperties": {
        "source": {
            "type": "SqlSource",
        },
        "sink": {
            "type": "SqlSink"
        },
        "enableStaging": true,
        "stagingSettings": {
            "linkedServiceName": "MyStagingBlob",
            "path": "stagingcontainer/path",
            "enableCompression": true
        }
    }
}
]

Impact sur la facturationBilling impact

Vous êtes facturé en fonction de deux étapes : la durée de la copie et le type de copie.You are charged based on two steps: copy duration and copy type.

  • Lorsque vous utilisez la copie intermédiaire lors d’une copie dans le cloud (copie de données à partir d’une banque de données cloud vers une autre banque de données cloud), vous êtes facturé au prix de [somme de la durée de copie pour les étapes 1 et 2] x [prix unitaire de la copie dans le cloud].When you use staging during a cloud copy (copying data from a cloud data store to another cloud data store), you are charged the [sum of copy duration for step 1 and step 2] x [cloud copy unit price].
  • Lorsque vous utilisez la copie intermédiaire lors d’une copie hybride (copie de données à partir d’une banque de données locale vers une banque de données cloud), vous êtes facturé au prix de [durée de la copie hybride] x [prix unitaire de la copie hybride] + [durée de la copie cloud] x [prix unitaire de la copie cloud].When you use staging during a hybrid copy (copying data from an on-premises data store to a cloud data store), you are charged for [hybrid copy duration] x [hybrid copy unit price] + [cloud copy duration] x [cloud copy unit price].

Procédure de réglage des performancesPerformance tuning steps

Nous vous recommandons d’effectuer cette procédure pour régler les performances de votre service Data Factory avec l’activité de copie :We suggest that you take these steps to tune the performance of your Data Factory service with Copy Activity:

  1. Établir une ligne de base.Establish a baseline. Pendant la phase de développement, testez votre pipeline en utilisant l’activité de copie sur un échantillon de données représentatif.During the development phase, test your pipeline by using Copy Activity against a representative data sample. Vous pouvez utiliser le modèle de découpage Data Factory pour limiter la quantité de données que vous utilisez.You can use the Data Factory slicing model to limit the amount of data you work with.

    Collectez les temps d’exécution et les caractéristiques de performances à l’aide de l’application de surveillance et gestion.Collect execution time and performance characteristics by using the Monitoring and Management App. Choisissez Surveiller et gérer sur votre page d’accueil Data Factory.Choose Monitor & Manage on your Data Factory home page. Dans l’arborescence, sélectionnez le jeu de données de sortie.In the tree view, choose the output dataset. Dans la liste des fenêtres d’activité , sélectionnez l’exécution de l’activité de copie.In the Activity Windows list, choose the Copy Activity run. fenêtres d’activité répertorient la durée de l’activité de copie et la taille des données qui sont copiées.Activity Windows lists the Copy Activity duration and the size of the data that's copied. Le débit est répertorié dans l’Explorateur de fenêtres d’activité.The throughput is listed in Activity Window Explorer. Pour en savoir plus sur l’application, consultez Surveiller et gérer les pipelines Azure Data Factory à l’aide de l’application de surveillance et gestion.To learn more about the app, see Monitor and manage Azure Data Factory pipelines by using the Monitoring and Management App.

    Détails de l'exécution d'activité

    Plus loin dans cet article, vous pouvez comparer les performances et la configuration de votre scénario aux performances de référence de l’activité de copie de nos tests.Later in the article, you can compare the performance and configuration of your scenario to Copy Activity’s performance reference from our tests.

  2. Diagnostiquer et optimiser les performances.Diagnose and optimize performance. Si les performances que vous observez ne répondent pas à vos attentes, vous devez identifier les goulots d’étranglement.If the performance you observe doesn't meet your expectations, you need to identify performance bottlenecks. Ensuite, optimisez les performances pour supprimer ou réduire l’effet des goulots d’étranglement.Then, optimize performance to remove or reduce the effect of bottlenecks. Une description complète du diagnostic des performances dépasserait la portée de cet article, mais voici quelques considérations d’ordre général :A full description of performance diagnosis is beyond the scope of this article, but here are some common considerations:

  3. Étendez la configuration à l’ensemble de votre jeu de données.Expand the configuration to your entire data set. Lorsque vous êtes satisfait des résultats et des performances de l’exécution, vous pouvez étendre la définition et la période active du pipeline pour couvrir l’ensemble de votre jeu de données.When you're satisfied with the execution results and performance, you can expand the definition and pipeline active period to cover your entire data set.

Considérations relatives à la passerelle de gestion des donnéesConsiderations for Data Management Gateway

Configuration de la passerelle : nous vous recommandons d’utiliser un ordinateur dédié pour héberger la passerelle de gestion des données.Gateway setup: We recommend that you use a dedicated machine to host Data Management Gateway. Voir Considérations relatives à l’utilisation de la passerelle de gestion des données.See Considerations for using Data Management Gateway.

Supervision de la passerelle et scale-up/out : une seule passerelle logique comportant un ou plusieurs nœuds de passerelle peut traiter simultanément plusieurs exécutions de l’activité de copie.Gateway monitoring and scale-up/out: A single logical gateway with one or more gateway nodes can serve multiple Copy Activity runs at the same time concurrently. Vous pouvez afficher un instantané en temps quasi réel de l’utilisation des ressources (processeur, mémoire, réseau (entrant/sortant), etc.) sur un ordinateur de passerelle, et voir le nombre de travaux simultanés en cours d’exécution par rapport à la limite dans le portail Azure. Voir Surveillance de la passerelle dans le portail.You can view near-real time snapshot of resource utilization (CPU, memory, network(in/out), etc.) on a gateway machine as well as the number of concurrent jobs running versus limit in the Azure portal, see Monitor gateway in the portal. Si vous avez besoin de déplacer des données hybrides avec de nombreuses exécutions d’activité de copie simultanées ou avec un gros volume de données à copier, vous devriez envisager d’augmenter la taille des instances de passerelle afin de mieux utiliser vos ressources ou de configurer plus de ressources pour répondre à vos besoins de copie.If you have heavy need on hybrid data movement either with large number of concurrent copy activity runs or with large volume of data to copy, consider to scale up or scale out gateway so as to better utilize your resource or to provision more resource to empower copy.

Considérations relatives à la sourceConsiderations for the source

GénéralitésGeneral

Vérifiez que la banque de données sous-jacente n’est pas submergée par d’autres charges de travail s’exécutant dessus ou s’y rapportant.Be sure that the underlying data store is not overwhelmed by other workloads that are running on or against it.

Pour les banques de données Microsoft, consultez les rubriques relatives à la surveillance et au réglage spécifiques aux banques de données, qui peuvent vous aider à comprendre les caractéristiques de performances de celles-ci, à réduire les temps de réponse et à maximiser le débit.For Microsoft data stores, see monitoring and tuning topics that are specific to data stores, and help you understand data store performance characteristics, minimize response times, and maximize throughput.

Si vous copiez des données depuis le stockage Blob vers SQL Data Warehouse, envisagez d’utiliser PolyBase pour améliorer les performances.If you copy data from Blob storage to SQL Data Warehouse, consider using PolyBase to boost performance. Pour plus d’informations, consultez Utiliser PolyBase pour charger des données dans Azure SQL Data Warehouse .See Use PolyBase to load data into Azure SQL Data Warehouse for details. Consultez Charger 1 To dans Azure SQL Data Warehouse en moins de 15 minutes avec Azure Data Factory pour obtenir une procédure pas à pas avec un cas d’utilisation.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.

Magasins de données basés sur un fichierFile-based data stores

(Inclut le stockage des objets blob, Data Lake Store, Amazon S3, les systèmes de fichiers locaux et HDFS locaux)(Includes Blob storage, Data Lake Store, Amazon S3, on-premises file systems, and on-premises HDFS)

  • Taille et quantité moyennes de fichiers: l’activité de copie transfère les données un fichier à la fois.Average file size and file count: Copy Activity transfers data one file at a time. Pour une même quantité de données à déplacer, le débit global est plus lent si les données se composent de beaucoup de petits fichiers plutôt que de quelques fichiers volumineux, en raison de la phase d’amorçage nécessaire pour chaque fichier.With the same amount of data to be moved, the overall throughput is lower if the data consists of many small files rather than a few large files due to the bootstrap phase for each file. Par conséquent, vous devez autant que possible combiner plusieurs petits fichiers en fichiers plus volumineux pour augmenter le débit.Therefore, if possible, combine small files into larger files to gain higher throughput.
  • Format de fichier et compression : pour d’autres méthodes permettant d’améliorer les performances, voir les sections Considérations relatives à la sérialisation et à la désérialisation et Considérations relatives à la compression.File format and compression: For more ways to improve performance, see the Considerations for serialization and deserialization and Considerations for compression sections.
  • Pour le scénario de système de fichiers local où l’utilisation d’une passerelle de gestion des données est requise, voir la section Considérations relatives à la passerelle de gestion des données.For the on-premises file system scenario, in which Data Management Gateway is required, see the Considerations for Data Management Gateway section.

Bases de données relationnellesRelational data stores

(Inclut SQL Database, SQL Data Warehouse, Amazon Redshift, les bases de données SQL Server et les bases de données Oracle, MySQL, DB2, Teradata, Sybase et PostgreSQL, etc.)(Includes SQL Database; SQL Data Warehouse; Amazon Redshift; SQL Server databases; and Oracle, MySQL, DB2, Teradata, Sybase, and PostgreSQL databases, etc.)

  • Modèle de données : Votre schéma de table a des répercussions sur le débit de copie.Data pattern: Your table schema affects copy throughput. Une taille de ligne importante vous donne de meilleures performances qu’une petite taille de ligne pour copier la même quantité de données.A large row size gives you a better performance than small row size, to copy the same amount of data. Raison : la base de données peut récupérer plus efficacement moins de lots de données contenant moins de lignes.The reason is that the database can more efficiently retrieve fewer batches of data that contain fewer rows.
  • Requête ou procédure stockée : optimisez la logique de la requête ou de la procédure stockée que vous spécifiez dans la source d’activité de copie pour extraire les données plus efficacement.Query or stored procedure: Optimize the logic of the query or stored procedure you specify in the Copy Activity source to fetch data more efficiently.
  • Pour des bases de données relationnelles locales, telles que SQL Server et Oracle, qui requièrent l’utilisation d’une passerelle de gestion des données, voir la section Considérations relatives à la passerelle de gestion des données.For on-premises relational databases, such as SQL Server and Oracle, which require the use of Data Management Gateway, see the Considerations for Data Management Gateway section.

Considérations relatives au récepteurConsiderations for the sink

GénéralitésGeneral

Vérifiez que la banque de données sous-jacente n’est pas submergée par d’autres charges de travail s’exécutant dessus ou s’y rapportant.Be sure that the underlying data store is not overwhelmed by other workloads that are running on or against it.

Pour les banques de données Microsoft, voir les rubriques relatives à la surveillance et au réglage qui sont spécifiques aux banques de données.For Microsoft data stores, refer to monitoring and tuning topics that are specific to data stores. Ces rubriques peuvent vous aider à comprendre les caractéristiques des performances des banques de données et à déterminer comment réduire les temps de réponse et optimiser le débit.These topics can help you understand data store performance characteristics and how to minimize response times and maximize throughput.

Si vous copiez des données depuis le stockage Blob vers SQL Data Warehouse, envisagez d’utiliser PolyBase pour améliorer les performances.If you are copying data from Blob storage to SQL Data Warehouse, consider using PolyBase to boost performance. Pour plus d’informations, consultez Utiliser PolyBase pour charger des données dans Azure SQL Data Warehouse .See Use PolyBase to load data into Azure SQL Data Warehouse for details. Consultez Charger 1 To dans Azure SQL Data Warehouse en moins de 15 minutes avec Azure Data Factory pour obtenir une procédure pas à pas avec un cas d’utilisation.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.

Magasins de données basés sur un fichierFile-based data stores

(Inclut le stockage des objets blob, Data Lake Store, Amazon S3, les systèmes de fichiers locaux et HDFS locaux)(Includes Blob storage, Data Lake Store, Amazon S3, on-premises file systems, and on-premises HDFS)

  • Comportement de copie: si vous copiez des données d’une banque de données basée sur fichier différente, l’activité de copie propose trois options via la propriété copyBehavior.Copy behavior: If you copy data from a different file-based data store, Copy Activity has three options via the copyBehavior property. Elle conserve la hiérarchie, aplatit la hiérarchie ou fusionne les fichiers.It preserves hierarchy, flattens hierarchy, or merges files. La conservation ou l’aplanissement de la hiérarchie entraîne peu ou pas de surcharge de performances, mais la fusion de fichiers entraîne une augmentation de la surcharge des performances.Either preserving or flattening hierarchy has little or no performance overhead, but merging files causes performance overhead to increase.
  • Format de fichier et compression : voir les sections Considérations relatives à la sérialisation et à la désérialisation et Considérations relatives à la compression pour d’autres méthodes permettant d’améliorer les performances.File format and compression: See the Considerations for serialization and deserialization and Considerations for compression sections for more ways to improve performance.
  • Stockage Blob : actuellement, le Stockage Blob ne prend en charge que les objets blob de blocs pour un transfert de données et un débit optimisés.Blob storage: Currently, Blob storage supports only block blobs for optimized data transfer and throughput.
  • Pour les scénarios de systèmes de fichiers locaux nécessitant l’utilisation d’une passerelle de gestion des données, voir la section Considérations relatives à la passerelle de gestion des données.For on-premises file systems scenarios that require the use of Data Management Gateway, see the Considerations for Data Management Gateway section.

Bases de données relationnellesRelational data stores

(Inclut SQL Database, SQL Data Warehouse, les bases de données SQL Server et les bases de données Oracle)(Includes SQL Database, SQL Data Warehouse, SQL Server databases, and Oracle databases)

  • Comportement de copie: selon les propriétés que vous avez configurées pour sqlSink, l’activité de copie écrit des données dans la base de données de destination de différentes façons.Copy behavior: Depending on the properties you've set for sqlSink, Copy Activity writes data to the destination database in different ways.
    • Par défaut, le service de déplacement de données utilise une API de copie en bloc pour insérer des données en mode Append, ce qui optimise les performances.By default, the data movement service uses the Bulk Copy API to insert data in append mode, which provides the best performance.
    • Si vous configurez une procédure stockée dans le récepteur, la base de données applique les données une ligne à la fois plutôt que de les charger en bloc.If you configure a stored procedure in the sink, the database applies the data one row at a time instead of as a bulk load. Les performances chutent considérablement.Performance drops significantly. Si votre jeu de données est volumineux, le cas échéant, songez à utiliser la propriété sqlWriterCleanupScript .If your data set is large, when applicable, consider switching to using the sqlWriterCleanupScript property.
    • Si vous configurez la propriété sqlWriterCleanupScript pour chaque exécution de l’activité de copie, le service déclenche le script, puis vous utilisez l’API de copie en bloc pour insérer les données.If you configure the sqlWriterCleanupScript property for each Copy Activity run, the service triggers the script, and then you use the Bulk Copy API to insert the data. Par exemple, pour remplacer les données de la table entière par les dernières données, vous pouvez spécifier un script pour commencer par supprimer tous les enregistrements avant de charger en bloc les nouvelles données à partir de la source.For example, to overwrite the entire table with the latest data, you can specify a script to first delete all records before bulk-loading the new data from the source.
  • Modèle de données et taille de lot:Data pattern and batch size:
    • Votre schéma de table a des répercussions sur le débit de copie.Your table schema affects copy throughput. Pour copier une même quantité de données, une taille de ligne importante produit de meilleures performances qu’une petite taille, car la base de données peut valider plus efficacement moins de lots de données.To copy the same amount of data, a large row size gives you better performance than a small row size because the database can more efficiently commit fewer batches of data.
    • L’activité de copie insère des données dans une série de lots.Copy Activity inserts data in a series of batches. Vous pouvez définir le nombre de lignes dans un lot à l’aide de la propriété writeBatchSize .You can set the number of rows in a batch by using the writeBatchSize property. Si vos données comportent des lignes de petite taille, vous pouvez définir la propriété writeBatchSize sur une valeur plus élevée pour réduire la surcharge de traitement par lots et augmenter le débit.If your data has small rows, you can set the writeBatchSize property with a higher value to benefit from lower batch overhead and higher throughput. Si la taille de ligne de vos données est importante, soyez prudent lorsque vous augmentez la valeur writeBatchSize.If the row size of your data is large, be careful when you increase writeBatchSize. Une valeur élevée peut entraîner un échec de la copie en raison de la surcharge de la base de données.A high value might lead to a copy failure caused by overloading the database.
  • Pour des bases de données relationnelles locales, comme SQL Server et Oracle, qui requièrent l’utilisation d’une passerelle de gestion des données, voir la section Considérations relatives à la passerelle de gestion des données.For on-premises relational databases like SQL Server and Oracle, which require the use of Data Management Gateway, see the Considerations for Data Management Gateway section.

Magasins NoSQLNoSQL stores

(Inclut le Stockage Table et Azure Cosmos DB)(Includes Table storage and Azure Cosmos DB )

  • Pour le Stockage Table:For Table storage:
    • Partition : l’écriture de données en partitions entrelacées dégrade considérablement les performances.Partition: Writing data to interleaved partitions dramatically degrades performance. Classez vos données sources par clé de partition afin qu’elles soient insérées efficacement partition après partition, ou ajustez la logique pour écrire les données dans une seule partition.Sort your source data by partition key so that the data is inserted efficiently into one partition after another, or adjust the logic to write the data to a single partition.
  • Pour Azure Cosmos DB :For Azure Cosmos DB:
    • Taille de lot : la propriété writeBatchSize définit le nombre de requêtes parallèles adressées au service Azure Cosmos DB pour la création de documents.Batch size: The writeBatchSize property sets the number of parallel requests to the Azure Cosmos DB service to create documents. Vous pouvez vous attendre à de meilleures performances lorsque vous augmentez la valeur writeBatchSize , car davantage de demandes parallèles sont envoyées à Azure Cosmos DB.You can expect better performance when you increase writeBatchSize because more parallel requests are sent to Azure Cosmos DB. Toutefois, regardez la limitation lorsque vous écrivez sur Azure Cosmos DB (le message d’erreur est « Le taux de demandes est élevé »).However, watch for throttling when you write to Azure Cosmos DB (the error message is "Request rate is large"). Différents facteurs peuvent entraîner la limitation, notamment la taille des documents, le nombre de termes dans les documents et la stratégie d’indexation de la collection cible.Various factors can cause throttling, including document size, the number of terms in the documents, and the target collection's indexing policy. Pour obtenir un débit de copie plus élevé, songez à utiliser une meilleure collection, par exemple, S3.To achieve higher copy throughput, consider using a better collection, for example, S3.

Considérations relatives à la sérialisation et à la désérialisationConsiderations for serialization and deserialization

Une sérialisation et une désérialisation peuvent survenir quand le jeu de données d’entrée ou de sortie est un fichier.Serialization and deserialization can occur when your input data set or output data set is a file. Consultez la page Formats de fichier et de compression pris en charge qui présente des détails sur les formats de fichier pris en charge par activité de copie.See Supported file and compression formats with details on supported file formats by Copy Activity.

Comportement de copie:Copy behavior:

  • Copie de fichiers entre banques de données basées sur fichier :Copying files between file-based data stores:
    • Lorsque les jeux de données d’entrée et de sortie ont les mêmes paramètres de format de fichier ou n’en ont aucun, le service de déplacement de données exécute une copie binaire sans sérialisation ou désérialisation.When input and output data sets both have the same or no file format settings, the data movement service executes a binary copy without any serialization or deserialization. Vous voyez un débit plus élevé par rapport au scénario, dans lequel les paramètres de format de fichier source et récepteur sont différents.You see a higher throughput compared to the scenario, in which the source and sink file format settings are different from each other.
    • Lorsque les jeux de données d’entrée et de sortie sont au format texte et que seul le type d’encodage est différent, le service de déplacement de données n’effectue que la conversion de l’encodage.When input and output data sets both are in text format and only the encoding type is different, the data movement service only does encoding conversion. Il n’effectue aucune sérialisation ni désérialisation, ce qui entraîne une surcharge de performances par rapport à la copie binaire.It doesn't do any serialization and deserialization, which causes some performance overhead compared to a binary copy.
    • Lorsque les jeux de données d’entrée et de sortie diffèrent par leur format de fichier ou leur configuration, par exemple au niveau des séparateurs, le service de déplacement de données désérialise les données sources en flux, les transforme, puis les sérialise au format de sortie que vous avez indiqué.When input and output data sets both have different file formats or different configurations, like delimiters, the data movement service deserializes source data to stream, transform, and then serialize it into the output format you indicated. Cette opération donne lieu à une surcharge des performances beaucoup plus importante par rapport à d’autres scénarios.This operation results in a much more significant performance overhead compared to other scenarios.
  • Lorsque vous copiez des fichiers vers/à partir d’une banque de données qui n’est pas basée sur fichier (par exemple, d’une banque basée sur fichier vers une banque relationnelle), l’étape de sérialisation ou de désérialisation est requise.When you copy files to/from a data store that is not file-based (for example, from a file-based store to a relational store), the serialization or deserialization step is required. Cette étape génère une surcharge significative des performances.This step results in significant performance overhead.

Format de fichier : le format de fichier que vous choisissez peut affecter les performances de copie.File format: The file format you choose might affect copy performance. Par exemple, Avro est un format binaire compact qui stocke des métadonnées avec des données.For example, Avro is a compact binary format that stores metadata with data. Il bénéficie d’une prise en charge étendue dans l’écosystème Hadoop pour le traitement et l’interrogation.It has broad support in the Hadoop ecosystem for processing and querying. En revanche, le format Avro étant plus coûteux en sérialisation et désérialisation, le débit de copie est inférieur par rapport au format texte.However, Avro is more expensive for serialization and deserialization, which results in lower copy throughput compared to text format. Choisissez votre format de fichier dans le flux de traitement de manière holistique.Make your choice of file format throughout the processing flow holistically. Commencez par la forme sous laquelle les données sont stockées dans les banques de données sources ou doivent être extraites de systèmes externes ; le meilleur format pour le stockage, le traitement analytique et les requêtes, et le format dans lequel les données doivent être exportées dans des mini-data warehouses pour les outils de rapport et de visualisation.Start with what form the data is stored in, source data stores or to be extracted from external systems; the best format for storage, analytical processing, and querying; and in what format the data should be exported into data marts for reporting and visualization tools. Parfois, un format de fichier non optimal pour les performances en lecture et écriture peut constituer une option idéale pour le processus analytique général.Sometimes a file format that is suboptimal for read and write performance might be a good choice when you consider the overall analytical process.

Considérations relatives à la compressionConsiderations for compression

Lorsque votre jeu de données d’entrée ou de sortie est un fichier, vous pouvez définir l’activité de copie pour qu’elle effectue une compression ou une décompression lors de l’écriture de données dans la destination.When your input or output data set is a file, you can set Copy Activity to perform compression or decompression as it writes data to the destination. Lorsque vous choisissez la compression, vous trouvez un compromis entre les entrées/sorties (E/S) et le processeur.When you choose compression, you make a tradeoff between input/output (I/O) and CPU. La compression des données a un coût supplémentaire en ressources de calcul.Compressing the data costs extra in compute resources. Toutefois, en retour, elle réduit les E/S réseau et le stockage.But in return, it reduces network I/O and storage. En fonction de vos données, vous pouvez constater une augmentation du débit global de copie.Depending on your data, you may see a boost in overall copy throughput.

Codec : l’activité de copie prend en charge les types de compression gzip, bzip2 et Deflate.Codec: Copy Activity supports gzip, bzip2, and Deflate compression types. Azure HDInsight peut utiliser les trois types de traitement.Azure HDInsight can consume all three types for processing. Chaque codec de compression présente des avantages.Each compression codec has advantages. Par exemple, bzip2 a le plus faible débit de copie, mais vous obtenez les meilleures performances de requêtes Hive avec bzip2, car vous pouvez le fractionner pour traitement.For example, bzip2 has the lowest copy throughput, but you get the best Hive query performance with bzip2 because you can split it for processing. Gzip est l’option la plus équilibrée, et la plus souvent utilisée.Gzip is the most balanced option, and it is used the most often. Choisissez le codec le plus approprié pour votre scénario de bout en bout.Choose the codec that best suits your end-to-end scenario.

Niveau : vous avec le choix entre deux options pour chaque codec de compression, la compression la plus rapide et la compression optimale.Level: You can choose from two options for each compression codec: fastest compressed and optimally compressed. L’option de compression la plus rapide compresse les données aussi rapidement que possible, même si le fichier résultant de l’opération n’est pas compressé de façon optimale.The fastest compressed option compresses the data as quickly as possible, even if the resulting file is not optimally compressed. L’option de compression optimale nécessite plus de temps, et produit une quantité de données minimale.The optimally compressed option spends more time on compression and yields a minimal amount of data. Vous pouvez tester les deux options pour voir celle qui offre les meilleures performances globales dans votre cas.You can test both options to see which provides better overall performance in your case.

Élément à prendre en compte : pour copier une grande quantité de données entre une banque locale et le cloud, utilisez le stockage Blob intermédiaire avec compression.A consideration: To copy a large amount of data between an on-premises store and the cloud, consider using interim blob storage with compression. L’utilisation du stockage intermédiaire est utile lorsque la bande passante de votre réseau d’entreprise et de vos services Azure est le facteur limitant et que vous souhaitez que le jeu de données d’entrée et le jeu de données de sortie soient sous forme non compressée.Using interim storage is helpful when the bandwidth of your corporate network and your Azure services is the limiting factor, and you want the input data set and output data set both to be in uncompressed form. Plus spécifiquement, vous pouvez scinder une activité de copie unique en deux activités de copie.More specifically, you can break a single copy activity into two copy activities. La première activité de copie copie à partir de la source vers un blob intermédiaire sous forme compressée.The first copy activity copies from the source to an interim or staging blob in compressed form. La deuxième activité de copie copie les données compressées de l’environnement intermédiaire, puis les décompresse tandis qu’elle écrit dans le récepteur.The second copy activity copies the compressed data from staging, and then decompresses while it writes to the sink.

Considérations relatives au mappage de colonnesConsiderations for column mapping

Vous pouvez définir la propriété columnMappings dans l’activité de copie pour mapper la totalité ou un sous-ensemble des colonnes d’entrée aux colonnes de sortie.You can set the columnMappings property in Copy Activity to map all or a subset of the input columns to the output columns. Une fois que le service de déplacement de données a lu les données de la source, il doit effectuer le mappage de colonnes sur les données avant d’écrire celles-ci sur le récepteur.After the data movement service reads the data from the source, it needs to perform column mapping on the data before it writes the data to the sink. Ce traitement supplémentaire réduit le débit de copie.This extra processing reduces copy throughput.

Si votre banque de données source peut faire l’objet de requêtes, par exemple, s’il s’agit d’une banque de données relationnelle telle que SQL Database ou SQL Server ou s’il ne s’agit pas d’une banque NoSQL comme le Stockage Table ou Azure Cosmos DB, envisagez d’envoyer le filtrage de colonnes et la logique de réorganisation à la propriété query , au lieu d’utiliser le mappage de colonnes.If your source data store is queryable, for example, if it's a relational store like SQL Database or SQL Server, or if it's a NoSQL store like Table storage or Azure Cosmos DB, consider pushing the column filtering and reordering logic to the query property instead of using column mapping. Ainsi, la projection survient alors que le service de déplacement de données lit les données à partir de la banque de données source, la où elle est beaucoup plus efficace.This way, the projection occurs while the data movement service reads data from the source data store, where it is much more efficient.

Autres points à considérerOther considerations

Si la taille des données à copier est importante, vous pouvez ajuster votre logique métier pour partitionner davantage les données à l’aide du mécanisme de découpage dans Data Factory.If the size of data you want to copy is large, you can adjust your business logic to further partition the data using the slicing mechanism in Data Factory. Ensuite, planifiez l’activité de copie pour qu’elle s’exécute plus fréquemment pour réduire la taille des données pour chaque exécution d’activité de copie.Then, schedule Copy Activity to run more frequently to reduce the data size for each Copy Activity run.

Faites attention au nombre de jeux de données et d’activités de copie nécessitant que Data Factory se connecte à la même banque de données en même temps.Be cautious about the number of data sets and copy activities requiring Data Factory to connector to the same data store at the same time. De nombreux travaux de copie simultanés peuvent limiter une banque de données, et entraîner une dégradation des performances, une multiplication des tentatives internes de travail de copie et, dans certains cas, des échecs d’exécution.Many concurrent copy jobs might throttle a data store and lead to degraded performance, copy job internal retries, and in some cases, execution failures.

Exemple de scénario : copie depuis un SQL Server local vers le stockage BlobSample scenario: Copy from an on-premises SQL Server to Blob storage

Scénario : un pipeline est conçu pour copier des données d’un serveur SQL Server local vers un stockage Blob au format CSV.Scenario: A pipeline is built to copy data from an on-premises SQL Server to Blob storage in CSV format. Pour accélérer la copie des travaux, les fichiers CSV doivent être compressés au format bzip2.To make the copy job faster, the CSV files should be compressed into bzip2 format.

Test et analyse : le débit de l’activité de copie est inférieur à 2 Mbits/s, ce qui est beaucoup plus lent que le test d’évaluation des performances.Test and analysis: The throughput of Copy Activity is less than 2 MBps, which is much slower than the performance benchmark.

Analyse des performances et réglage : pour résoudre le problème de performances, nous allons tout d’abord examiner la manière dont les données sont traitées et déplacées.Performance analysis and tuning: To troubleshoot the performance issue, let’s look at how the data is processed and moved.

  1. Lecture des données : la passerelle ouvre la connexion à SQL Server et envoie la requête.Read data: Gateway opens a connection to SQL Server and sends the query. SQL Server répond en envoyant le flux de données à la passerelle via l’intranet.SQL Server responds by sending the data stream to Gateway via the intranet.
  2. Sérialiser et compresser les données : la passerelle sérialise le flux de données au format CSV, et compresse les données dans un flux bzip2.Serialize and compress data: Gateway serializes the data stream to CSV format, and compresses the data to a bzip2 stream.
  3. Écriture des données : la passerelle charge le flux bzip2 vers le Stockage Blob via Internet.Write data: Gateway uploads the bzip2 stream to Blob storage via the Internet.

Comme vous pouvez le voir, les données sont traitées et déplacées de manière séquentielle en continu : SQL Server > LAN > Passerelle > WAN > Stockage Blob.As you can see, the data is being processed and moved in a streaming sequential manner: SQL Server > LAN > Gateway > WAN > Blob storage. Les performances globales sont contrôlées par le débit minimum sur le pipeline.The overall performance is gated by the minimum throughput across the pipeline.

Flux de données

Un ou plusieurs des facteurs suivants peuvent entraîner un goulot d’étranglement des performances :One or more of the following factors might cause the performance bottleneck:

  • Source : SQL Server offre lui-même un faible débit en raison des charges lourdes.Source: SQL Server itself has low throughput because of heavy loads.
  • Passerelle de gestion des données:Data Management Gateway:
    • LAN : la passerelle est éloignée de l’ordinateur SQL Server et dispose d’une connexion à faible bande passante.LAN: Gateway is located far from the SQL Server machine and has a low-bandwidth connection.
    • Passerelle : la passerelle a atteint ses limites de charge pour effectuer les opérations suivantes :Gateway: Gateway has reached its load limitations to perform the following operations:
      • Sérialisation : la sérialisation du flux de données au format CSV présente un débit lent.Serialization: Serializing the data stream to CSV format has slow throughput.
      • Compression : vous avez choisi un codec de compression lent (par exemple, bzip2, c’est-à-dire 2,8 Mbits/s avec Core i7).Compression: You chose a slow compression codec (for example, bzip2, which is 2.8 MBps with Core i7).
    • WAN : la bande passante entre le réseau d’entreprise et vos services Azure est faible (par exemple, T1 = 1 544 Kbits/s ; T2 = 6 312 Kbits/s).WAN: The bandwidth between the corporate network and your Azure services is low (for example, T1 = 1,544 kbps; T2 = 6,312 kbps).
  • Récepteur : le stockage Blob a un faible débit.Sink: Blob storage has low throughput. (Ce scénario est peu probable car son contrat SLA garantit un minimum de 60 Mbits/s.)(This scenario is unlikely because its SLA guarantees a minimum of 60 MBps.)

Dans ce cas, la compression de données bzip2 pourrait ralentir l’ensemble du pipeline.In this case, bzip2 data compression might be slowing down the entire pipeline. Un basculement vers le codec de compression gzip peut résoudre ce goulot d’étranglement.Switching to a gzip compression codec might ease this bottleneck.

Exemples de scénarios : Utiliser la copie en parallèleSample scenarios: Use parallel copy

Scénario I : copier 1000 fichiers de 1 Mo d’un système de fichiers local vers le Stockage Blob.Scenario I: Copy 1,000 1-MB files from the on-premises file system to Blob storage.

Analyse des performances et réglage : par exemple, si vous avez installé la passerelle sur un ordinateur à quatre cœurs, Data Factory utilise 16 copies en parallèle pour déplacer simultanément les fichiers du système de fichiers vers le Stockage Blob.Analysis and performance tuning: For an example, if you have installed gateway on a quad core machine, Data Factory uses 16 parallel copies to move files from the file system to Blob storage concurrently. Cette exécution parallèle doit aboutir à un débit élevé.This parallel execution should result in high throughput. Vous pouvez également spécifier explicitement le nombre de copies parallèles.You also can explicitly specify the parallel copies count. Lorsque vous copiez plusieurs petits fichiers, les copies parallèles aident considérablement le débit en utilisant les ressources plus efficacement.When you copy many small files, parallel copies dramatically help throughput by using resources more effectively.

Scénario 1

Scénario II : copier 20 blobs de 500 Mo chacun du Stockage Blob vers Data Lake Store Analytics, puis régler les performances.Scenario II: Copy 20 blobs of 500 MB each from Blob storage to Data Lake Store Analytics, and then tune performance.

Analyse des performances et réglage : dans ce scénario, Data Factory copie les données du Stockage Blob vers Data Lake Store en utilisant des unités de déplacement de données à copie unique (valeur parallelCopies définie sur 1) et à cloud unique.Analysis and performance tuning: In this scenario, Data Factory copies the data from Blob storage to Data Lake Store by using single-copy (parallelCopies set to 1) and single-cloud data movement units. Le débit que vous constatez est proche de la description figurant dans la section relative aux performances de référence.The throughput you observe will be close to that described in the performance reference section.

Scénario 2

Scénario III : la taille des fichiers est supérieure à des dizaines de mégaoctets et le volume total est important.Scenario III: Individual file size is greater than dozens of MBs and total volume is large.

Analyse des performances et réglage : l’augmentation de la valeur parallelCopies ne donne pas de meilleures performances de copie, en raison des limitations de ressource d’une unité de déplacement de données à cloud unique.Analysis and performance turning: Increasing parallelCopies doesn't result in better copy performance because of the resource limitations of a single-cloud DMU. Vous avez plutôt intérêt à spécifier plus d’unités de déplacement de données cloud pour obtenir davantage de ressources pour le déplacement de données.Instead, you should specify more cloud DMUs to get more resources to perform the data movement. Ne spécifiez pas de valeur pour la propriété parallelCopies .Do not specify a value for the parallelCopies property. Data Factory gère le parallélisme pour vous.Data Factory handles the parallelism for you. Dans ce cas, si vous définissez cloudDataMovementUnits sur 4, un débit quatre fois supérieur se produit.In this case, if you set cloudDataMovementUnits to 4, a throughput of about four times occurs.

Scénario 3

Informations de référenceReference

Voici des références relatives à la surveillance et au réglage des performances pour quelques banques de données prises en charge :Here are performance monitoring and tuning references for some of the supported data stores: