Guida alla scalabilità e alle prestazioni dell'attività di copiaCopy activity performance and scalability guide

Se si vuole eseguire una migrazione dei dati su larga scala da data Lake o Enterprise data warehouse (EDW) ad Azure o si vuole inserire dati su larga scala da origini diverse in Azure per Big Data analisi, è fondamentale ottenere prestazioni ottimali e scalabilità.Whether you want to perform a large-scale data migration from data lake or enterprise data warehouse (EDW) to Azure, or you want to ingest data at scale from different sources into Azure for big data analytics, it is critical to achieve optimal performance and scalability. Azure Data Factory fornisce un meccanismo efficiente, resiliente ed economicamente conveniente per inserire i dati su larga scala, rendendolo ideale per gli ingegneri di dati che desiderano creare pipeline di inserimento dati altamente performanti e scalabili.Azure Data Factory provides a performant, resilient, and cost-effective mechanism to ingest data at scale, making it a great fit for data engineers looking to build highly performant and scalable data ingestion pipelines.

Dopo la lettura di questo articolo, si potrà rispondere alle domande seguenti:After reading this article, you will be able to answer the following questions:

  • Quale livello di prestazioni e scalabilità è possibile ottenere utilizzando l'attività di copia ADF per la migrazione dei dati e gli scenari di inserimento dei dati?What level of performance and scalability can I achieve using ADF copy activity for data migration and data ingestion scenarios?

  • Quali operazioni è necessario eseguire per ottimizzare le prestazioni dell'attività di copia ADF?What steps should I take to tune the performance of ADF copy activity?

  • Quali manopole di ottimizzazione delle prestazioni di ADF è possibile utilizzare per ottimizzare le prestazioni per una singola esecuzione dell'attività di copia?What ADF perf optimization knobs can I utilize to optimize performance for a single copy activity run?

  • Quali altri fattori all'esterno di ADF considerare durante l'ottimizzazione delle prestazioni di copia?What other factors outside ADF to consider when optimizing copy performance?

Nota

Se non si ha familiarità con l'attività di copia in generale, vedere la Panoramica dell'attività di copia prima di leggere questo articolo.If you aren't familiar with the copy activity in general, see the copy activity overview before you read this article.

Prestazioni di copia e scalabilità ottenibili con ADFCopy performance and scalability achievable using ADF

ADF offre un'architettura senza server che consente il parallelismo a livelli diversi, consentendo agli sviluppatori di compilare pipeline per sfruttare al meglio la larghezza di banda di rete, oltre a IOPS e larghezza di banda di archiviazione per ottimizzare la velocità effettiva di spostamento dei dati per l'ambiente.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. Ciò significa che la velocità effettiva che è possibile ottenere può essere stimata misurando la velocità effettiva minima offerta dall'archivio dati di origine, l'archivio dati di destinazione e la larghezza di banda di rete tra l'origine e la destinazione.This means the throughput you can achieve can be estimated by measuring the minimum throughput offered by the source data store, the destination data store, and network bandwidth in between the source and destination. La tabella seguente calcola la durata della copia in base alle dimensioni dei dati e al limite di larghezza di banda per l'ambiente.The table below calculates the copy duration based on data size and the bandwidth limit for your environment.

Dimensioni dati/Data size /
larghezza di bandabandwidth
50 Mbps50 Mbps 100 Mbps100 Mbps 500 Mbps500 Mbps 1 Gbps1 Gbps 5 Gbps5 Gbps 10 Gbps10 Gbps 50 Gbps50 Gbps
1 GB1 GB 2,7 min2.7 min 1,4 min1.4 min 0,3 min0.3 min 0,1 min0.1 min 0,03 min0.03 min 0,01 min0.01 min 0,0 min0.0 min
10 GB10 GB 27,3 min27.3 min 13,7 min13.7 min 2,7 min2.7 min 1,3 min1.3 min 0,3 min0.3 min 0,1 min0.1 min 0,03 min0.03 min
100 GB100 GB 4,6 ore4.6 hrs 2,3 ore2.3 hrs 0,5 ore0.5 hrs 0,2 ore0.2 hrs 0,05 ore0.05 hrs 0,02 ore0.02 hrs 0,0 ore0.0 hrs
1 TB1 TB 46,6 ore46.6 hrs 23,3 ore23.3 hrs 4,7 ore4.7 hrs 2,3 ore2.3 hrs 0,5 ore0.5 hrs 0,2 ore0.2 hrs 0,05 ore0.05 hrs
10 TB10 TB 19,4 giorni19.4 days 9,7 giorni9.7 days 1,9 giorni1.9 days 0,9 giorni0.9 days 0,2 giorni0.2 days 0,1 giorni0.1 days 0,02 giorni0.02 days
100 TB100 TB 194,2 giorni194.2 days 97,1 giorni97.1 days 19,4 giorni19.4 days 9,7 giorni9.7 days 1,9 giorni1.9 days 1 giorno1 days 0,2 giorni0.2 days
1 PB1 PB 64,7 mo64.7 mo 32,4 Mo32.4 mo 6,5 Mo6.5 mo 3,2 Mo3.2 mo 0,6 Mo0.6 mo 0,3 Mo0.3 mo 0,06 mo0.06 mo
10 PB10 PB 647,3 Mo647.3 mo 323,6 Mo323.6 mo 64,7 mo64.7 mo 31,6 Mo31.6 mo 6,5 Mo6.5 mo 3,2 Mo3.2 mo 0,6 Mo0.6 mo

La copia di ADF è scalabile a livelli diversi:ADF copy is scalable at different levels:

scalabilità delle copie di ADF

  • Il flusso di controllo ADF può avviare più attività di copia in parallelo, ad esempio utilizzando per ogni ciclo.ADF control flow can start multiple copy activities in parallel, for example using For Each loop.
  • Una singola attività di copia può sfruttare le risorse di calcolo scalabili: quando si usa Azure Integration Runtime, è possibile specificare fino a 256 DIUs per ogni attività di copia in modo senza server. Quando si usa Integration Runtime indipendenti, è possibile scalare manualmente il computer o scalare orizzontalmente in più computer (fino a 4 nodi) e una singola attività di copia partiziona il set di file in tutti i nodi.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.
  • Una singola attività di copia legge e scrive nell'archivio dati usando più thread in parallelo.A single copy activity reads from and writes to the data store using multiple threads in parallel.

Procedura di ottimizzazione delle prestazioniPerformance tuning steps

Eseguire questi passaggi per ottimizzare le prestazioni del servizio Azure Data Factory con l'attività di copia.Take these steps to tune the performance of your Azure Data Factory service with the copy activity.

  1. Selezionare un set di dati di test e stabilire una linea di base.Pick up a test dataset and establish a baseline. Durante la fase di sviluppo, testare la pipeline usando l'attività di copia su un campione di dati rappresentativi.During the development phase, test your pipeline by using the copy activity against a representative data sample. Il set di dati scelto deve rappresentare i modelli di dati tipici (struttura di cartelle, modello di file, schema di dati e così via) ed è sufficientemente grande per valutare le prestazioni di copia, ad esempio per completare l'attività di copia è necessario 10 minuti o oltre.The dataset you choose should represent your typical data patterns (folder structure, file pattern, data schema, etc.), and is big enough to evaluate copy performance, for example it takes 10 minutes or beyond for copy activity to complete. Raccogliere i dettagli di esecuzione e le caratteristiche delle prestazioni dopo il monitoraggio dell'attività di copia.Collect execution details and performance characteristics following copy activity monitoring.

  2. Come ottimizzare le prestazioni di una singola attività di copia:How to maximize performance of a single copy activity:

    Per iniziare, è consigliabile innanzitutto ottimizzare le prestazioni usando una singola attività di copia.To start with, we recommend you to first maximize performance using a single copy activity.

    Se l'attività di copia viene eseguita in un Azure Integration Runtime:If the copy activity is being executed on an Azure Integration Runtime:

    Iniziare con i valori predefiniti per le unità di integrazione dati (DIU) e le impostazioni di copia parallela .Start with default values for Data Integration Units (DIU) and parallel copy settings. Eseguire un'esecuzione dei test delle prestazioni e prendere nota delle prestazioni, nonché dei valori effettivi usati per DIUs e copie parallele.Perform a performance test run, and take a note of the performance achieved as well as the actual values used for DIUs and parallel copies. Vedere monitoraggio dell'attività di copia su come raccogliere i risultati dell'esecuzione e le impostazioni delle prestazioni usate.Refer to copy activity monitoring on how to collect run results and performance settings used.

    A questo punto, eseguire esecuzioni di test aggiuntive, ogni volta raddoppiando il valore per l'impostazione DIU.Now conduct additional performance test runs, each time doubling the value for DIU setting. In alternativa, se si ritiene che le prestazioni ottenibili usando l'impostazione predefinita si trovino molto al di sotto dell'aspettativa, è possibile aumentare l'impostazione di DIU in maniera più drastica nell'esecuzione dei test successiva.Alternatively, if you think the performance achieved using the default setting is far below your expectation, you can increase the DIU setting more drastically in the subsequent test run.

    L'attività di copia deve essere scalata quasi perfettamente in modo lineare man mano che si aumenta l'impostazione DIU.Copy activity should scale almost perfectly linearly as you increase the DIU setting. Se si raddoppia l'impostazione DIU, non si vede la velocità effettiva Double, è possibile che si verifichino due operazioni:If by doubling the DIU setting you are not seeing the throughput double, two things could be happening:

    • Il modello di copia specifico in esecuzione non trae vantaggio dall'aggiunta di altre DIUs.The specific copy pattern you are running does not benefit from adding more DIUs. Anche se è stato specificato un valore DIU più grande, il valore di DIU effettivo usato è rimasto invariato e pertanto si sta ottenendo la stessa velocità effettiva che precede.Even though you had specified a larger DIU value, the actual DIU used remained the same, and therefore you are getting the same throughput as before. In tal caso, ottimizzare la velocità effettiva aggregata eseguendo più copie simultaneamente facendo riferimento al passaggio 3.If this is the case, maximize aggregate throughput by running multiple copies concurrently referring step 3.
    • Con l'aggiunta di più DIUs (maggiore potenza) e, di conseguenza, la velocità di estrazione, trasferimento e caricamento dei dati più elevata, ovvero l'archivio dati di origine, la rete tra o l'archivio dati di destinazione ha raggiunto il collo di bottiglia e potrebbe essere limitato.By adding more DIUs (more horsepower) and thereby driving higher rate of data extraction, transfer, and loading, either the source data store, the network in between, or the destination data store has reached its bottleneck and possibly being throttled. In tal caso, provare a contattare l'amministratore dell'archivio dati o l'amministratore di rete per aumentare il limite superiore oppure, in alternativa, ridurre l'impostazione di DIU fino a quando non si verifica la limitazione delle richieste.If this is the case, try contacting your data store administrator or your network administrator to raise the upper limit, or alternatively, reduce the DIU setting until throttling stops occurring.

    Se l'attività di copia viene eseguita in un Integration Runtime self-hosted:If the copy activity is being executed on a self-hosted Integration Runtime:

    Si consiglia di usare un computer dedicato separato dal server che ospita l'archivio dati per ospitare Integration Runtime.We recommend that you use a dedicated machine separate from the server hosting the data store to host integration runtime.

    Iniziare con i valori predefiniti per l'impostazione di copia parallela e usare un singolo nodo per il runtime di integrazione self-hosted.Start with default values for parallel copy setting and using a single node for the self-hosted IR. Eseguire un'esecuzione dei test delle prestazioni e prendere nota delle prestazioni.Perform a performance test run and take a note of the performance achieved.

    Per ottenere una velocità effettiva più elevata, è possibile scalare verticalmente il runtime di integrazione self-hosted:If you would like to achieve higher throughput, you can either scale up or scale out the self-hosted IR:

    • Se la CPU e la memoria disponibile nel nodo IR self-hosted non sono completamente utilizzate, ma l'esecuzione dei processi simultanei raggiunge il limite, è necessario aumentare il numero di processi simultanei in un nodo.If the CPU and available memory on the self-hosted IR node are not fully utilized, but the execution of concurrent jobs is reaching the limit, you should scale up by increasing the number of concurrent jobs that can run on a node. Per istruzioni, vedere qui .See here for instructions.
    • Se, d'altra parte, la CPU è elevata sul nodo IR indipendente o la memoria disponibile è insufficiente, è possibile aggiungere un nuovo nodo per aumentare la scalabilità orizzontale del carico tra più nodi.If, on the other hand, the CPU is high on the self-hosted IR node or available memory is low, you can add a new node to help scale out the load across the multiple nodes. Per istruzioni, vedere qui .See here for instructions.

    Con la scalabilità verticale o orizzontale della capacità del runtime di integrazione self-hosted, ripetere l'esecuzione del test delle prestazioni per verificare se si sta ottenendo una velocità effettiva sempre maggiore.As you scale up or scale out the capacity of the self-hosted IR, repeat the performance test run to see if you are getting increasingly better throughput. Se la velocità effettiva smette di migliorare, probabilmente l'archivio dati di origine, la rete tra o l'archivio dati di destinazione ha raggiunto il collo di bottiglia e sta iniziando a essere limitato.If throughput stops improving, most likely either the source data store, the network in between, or the destination data store has reached its bottleneck and is starting to get throttled. In tal caso, provare a contattare l'amministratore dell'archivio dati o l'amministratore di rete per aumentare il limite superiore oppure, in alternativa, tornare all'impostazione di scalabilità precedente per il runtime di integrazione self-hosted.If this is the case, try contacting your data store administrator or your network administrator to raise the upper limit, or alternatively, go back to your previous scaling setting for the self-hosted IR.

  3. Come ottimizzare la velocità effettiva aggregata eseguendo più copie simultaneamente:How to maximize aggregate throughput by running multiple copies concurrently:

    Ora che sono state ingrandite le prestazioni di una singola attività di copia, se non sono ancora stati superati i limiti massimi di velocità effettiva dell'ambiente, ovvero la rete, l'archivio dati di origine e l'archivio dati di destinazione, è possibile eseguire più attività di copia in parallelo usando ADF costrutti del flusso di controllo, ad esempio per ciascun ciclo.Now that you have maximized the performance of a single copy activity, if you have not yet achieved the throughput upper limits of your environment – network, source data store, and destination data store - you can run multiple copy activities in parallel using ADF control flow constructs such as For Each loop.

  4. Suggerimenti per l'ottimizzazione delle prestazioni e funzionalità di ottimizzazione.Performance tuning tips and optimization features. In alcuni casi, quando si esegue un'attività di copia in Azure Data Factory, viene visualizzato il messaggio "suggerimenti per l'ottimizzazione delle prestazioni" nella parte superiore del monitoraggio dell'attività di copia, come illustrato nell'esempio seguente.In some cases, when you run a copy activity in Azure Data Factory, you see a "Performance tuning tips" message on top of the copy activity monitoring, as shown in the following example. Il messaggio indica il collo di bottiglia identificato per l'esecuzione della copia specificata.The message tells you the bottleneck that was identified for the given copy run. Vengono inoltre illustrati gli elementi da modificare per aumentare la velocità effettiva della copia.It also guides you on what to change to boost copy throughput. I suggerimenti per l'ottimizzazione delle prestazioni offrono attualmente suggerimenti come:The performance tuning tips currently provide suggestions like:

    • Usare la polibase quando si copiano i dati in Azure SQL Data Warehouse.Use PolyBase when you copy data into Azure SQL Data Warehouse.
    • Aumentare Azure Cosmos DB unità richiesta o il database SQL di Azure DTU (unità di velocità effettiva del database) quando la risorsa sul lato archivio dati è il collo di bottiglia.Increase Azure Cosmos DB Request Units or Azure SQL Database DTUs (Database Throughput Units) when the resource on the data store side is the bottleneck.
    • Rimuovere la copia temporanea non necessaria.Remove the unnecessary staged copy.

    Anche le regole di ottimizzazione delle prestazioni verranno gradualmente migliorate.The performance tuning rules will be gradually enriched as well.

    Esempio: Copia nel database SQL di Azure con suggerimenti per l'ottimizzazione delle prestazioniExample: Copy into Azure SQL Database with performance tuning tips

    In questo esempio, durante l'esecuzione di una copia, Azure Data Factory rileva che il database SQL di Azure sink raggiunge un utilizzo elevato di DTU, rallentando le operazioni di scrittura.In this sample, during a copy run, Azure Data Factory notices the sink Azure SQL Database reaches high DTU utilization, which slows down the write operations. Il suggerimento consiste nell'aumentare il livello del database SQL di Azure con più DTU.The suggestion is to increase the Azure SQL Database tier with more DTUs.

    Monitoraggio della copia con suggerimenti per l'ottimizzazione delle prestazioni

    Inoltre, di seguito sono riportate alcune funzionalità di ottimizzazione delle prestazioni che è necessario conoscere:In addition, the following are some performance optimization features you should be aware of:

  5. Espandere la configurazione per l'intero set di dati.Expand the configuration to your entire dataset. Quando si è soddisfatti dei risultati e delle prestazioni di esecuzione, è possibile espandere la definizione e la pipeline per coprire l'intero set di dati.When you're satisfied with the execution results and performance, you can expand the definition and pipeline to cover your entire dataset.

Funzionalità di ottimizzazione delle prestazioni di copiaCopy performance optimization features

Azure Data Factory offre le seguenti funzionalità di ottimizzazione delle prestazioni:Azure Data Factory provides the following performance optimization features:

Unità di integrazione datiData Integration Units

Un'unità di integrazione dati è una misura che rappresenta la potenza, ovvero una combinazione di CPU, memoria e allocazione di risorse di rete, di una singola unità in Azure Data Factory.A Data Integration Unit is a measure that represents the power (a combination of CPU, memory, and network resource allocation) of a single unit in Azure Data Factory. L'unità di integrazione dati si applica solo al runtime di integrazione di Azure, ma non al runtime di integrazione self-hosted.Data Integration Unit only applies to Azure integration runtime, but not self-hosted integration runtime.

Ti verrà addebitato il numero di unità * di durata * copia DIUs di utilizzoYou will be charged # of used DIUs * copy duration * unit price/DIU-hour. Vedi i prezzi correnti qui.See the current prices here. È possibile applicare la valuta locale e la separazione separata per ogni tipo di sottoscrizione.Local currency and separate discounting may apply per subscription type.

Il DIUs consentito per consentire l'esecuzione di un'attività di copia è compreso tra 2 e 256.The allowed DIUs to empower a copy activity run is between 2 and 256. Se non è specificato o se si sceglie "auto" nell'interfaccia utente, Data Factory applicare in modo dinamico l'impostazione Optimal DIU in base alla coppia di sink di origine e al modello di dati.If not specified or you choose “Auto” on the UI, Data Factory dynamically apply the optimal DIU setting based on your source-sink pair and data pattern. La tabella seguente elenca le DIUs predefinite usate in diversi scenari di copia:The following table lists the default DIUs used in different copy scenarios:

Scenario di copiaCopy scenario Numero di unità di integrazione dati predefinite determinato dal servizioDefault DIUs determined by service
Copiare dati tra archivi basati su fileCopy data between file-based stores Compreso tra 4 e 32 in base al numero e alle dimensioni dei fileBetween 4 and 32 depending on the number and size of the files
Copiare i dati nel database SQL di Azure o Azure Cosmos DBCopy data to Azure SQL Database or Azure Cosmos DB Tra 4 e 16 a seconda del livello del database SQL di Azure sink o del Cosmos DB (numero di DTU/UR)Between 4 and 16 depending on the sink Azure SQL Database's or Cosmos DB's tier (number of DTUs/RUs)
Tutti gli altri scenari di copiaAll the other copy scenarios 44

Per ignorare l'impostazione predefinita, è possibile specificare un valore per la proprietà dataIntegrationUnits procedendo come segue.To override this default, specify a value for the dataIntegrationUnits property as follows. Il numero effettivo di unità di integrazione dati usate dall'operazione di copia in fase di esecuzione è minore o uguale al valore configurato, a seconda del modello di dati.The actual number of DIUs that the copy operation uses at run time is equal to or less than the configured value, depending on your data pattern.

Quando si monitora un'esecuzione di attività, è possibile visualizzare i DIUs usati per ogni copia eseguita nell'output dell'attività di copia.You can see the DIUs used for each copy run in the copy activity output when you monitor an activity run. Per altre informazioni, vedere monitoraggio dell'attività di copia.For more information, see Copy activity monitoring.

Nota

L'impostazione di DIUs maggiori di quattro attualmente si applica solo quando si copiano più file da archiviazione di Azure, Azure Data Lake Storage, Amazon S3, Google Cloud Storage, cloud FTP o cloud SFTP a tutti gli altri archivi dati cloud.Setting of DIUs larger than four currently applies only when you copy multiple files from Azure Storage, Azure Data Lake Storage, Amazon S3, Google Cloud Storage, cloud FTP, or cloud SFTP to any other cloud data stores.

Esempio:Example:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "dataIntegrationUnits": 32
        }
    }
]

Copia parallelaParallel copy

È possibile usare la proprietà parallelCopies per indicare il parallelismo che si vuole venga usato dall'attività di copia.You can use the parallelCopies property to indicate the parallelism that you want the copy activity to use. È possibile considerare questa proprietà come il numero massimo di thread all'interno dell'attività di copia che può leggere dall'origine o scrivere negli archivi dati sink in parallelo.You can think of this property as the maximum number of threads within the copy activity that can read from your source or write to your sink data stores in parallel.

Per ogni esecuzione dell'attività di copia, Azure Data Factory determina il numero di copie parallele da usare per copiare i dati dall'archivio dati di origine all'archivio dati di destinazione.For each copy activity run, Azure Data Factory determines the number of parallel copies to use to copy data from the source data store and to the destination data store. Il numero predefinito di copie parallele usate dipende dal tipo di origine e sink usato.The default number of parallel copies that it uses depends on the type of source and sink that you use.

Scenario di copiaCopy scenario Numero predefinito di copie parallele determinato dal servizioDefault parallel copy count determined by service
Copiare dati tra archivi basati su fileCopy data between file-based stores Dipende dalle dimensioni dei file e dal numero di DIUs usati per copiare i dati tra due archivi dati cloud o la configurazione fisica del computer del runtime di integrazione self-hosted.Depends on the size of the files and the number of DIUs used to copy data between two cloud data stores, or the physical configuration of the self-hosted integration runtime machine.
Copiare da archivio dati relazionale con l'opzione di partizione abilitata (inclusi Oracle, Netezza, Teradata, SAP Tablee SAP Open Hub)Copy from relational data store with partition option enabled (including Oracle, Netezza, Teradata, SAP Table, and SAP Open Hub) 44
Copiare i dati da qualsiasi archivio di origine ad archiviazione tabelle di AzureCopy data from any source store to Azure Table storage 44
Tutti gli altri scenari di copiaAll other copy scenarios 11

Suggerimento

Quando si copiano dati tra archivi basati su file, il comportamento predefinito in genere offre la migliore velocità effettiva.When you copy data between file-based stores, the default behavior usually gives you the best throughput. Il comportamento predefinito viene determinato automaticamente in base al modello di file di origine.The default behavior is auto-determined based on your source file pattern.

Per controllare il carico sui computer che ospitano gli archivi dati o per ottimizzare le prestazioni di copia, è possibile eseguire l'override del valore predefinito e specificare un valore per la proprietà parallelCopies .To control the load on machines that host your data stores, or to tune copy performance, you can override the default value and specify a value for the parallelCopies property. Il valore deve essere un numero intero maggiore o uguale a 1.The value must be an integer greater than or equal to 1. In fase di esecuzione, per ottenere prestazioni ottimali, l'attività di copia utilizza un valore minore o uguale al valore impostato.At run time, for the best performance, the copy activity uses a value that is less than or equal to the value that you set.

Punti da notare:Points to note:

  • Quando si copiano dati tra archivi basati su file, parallelCopies determina il parallelismo a livello di file.When you copy data between file-based stores, parallelCopies determines the parallelism at the file level. La suddivisione in blocchi all'interno di un singolo file avviene in modo automatico e trasparente.The chunking within a single file happens underneath automatically and transparently. È progettato per usare le dimensioni del blocco più adatte per un determinato tipo di archivio dati di origine per caricare i dati in parallelo e ortogonali a parallelCopies.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. Il numero effettivo di copie parallele usate dal servizio di spostamento dati per l'operazione di copia in fase di esecuzione non è maggiore del numero di file disponibili.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. Se il comportamento di copia è mergeFile, l'attività di copia non può sfruttare il parallelismo a livello di file.If the copy behavior is mergeFile, the copy activity can't take advantage of file-level parallelism.
  • Quando si copiano dati da archivi non basati su file (ad eccezione di Oracle, Netezza, Teradata, SAP Tablee SAP Open Hub Connector come origine con il partizionamento dei dati abilitato) per gli archivi basati su file, i dati il servizio di spostamento ignora la proprietà parallelCopies .When you copy data from stores that are not file-based (except Oracle, Netezza, Teradata, SAP Table, and SAP Open Hub connector as source with data partitioning enabled) to stores that are file-based, the data movement service ignores the parallelCopies property. Anche se viene specificato, in questo caso il parallelismo non viene applicato.Even if parallelism is specified, it's not applied in this case.
  • La proprietà parallelCopies è ortogonale a dataIntegrationUnits.The parallelCopies property is orthogonal to dataIntegrationUnits. La prima viene conteggiata su tutte le unità di integrazione dati.The former is counted across all the Data Integration Units.
  • Quando si specifica un valore per la proprietà parallelCopies , prendere in considerazione l'aumento del carico per gli archivi dati di origine e sink.When you specify a value for the parallelCopies property, consider the load increase on your source and sink data stores. Prendere in considerazione anche l'aumento del carico per il runtime di integrazione self-hosted se l'attività di copia è abilitata, ad esempio per la copia ibrida.Also consider the load increase to the self-hosted integration runtime if the copy activity is empowered by it, for example, for hybrid copy. Questo aumento del carico si verifica soprattutto quando si hanno più attività o esecuzioni simultanee delle stesse attività eseguite nello stesso archivio dati.This load increase happens especially when you have multiple activities or concurrent runs of the same activities that run against the same data store. Se si nota che l'archivio dati o il runtime di integrazione self-hosted è sovraccarico del carico, ridurre il valore di parallelCopies per alleggerire il carico.If you notice that either the data store or the self-hosted integration runtime is overwhelmed with the load, decrease the parallelCopies value to relieve the load.

Esempio:Example:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "parallelCopies": 32
        }
    }
]

copia di stagingStaged copy

Quando si copiano dati da un archivio dati di origine a un archivio dati sink, è possibile scegliere di usare un archivio BLOB come archivio di staging provvisorio.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 funzionalità di staging è particolarmente utile nei casi seguenti:Staging is especially useful in the following cases:

  • Si vuole inserire dati da diversi archivi dati in SQL Data Warehouse tramite la polibase.You want to ingest data from various data stores into SQL Data Warehouse via PolyBase. SQL Data Warehouse fa uso di PolyBase come meccanismo a velocità effettiva elevata per il caricamento di grandi quantità di dati in SQL Data Warehouse.SQL Data Warehouse uses PolyBase as a high-throughput mechanism to load a large amount of data into SQL Data Warehouse. I dati di origine devono trovarsi in un archivio BLOB o Azure Data Lake Store e devono soddisfare criteri aggiuntivi.The source data must be in Blob storage or Azure Data Lake Store, and it must meet additional criteria. Quando si caricano dati da un archivio dati non BLOB o Azure Data Lake Store, è possibile attivare la copia di dati tramite un'archiviazione BLOB di staging provvisoria.When you load data from a data store other than Blob storage or Azure Data Lake Store, you can activate data copying via interim staging Blob storage. In tal caso, Azure Data Factory esegue le trasformazioni dei dati necessarie per verificare che soddisfi i requisiti di polibase.In that case, Azure Data Factory performs the required data transformations to ensure that it meets the requirements of PolyBase. Quindi usa PolyBase per caricare in modo efficiente i dati in SQL Data Warehouse.Then it uses PolyBase to load data into SQL Data Warehouse efficiently. Per altre informazioni, vedere la sezione Usare PolyBase per caricare dati in Azure SQL Data Warehouse.For more information, see Use PolyBase to load data into Azure SQL Data Warehouse.
  • A volte è necessario un po' di tempo per eseguire uno spostamento dati ibrido, ovvero per copiare da un archivio dati locale a un archivio dati cloud, su una connessione di rete lenta.Sometimes it takes a while to perform a hybrid data movement (that is, to copy from an on-premises data store to a cloud data store) over a slow network connection. Per migliorare le prestazioni, è possibile usare la copia di staging per comprimere i dati in locale, in modo che sia necessario meno tempo per spostare i dati nell'archivio dati di staging nel cloud.To improve performance, you can use staged copy to compress the data on-premises so that it takes less time to move data to the staging data store in the cloud. Sarà quindi possibile decomprimere i dati nell'archivio di staging prima di caricarli nell'archivio dati di destinazione.Then you can decompress the data in the staging store before you load into the destination data store.
  • Non è necessario aprire porte diverse dalla porta 80 e dalla porta 443 nel firewall a causa dei criteri IT aziendali.You don't want to open ports other than port 80 and port 443 in your firewall because of corporate IT policies. Ad esempio, quando si copiano dati da un archivio dati locale a un sink del database SQL di Azure o un sink di Azure SQL Data Warehouse, è necessario attivare le comunicazioni TCP in uscita sulla porta 1433 per Windows Firewall e per il firewall aziendale.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. In questo scenario, la copia di staging può trarre vantaggio dal runtime di integrazione self-hosted per prima cosa copiare i dati in un'istanza di staging dell'archiviazione BLOB tramite HTTP o HTTPS sulla porta 443.In this scenario, staged copy can take advantage of the self-hosted integration runtime to first copy data to a Blob storage staging instance over HTTP or HTTPS on port 443. Quindi, può caricare i dati nel database SQL o SQL Data Warehouse dalla gestione temporanea dell'archiviazione BLOB.Then it can load the data into SQL Database or SQL Data Warehouse from Blob storage staging. In questo flusso non è necessario abilitare la porta 1433.In this flow, you don't need to enable port 1433.

Come funziona la copia di stagingHow staged copy works

Quando si attiva la funzionalità di staging, i dati vengono prima copiati dall'archivio dati di origine nell'archivio BLOB di staging personale.When you activate the staging feature, first the data is copied from the source data store to the staging Blob storage (bring your own). Successivamente, vengono copiati dall'archivio dati di staging nell'archivio dati sink.Next, the data is copied from the staging data store to the sink data store. Azure Data Factory gestisce automaticamente il flusso a due fasi.Azure Data Factory automatically manages the two-stage flow for you. Azure Data Factory pulisce anche i dati temporanei dall'archiviazione di staging dopo il completamento dello spostamento dei dati.Azure Data Factory also cleans up temporary data from the staging storage after the data movement is complete.

copia di staging

Quando si attiva lo spostamento dei dati usando un archivio di staging, è possibile specificare se si vuole che i dati vengano compressi prima di spostare i dati dall'archivio dati di origine a un archivio dati provvisorio o di staging e quindi decompressi prima di spostare i dati da un file dat provvisorio o di staging Archivio nell'archivio dati sink.When you activate data movement by using a staging store, you can specify whether you want the data to be compressed before you move data from the source data store to an interim or staging data store and then decompressed before you move data from an interim or staging data store to the sink data store.

Attualmente, non è possibile copiare i dati tra due archivi dati connessi tramite un altro IRs indipendente, né con la copia temporanea.Currently, you can't copy data between two data stores that are connected via different Self-hosted IRs, neither with nor without staged copy. Per questo scenario, è possibile configurare due attività di copia concatenate in modo esplicito per la copia dall'origine alla gestione temporanea, quindi da staging a sink.For such scenario, you can configure two explicitly chained copy activity to copy from source to staging then from staging to sink.

ConfigurazioneConfiguration

Configurare l'impostazione enableStaging nell'attività di copia per specificare se si desidera che i dati vengano gestiti temporaneamente nell'archivio BLOB prima di caricarli in un archivio dati di destinazione.Configure the enableStaging setting in the copy activity to specify whether you want the data to be staged in Blob storage before you load it into a destination data store. Quando si imposta enableStaging su TRUE, specificare le proprietà aggiuntive elencate nella tabella seguente.When you set enableStaging to TRUE, specify the additional properties listed in the following table. È anche necessario creare un servizio collegato di archiviazione di Azure o di archiviazione con firma di accesso condiviso per la gestione temporanea, se non è già presente.You also need to create an Azure Storage or Storage shared access signature-linked service for staging if you don’t have one.

ProprietàProperty DescrizioneDescription Valore predefinitoDefault value ObbligatoriaRequired
enableStagingenableStaging Specificare se si vuole copiare i dati tramite un archivio di staging provvisorio.Specify whether you want to copy data via an interim staging store. FalseFalse NoNo
linkedServiceNamelinkedServiceName Specificare il nome di un servizio collegato AzureStorage che fa riferimento all'istanza di archiviazione usata come archivio di staging provvisorio.Specify the name of an AzureStorage linked service, which refers to the instance of Storage that you use as an interim staging store.

Non è possibile usare l'archiviazione con una firma di accesso condiviso per caricare i dati in SQL Data Warehouse tramite la polibase.You can't use Storage with a shared access signature to load data into SQL Data Warehouse via PolyBase. Può essere usata in tutti gli altri scenari.You can use it in all other scenarios.
N/DN/A Sì, quando enableStaging è impostato su TRUEYes, when enableStaging is set to TRUE
pathpath Specificare il percorso dell'archivio BLOB che deve contenere i dati di staging.Specify the Blob storage path that you want to contain the staged data. Se non si specifica un percorso, il servizio crea un contenitore per archiviare i dati temporanei.If you don't provide a path, the service creates a container to store temporary data.

Specificare un percorso solo se si usa l'archiviazione con una firma di accesso condiviso o se i dati temporanei devono trovarsi in un percorso specifico.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/DN/A NoNo
enableCompressionenableCompression Specifica se i dati devono essere compressi prima di essere copiati nella destinazione.Specifies whether data should be compressed before it's copied to the destination. Questa impostazione ridurre il volume dei dati da trasferire.This setting reduces the volume of data being transferred. FalseFalse NoNo

Nota

Se si usa la copia di staging con la compressione abilitata, l'entità servizio o l'autenticazione MSI per il servizio collegato del BLOB di staging non è supportata.If you use staged copy with compression enabled, the service principal or MSI authentication for staging blob linked service isn't supported.

Ecco una definizione di esempio di un'attività di copia con le proprietà descritte nella tabella precedente:Here's a sample definition of a copy activity with the properties that are described in the preceding table:

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

Impatto della copia di staging sulla fatturazioneStaged copy billing impact

I costi vengono addebitati in base a due passaggi: durata della copia e tipo di copia.You're charged based on two steps: copy duration and copy type.

  • Quando si usa la gestione temporanea durante una copia nel cloud, che copia i dati da un archivio dati cloud a un altro archivio dati cloud, entrambe le fasi sono potenziate dal runtime di integrazione di Azure, viene addebitato il valore [somma della durata della copia per i passaggi 1 e 2] x [prezzo unitario di copia cloud].When you use staging during a cloud copy, which is copying data from a cloud data store to another cloud data store, both stages empowered by Azure integration runtime, you're charged the [sum of copy duration for step 1 and step 2] x [cloud copy unit price].
  • Quando si usa la gestione temporanea durante una copia ibrida, che copia i dati da un archivio dati locale a un archivio dati cloud, una fase abilitata da un runtime di integrazione self-hosted, viene addebitato il costo di [durata copia ibrida] x [prezzo unitario copia ibrida] + [durata copia cloud] x [prezzo unitario della copia nel cloud].When you use staging during a hybrid copy, which is copying data from an on-premises data store to a cloud data store, one stage empowered by a self-hosted integration runtime, you're charged for [hybrid copy duration] x [hybrid copy unit price] + [cloud copy duration] x [cloud copy unit price].

RiferimentiReferences

Di seguito sono riportati alcuni riferimenti sul monitoraggio e l'ottimizzazione delle prestazioni per alcuni degli archivi dati supportati:Here are performance monitoring and tuning references for some of the supported data stores:

Passaggi successiviNext steps

Vedere gli altri articoli sull'attività di copia:See the other copy activity articles: