Guida alle prestazioni dell'attività di copia e all'ottimizzazioneCopy Activity performance and tuning guide

Nota

Le informazioni di questo articolo sono valide per la versione 1 di Data Factory.This article applies to version 1 of Data Factory. Se si usa la versione corrente del servizio Data Factory, vedere Copy activity performance and tuning guide for Data Factory (Guida alle prestazioni dell'attività di copia e all'ottimizzazione per 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'attività di copia di Azure Data Factory offre una soluzione di caricamento dei dati di primo livello in quanto a sicurezza, affidabilità e prestazioni.Azure Data Factory Copy Activity delivers a first-class secure, reliable, and high-performance data loading solution. Consente di copiare decine di terabyte di dati ogni giorno in un'ampia gamma di archivi dati locali e cloud.It enables you to copy tens of terabytes of data every day across a rich variety of cloud and on-premises data stores. Prestazioni di caricamento dei dati velocissime sono fondamentali per garantire di potersi concentrare sul problema centrale dei "big data": realizzare soluzioni avanzate di analisi e ricevere informazioni approfondite da tutti i dati.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 fornisce un set di soluzioni di archiviazione dei dati e data warehouse di livello aziendale, e l'attività di copia offre un'esperienza di caricamento dei dati altamente ottimizzata, facile da configurare e impostare.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. Con un'unica attività di copia, è possibile ottenere:With just a single copy activity, you can achieve:

L'articolo illustra:This article describes:

Nota

Se non si ha familiarità con l'attività di copia in generale, vedere Spostare dati con l'attività di copia prima di continuare a leggere l'articolo.If you are not familiar with Copy Activity in general, see Move data by using Copy Activity before reading this article.

Informazioni di riferimento sulle prestazioniPerformance reference

Come riferimento, la tabella sotto mostra la velocità effettiva di copia in MBps per le coppie di origine e sink specifiche in base a test interni.As a reference, below table shows the copy throughput number in MBps for the given source and sink pairs based on in-house testing. A scopo di confronto, viene illustrato anche in che modo le diverse impostazioni di unità di spostamento dati cloud o la scalabilità di Gateway di gestione dati (nodi gateway multipli) possono favorire le prestazioni di copia.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 delle prestazioni

Importante

In Azure Data Factory versione 1 il numero minimo di unità di spostamento dati cloud per la copia da cloud a cloud è due.In Azure Data Factory version 1, the minimal cloud data movement units for cloud-to-cloud copy is two. Se non specificato, vedere le unità di spostamento dati predefinite usate nelle unità di spostamento dati nel cloud.If not specified, see default data movement units being used in cloud data movement units.

Punti da notare:Points to note:

  • La velocità effettiva viene calcolata con la formula seguente: [dimensione dei dati letti dall'origine]/[durata dell'esecuzione dell'attività di copia].Throughput is calculated by using the following formula: [size of data read from source]/[Copy Activity run duration].
  • I numeri di riferimento delle prestazioni nella tabella sono stati misurati usando il set di dati TPC-H nell'esecuzione di una singola attività di copia.The performance reference numbers in the table were measured using TPC-H data set in a single copy activity run.
  • Nel caso degli archivi dati di Azure, l'origine e il sink si trovano nella stessa area di Azure.In Azure data stores, the source and sink are in the same Azure region.
  • Per la copia ibrida tra archivi dati locali e cloud, ogni nodo del gateway è in esecuzione su un computer separato dall'archivio dati locale, con le specifiche indicate di seguito.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. Durante l'esecuzione di una singola attività nel gateway, l'operazione di copia ha usato solo una piccola parte della CPU, della memoria o della larghezza di banda di rete del computer di test.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. Vedere Considerazioni su Gateway di gestione dati.Learn more from consideration for Data Management Gateway.
    CPUCPU Intel Xeon E5-2660 v2 da 32 core a 2,20 GHz32 cores 2.20 GHz Intel Xeon E5-2660 v2
    MemoriaMemory 128 GB128 GB
    ReteNetwork Interfaccia Internet: 10 Gbps, interfaccia Intranet: 40 GbpsInternet interface: 10 Gbps; intranet interface: 40 Gbps

Suggerimento

È possibile raggiungere una velocità effettiva più elevata sfruttando un numero maggiore di unità di spostamento dati di quello massimo predefinito, pari a 32 per l'esecuzione di un'attività di copia da cloud a 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. Ad esempio, con 100 unità di spostamento dati è possibile copiare i dati dal BLOB di Azure in Azure Data Lake Store a 1,0 GB al secondo.For example, with 100 DMUs, you can achieve copying data from Azure Blob into Azure Data Lake Store at 1.0GBps. Vedere la sezione Unità di spostamento dati cloud per informazioni dettagliate su questa funzionalità e sullo scenario supportato.See the Cloud data movement units section for details about this feature and the supported scenario. Contattare il Supporto tecnico di Azure per richiedere altre unità di spostamento dati.Contact Azure support to request more DMUs.

Copia parallelaParallel copy

È possibile leggere dati dall'origine o scrivere dati nella destinazione in parallelo all'interno di un'esecuzione dell'attività di copia.You can read data from the source or write data to the destination in parallel within a Copy Activity run. Questa funzionalità migliora la velocità effettiva di un'operazione di copia e riduce il tempo necessario per spostare i dati.This feature enhances the throughput of a copy operation and reduces the time it takes to move data.

Questa impostazione è diversa dalla proprietà concurrency nella definizione dell'attività.This setting is different from the concurrency property in the activity definition. La proprietà concurrency determina il numero di esecuzioni simultanee dell'attività di copia per elaborare i dati da finestre attività diverse. Ad esempio, dall'1.00 alle 2.00, dalle 2.00 alle 3.00, dalle 3.00 alle 4.00 e così via.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). Questa funzionalità è utile quando si esegue un caricamento cronologico.This capability is helpful when you perform a historical load. La funzionalità di copia parallela si applica all'esecuzione di una singola attività.The parallel copy capability applies to a single activity run.

Verrà ora esaminato uno scenario di esempio.Let's look at a sample scenario. Nell'esempio seguente è necessario elaborare più sezioni trascorse.In the following example, multiple slices from the past need to be processed. Data Factory esegue un'istanza dell'attività di copia, ovvero un'esecuzione attività, per ogni sezione:Data Factory runs an instance of Copy Activity (an activity run) for each slice:

  • Sezione dati dalla prima finestra attività (dall'1.00 alle 2.00) = = > esecuzione attività 1The data slice from the first activity window (1 AM to 2 AM) ==> Activity run 1
  • Sezione dati dalla seconda finestra attività (dalle 2.00 alle 3.00) = = > esecuzione attività 2The data slice from the second activity window (2 AM to 3 AM) ==> Activity run 2
  • Sezione dati dalla terza finestra attività (dalle 3.00 alle 4.00) = = > esecuzione attività 3The data slice from the second activity window (3 AM to 4 AM) ==> Activity run 3

e così via.And so on.

In questo esempio quando il valore concurrency è impostato su 2, l'esecuzione attività 1 e l'esecuzione attività 2 copiano i dati da due finestre attività simultaneamente per migliorare le prestazioni dello spostamento dati.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. Tuttavia, se all'esecuzione attività 1 sono associati più file, il servizio di spostamento dati copia un file alla volta dall'origine alla destinazione.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à di spostamento dati cloudCloud data movement units

L' unità di spostamento dati cloud è una misura che rappresenta la potenza, ossia la combinazione tra CPU, memoria e allocazione di risorse di rete, di una singola unità in 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. L'unità di spostamento dati cloud è valida per le operazioni di copia da cloud a cloud, ma non in una copia ibrida.DMU is applicable for cloud-to-cloud copy operations, but not in a hybrid copy.

Il numero minimo di unità di spostamento dati cloud per ottimizzare l'esecuzione dell'attività di copia è due.The minimal cloud data movement units to empower Copy Activity run is two. Se non specificato, nella tabella seguente sono elencate le unità di spostamento dati predefinite usate in diversi scenari di copia:If not specified, the following table lists the default DMUs used in different copy scenarios:

Scenario di copiaCopy scenario Numero di unità di spostamento dati predefinite determinato dal servizioDefault DMUs determined by service
Copiare dati tra archivi basati su fileCopy data between file-based stores Tra 4 e 16 in base al numero e alle dimensioni dei file.Between 4 and 16 depending on the number and size of the files.
Tutti gli altri scenari di copiaAll other copy scenarios 44

Per ignorare l'impostazione predefinita, è possibile specificare un valore per la proprietà cloudDataMovementUnits procedendo come segue.To override this default, specify a value for the cloudDataMovementUnits property as follows. I valori consentiti per la proprietà cloudDataMovementUnits sono 2, 4, 8, 16, 32.The allowed values for the cloudDataMovementUnits property are 2, 4, 8, 16, 32. Il numero effettivo di unità di spostamento dati cloud 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 cloud DMUs that the copy operation uses at run time is equal to or less than the configured value, depending on your data pattern. Per informazioni sul livello di miglioramento delle prestazioni che è possibile ottenere quando si configurano più unità per un sink e un'origine della copia specifici, vedere la sezione Informazioni di riferimento sulle prestazioni.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
        }
    }
]

Nota

Se sono necessarie più unità di spostamento dati cloud per aumentare la velocità effettiva, contattare il supporto di Azure.If you need more cloud DMUs for a higher throughput, contact Azure support. Attualmente è possibile impostare la proprietà su valori maggiori o uguali a 8 soltanto per la copia di più file da Blob storage/Data Lake Store/Amazon S3/cloud FTP/cloud SFTP in Blob storage/Data Lake Store/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

È possibile usare la proprietà parallelCopies per indicare il parallelismo che l'attività di copia deve usare.You can use the parallelCopies property to indicate the parallelism that you want Copy Activity to use. Questa proprietà può essere considerata come il numero massimo di thread all'interno dell'attività di copia che possono leggere dall'origine o scrivere negli archivi dati sink in parallelo.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.

Per ogni esecuzione dell'attività di copia, 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, 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 dal tipo di sink usati.The default number of parallel copies that it uses depends on the type of source and sink that you are using.

Origine e sinkSource and sink Numero predefinito di copie parallele determinato dal servizioDefault parallel copy count determined by service
Copia di dati tra archivi basati su file, come archiviazione BLOB, Data Lake Store, Amazon S3, un file system locale, un HDFS localeCopy data between file-based stores (Blob storage; Data Lake Store; Amazon S3; an on-premises file system; an on-premises HDFS) Tra 1 e 32.Between 1 and 32. Dipende dalle dimensioni dei file e del numero di unità di spostamento dati cloud usate per copiare dati tra due archivi dati cloud oppure dalla configurazione fisica del computer gateway usato per una copia ibrida, ovvero la copia di dati da o in un archivio dati 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).
Copia di dati da qualsiasi archivio dati di origine in un archivio tabelle di AzureCopy data from any source data store to Azure Table storage 44
Tutte le altre coppie di origine e sinkAll other source and sink pairs 11

In genere, il comportamento predefinito dovrebbe garantire la velocità effettiva migliore.Usually, the default behavior should give you the best throughput. Tuttavia, per controllare il carico sui computer che ospitano gli archivi dati o per ottimizzare le prestazioni di copia, è possibile scegliere di ignorare il valore predefinito e specificare un valore per la proprietà 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. Il valore deve essere compreso tra 1 e 32, estremi inclusi.The value must be between 1 and 32 (both inclusive). Per garantire prestazioni ottimali in fase di esecuzione, l'attività di copia usa un valore minore o uguale al valore configurato.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
        }
    }
]

Punti da notare:Points to note:

  • Quando si copiano i dati tra archivi basati su file, parallelCopies determina il parallelismo a livello di file.When you copy data between file-based stores, the parallelCopies determine the parallelism at the file level. La suddivisione in blocchi all'interno di un singolo file si verificherebbe sottotraccia in modo automatico e trasparente; tale operazione è pensata per usare la dimensione di blocco più appropriata per un tipo di archivio dati di origine specificato al fine di caricare i dati in maniera parallela e ortogonale a 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. 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ò usare il parallelismo a livello di file.If the copy behavior is mergeFile, Copy Activity cannot take advantage of file-level parallelism.
  • Quando si specifica un valore per la proprietà parallelCopies , prendere in considerazione l'aumento del carico per gli archivi dati sink e di origine e per il gateway, se si tratta di una copia ibrida.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. Questo avviene soprattutto quando ci sono più attività o esecuzioni simultanee delle stesse attività che vengono eseguite con lo stesso archivio dati.This happens especially when you have multiple activities or concurrent runs of the same activities that run against the same data store. Se si nota un sovraccarico dell'archivio dati o del gateway, diminuire il valore di parallelCopies per alleggerirlo.If you notice that either the data store or Gateway is overwhelmed with the load, decrease the parallelCopies value to relieve the load.
  • Quando si copiano dati da archivi non basati su file in archivi basati su file, il servizio di spostamento dati ignora la proprietà 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. Anche se viene specificato, in questo caso il parallelismo non viene applicato.Even if parallelism is specified, it's not applied in this case.

Nota

Per poter usare la funzionalità parallelCopies durante una copia ibrida, è necessario usare Gateway di gestione dati 1.11 o versione successiva.You must use Data Management Gateway version 1.11 or later to use the parallelCopies feature when you do a hybrid copy.

Per usare al meglio queste due proprietà e per migliorare la velocità effettiva dello spostamento dati, vedere i casi d'uso di esempio.To better use these two properties, and to enhance your data movement throughput, see the sample use cases. Per usare il comportamento predefinito non è necessario configurare parallelCopies .You don't need to configure parallelCopies to take advantage of the default behavior. Se si esegue la configurazione e il valore di parallelCopies è troppo basso, è possibile che più unità di spostamento dati cloud non vengano utilizzate appieno.If you do configure and parallelCopies is too small, multiple cloud DMUs might not be fully utilized.

Impatto della fatturazioneBilling impact

È importante ricordare che l'addebito è basato sul tempo totale impiegato per l'operazione di copia.It's important to remember that you are charged based on the total time of the copy operation. Se un processo di copia impiegava un'ora con una unità cloud e ora richiede 15 minuti con quattro unità cloud, la fattura complessiva rimane pressoché identica.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. Si prenda ad esempio un utilizzo di quattro unità cloud.For example, you use four cloud units. La prima unità cloud impiega 10 minuti, la seconda 10 minuti, la terza 5 minuti e la quarta 5 minuti, tutto in un'unica esecuzione dell'attività di copia.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. Verrà addebitato il tempo totale dell'operazione di copia, ovvero di spostamento dei dati, che è pari a 10 + 10 + 5 + 5 = 30 minuti.You are charged for the total copy (data movement) time, which is 10 + 10 + 5 + 5 = 30 minutes. L'uso di parallelCopies non influisce sulla fatturazione.Using parallelCopies does not affect billing.

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:

  1. Si inseriscono dati da vari archivi dati in SQL Data Warehouse tramite PolyBase.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. Tuttavia, i dati di origine devono essere in un archivio BLOB e devono soddisfare criteri aggiuntivi.However, the source data must be in Blob storage, and it must meet additional criteria. Quando si caricano dati da un archivio dati non BLOB, è possibile attivare la copia di dati tramite un archivio BLOB di staging provvisorio.When you load data from a data store other than Blob storage, you can activate data copying via interim staging Blob storage. In tal caso, Data Factory esegue le trasformazioni di dati necessarie per garantire che vengano soddisfatti i requisiti di PolyBase.In that case, Data Factory performs the required data transformations to ensure that it meets the requirements of PolyBase. Quindi usa PolyBase per caricare i dati in SQL Data Warehouse.Then it uses PolyBase to load data into SQL Data Warehouse. Per maggiori dettagli, vedere la sezione Usare PolyBase per caricare dati in Azure SQL Data Warehouse.For more details, see Use PolyBase to load data into Azure SQL Data Warehouse. Per la procedura dettagliata con un caso d'uso, vedere Caricare 1 TB di dati in Azure SQL Data Warehouse in meno di 15 minuti con Azure Data Factory.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.
  2. A volte occorre tempo per eseguire uno spostamento dati ibrido, ovvero la copia tra un archivio dati locale e 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 between an on-premises data store and a cloud data store) over a slow network connection. Per migliorare le prestazioni, è possibile 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 compress the data on-premises so that it takes less time to move data to the staging data store in the cloud. È 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 it into the destination data store.
  3. Non si vuole 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, sfruttare il gateway prima di tutto per copiare i dati in un'istanza di staging dell'archivio BLOB tramite HTTP o HTTPS sulla porta 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. Quindi, caricare i dati nel database SQL o in SQL Data Warehouse dall'archivio BLOB di staging.Then, 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 dati di staging personale.When you activate the staging feature, first the data is copied from the source data store to the staging data store (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. Data Factory gestisce automaticamente il flusso in due fasiData Factory automatically manages the two-stage flow for you. ed elimina i dati temporanei dall'archivio di staging al termine dello spostamento dati.Data Factory also cleans up temporary data from the staging storage after the data movement is complete.

Nello scenario di copia cloud (entrambi gli archivi dati di origine e sink si trovano nel cloud), il gateway non viene usato.In the cloud copy scenario (both source and sink data stores are in the cloud), gateway is not used. Il servizio Data Factory esegue le operazioni di copia.The Data Factory service performs the copy operations.

Copia di staging: scenario cloud

Nello scenario di copia ibrido (l'origine è in locale e il sink è nel cloud), il gateway sposta i dati dall'archivio dati di origine a un archivio dati di staging.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. Il servizio di Data Factory sposta i dati dall'archivio dati di staging all'archivio dati sink.Data Factory service moves data from the staging data store to the sink data store. La copia di dati da un archivio dati cloud in un archivio dati locale tramite la funzionalità di staging è supportata anche con un flusso invertito.Copying data from a cloud data store to an on-premises data store via staging also is supported with the reversed flow.

Copia di staging: scenario ibrido

Quando si attiva lo spostamento dei dati usando un archivio di staging, è possibile specificare se i dati devono essere compressi prima dello spostamento dall'archivio dati di origine all'archivio dati provvisorio o di staging e poi decompressi prima dello spostamento dall'archivio dati provvisorio o di staging all'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 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.

Attualmente non è possibile copiare dati tra due archivi dati locali usando un archivio di staging.Currently, you can't copy data between two on-premises data stores by using a staging store. Questa opzione sarà presto disponibile.We expect this option to be available soon.

ConfigurazioneConfiguration

Configurare l'impostazione enableStaging nell'attività di copia per specificare se i dati devono essere inseriti in un archivio BLOB di Azure di staging prima del caricamento in un archivio dati di destinazione.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. Se 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 next table. Se non è già disponibile, è necessario creare un servizio collegato alla firma di accesso condiviso di archiviazione o di Archiviazione di Azure per lo staging.If you don’t have one, you also need to create an Azure Storage or Storage shared access signature-linked service for staging.

ProprietàProperty DescrizioneDescription Valore predefinitoDefault value ObbligatorioRequired
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 o AzureStorageSas che fa riferimento all'istanza di archiviazione usata come archivio di staging provvisorio.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.

L'archiviazione non può essere usata con una firma di accesso condiviso per caricare dati in SQL Data Warehouse tramite PolyBase.You cannot 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 in cui archiviare i dati temporanei.If you do not 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 è necessario comprimere i dati prima di copiarli nella destinazione.Specifies whether data should be compressed before it is copied to the destination. Questa impostazione ridurre il volume dei dati da trasferire.This setting reduces the volume of data being transferred. FalseFalse NoNo

Di seguito è riportata una definizione di esempio di attività di copia con le proprietà descritte nella tabella precedente: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
        }
    }
}
]

Impatto della fatturazioneBilling impact

I costi addebitati si basano su due passaggi: durata della copia e tipo di copia.You are charged based on two steps: copy duration and copy type.

  • Quando si usa la funzionalità di staging durante una copia nel cloud, ovvero la copia di dati da un archivio dati cloud a un altro archivio dati cloud, il costo addebitato sarà [somma della durata della copia per i passaggi 1 e 2] x [prezzo unitario della copia nel 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].
  • Quando si usa la funzionalità di staging durante una copia ibrida, ovvero la copia di dati da un archivio dati locale a un archivio dati cloud, il costo addebitato sarà [durata della copia ibrida] x [prezzo unitario della copia ibrida] + [durata della copia nel cloud] x [prezzo unitario della copia nel 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].

Procedura di ottimizzazione delle prestazioniPerformance tuning steps

Per ottimizzare le prestazioni del servizio Data Factory con l'attività di copia, è consigliabile seguire questa procedura:We suggest that you take these steps to tune the performance of your Data Factory service with Copy Activity:

  1. Stabilire una baseline.Establish a baseline. Durante la fase di sviluppo, testare la pipeline usando l'attività di copia su un campione di dati rappresentativo.During the development phase, test your pipeline by using Copy Activity against a representative data sample. È possibile usare il modello di sezionamento di Data Factory per limitare la quantità di dati utilizzati.You can use the Data Factory slicing model to limit the amount of data you work with.

    Per raccogliere le caratteristiche relative a prestazioni e tempo di esecuzione è possibile usare l' app di monitoraggio e gestione.Collect execution time and performance characteristics by using the Monitoring and Management App. Scegliere Monitoraggio e gestione nella home page di Data Factory.Choose Monitor & Manage on your Data Factory home page. Nella visualizzazione albero scegliere il set di dati di output.In the tree view, choose the output dataset. Nell'elenco Activity Windows (Finestre attività) scegliere l'esecuzione dell'attività di copia.In the Activity Windows list, choose the Copy Activity run. Activity Windows (Finestre attività) riporta la durata dell'attività di copia e le dimensioni dei dati copiati.Activity Windows lists the Copy Activity duration and the size of the data that's copied. La velocità effettiva è elencata in Activity Window Explorer(Esplora finestre attività).The throughput is listed in Activity Window Explorer. Per altre informazioni sull'app, vedere Monitorare e gestire le pipeline di Azure Data Factory con la nuova app di monitoraggio e gestione.To learn more about the app, see Monitor and manage Azure Data Factory pipelines by using the Monitoring and Management App.

    Dettagli esecuzione attività

    È possibile confrontare le prestazioni e la configurazione dello scenario personalizzato con le informazioni di riferimento sulle prestazioni dell'attività di copia ottenute dai test e pubblicate più avanti.Later in the article, you can compare the performance and configuration of your scenario to Copy Activity’s performance reference from our tests.

  2. Diagnosticare e ottimizzare le prestazioni.Diagnose and optimize performance. Se le prestazioni osservate non soddisfano le aspettative, è necessario identificare gli eventuali colli di bottigliaIf the performance you observe doesn't meet your expectations, you need to identify performance bottlenecks. e quindi ottimizzare le prestazioni per rimuovere o ridurre l'effetto dei colli di bottiglia.Then, optimize performance to remove or reduce the effect of bottlenecks. Una descrizione completa della diagnosi delle prestazioni non rientra nell'ambito di questo articolo, ma di seguito sono riportate alcune considerazioni comuni:A full description of performance diagnosis is beyond the scope of this article, but here are some common considerations:

  3. Espandere la configurazione all'intero set di dati.Expand the configuration to your entire data set. Dopo aver ottenuto prestazioni e risultati di esecuzione soddisfacenti, è possibile espandere la definizione del set di dati e il periodo attivo della 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 active period to cover your entire data set.

Considerazioni su Gateway di gestione datiConsiderations for Data Management Gateway

Configurazione del gateway: è consigliabile usare un computer dedicato per ospitare Gateway di gestione dati.Gateway setup: We recommend that you use a dedicated machine to host Data Management Gateway. Vedere Considerazioni sull'uso di Gateway di gestione dati.See Considerations for using Data Management Gateway.

Monitoraggio e scalabilità verticale/orizzontale del gateway: un singolo gateway logico con uno o più nodi del gateway può consentire più esecuzioni di attività di copia contemporaneamente.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. È possibile visualizzare lo snapshot quasi in tempo quasi reale dell'utilizzo delle risorse, ad esempio CPU, memoria, rete (ingresso/uscita) e così via, in un computer gateway oltre che il numero di processi simultanei in esecuzione rispetto ai limiti nel portale di Azure. Vedere Monitorare il gateway nel portale.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. Se si hanno necessità complesse di spostamento di dati ibridi, con un numero elevato di esecuzioni di attività di copia simultanee o con un volume elevato di dati da copiare, prendere in considerazione la possibilità di aumentare le prestazioni o sfruttare la scalabilità orizzontale del gateway in modo da utilizzare al meglio la risorsa o effettuare il provisioning di più risorse a supporto della copia.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.

Considerazioni sull'origineConsiderations for the source

GeneraleGeneral

Assicurarsi che l'archivio dati sottostante non sia sovraccarico a causa di altri carichi di lavoro in esecuzione in o su di esso.Be sure that the underlying data store is not overwhelmed by other workloads that are running on or against it.

Per gli archivi dati Microsoft, vedere gli argomenti sul monitoraggio e l'ottimizzazione specifici degli archivi dati, per comprendere meglio le caratteristiche delle prestazioni degli archivi dati e come ridurre al minimo i tempi di risposta e ottimizzare la velocità effettiva.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.

Se si copiano dati da un archivio BLOB a SQL Data Warehouse, valutare l'uso di PolyBase per migliorare le prestazioni.If you copy data from Blob storage to SQL Data Warehouse, consider using PolyBase to boost performance. Per altre informazioni, vedere la sezione Usare PolyBase per caricare dati in Azure SQL Data Warehouse .See Use PolyBase to load data into Azure SQL Data Warehouse for details. Per la procedura dettagliata con un caso d'uso, vedere Caricare 1 TB di dati in Azure SQL Data Warehouse in meno di 15 minuti con Azure Data Factory.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.

Archivi dati basati su fileFile-based data stores

Inclusi archiviazione BLOB, Data Lake Store, Amazon S3, file system locali e HDFS locale(Includes Blob storage, Data Lake Store, Amazon S3, on-premises file systems, and on-premises HDFS)

  • Dimensioni medie dei file e numero medio di file: l'attività di copia trasferisce i dati procedendo un file alla volta.Average file size and file count: Copy Activity transfers data one file at a time. Con la stessa quantità di dati da spostare, la velocità effettiva generale risulta inferiore se i dati sono costituiti da un numero elevato di file piccoli anziché da pochi file di grandi dimensioni. Ciò è dovuto alla fase di bootstrap necessaria per ogni file.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. Se possibile, combinare quindi i file piccoli in file più grandi per raggiungere una maggiore velocità effettiva.Therefore, if possible, combine small files into larger files to gain higher throughput.
  • Formato di file e compressione: per altre informazioni su come migliorare le prestazioni, vedere le sezioni Considerazioni sulla serializzazione e deserializzazione e Considerazioni sulla compressione.File format and compression: For more ways to improve performance, see the Considerations for serialization and deserialization and Considerations for compression sections.
  • Per scenari di file system locali in cui è necessario usare Gateway di gestione dati, vedere la sezione Considerazioni su Gateway di gestione dati.For the on-premises file system scenario, in which Data Management Gateway is required, see the Considerations for Data Management Gateway section.

Archivi dati relazionaliRelational data stores

Inclusi database SQL, SQL Data Warehouse, Amazon Redshift, database SQL Server e database Oracle, MySQL, DB2, Teradata, Sybase e PostgreSQL(Includes SQL Database; SQL Data Warehouse; Amazon Redshift; SQL Server databases; and Oracle, MySQL, DB2, Teradata, Sybase, and PostgreSQL databases, etc.)

  • Modello di dati: lo schema di tabella influisce sulla velocità effettiva di copia.Data pattern: Your table schema affects copy throughput. Una riga di grandi dimensioni offre migliori prestazioni rispetto a una riga di piccole dimensioni per copiare la stessa quantità di dati.A large row size gives you a better performance than small row size, to copy the same amount of data. Questo perché il database è in grado di recuperare in modo più efficiente un minor numero di batch di dati che contengono meno righe.The reason is that the database can more efficiently retrieve fewer batches of data that contain fewer rows.
  • Query o stored procedure: ottimizzare la logica della query o della stored procedure specificata nell'origine dell'attività di copia per recuperare i dati in modo più efficiente.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.
  • Per i database relazionali locali come SQL Server e Oracle, in cui è necessario usare Gateway di gestione dati, vedere la sezione Considerazioni su Gateway di gestione dati.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.

Considerazioni sul sinkConsiderations for the sink

GeneraleGeneral

Assicurarsi che l'archivio dati sottostante non sia sovraccarico a causa di altri carichi di lavoro in esecuzione in o su di esso.Be sure that the underlying data store is not overwhelmed by other workloads that are running on or against it.

Per gli archivi dati Microsoft, vedere gli argomenti sul monitoraggio e l'ottimizzazione specifici per gli archivi dati,For Microsoft data stores, refer to monitoring and tuning topics that are specific to data stores. per comprendere meglio le caratteristiche delle prestazioni degli archivi dati e come ridurre al minimo i tempi di risposta e ottimizzare la velocità effettiva.These topics can help you understand data store performance characteristics and how to minimize response times and maximize throughput.

Se si copiano dati da un archivio BLOB a SQL Data Warehouse, valutare l'uso di PolyBase per migliorare le prestazioni.If you are copying data from Blob storage to SQL Data Warehouse, consider using PolyBase to boost performance. Per altre informazioni, vedere la sezione Usare PolyBase per caricare dati in Azure SQL Data Warehouse .See Use PolyBase to load data into Azure SQL Data Warehouse for details. Per la procedura dettagliata con un caso d'uso, vedere Caricare 1 TB di dati in Azure SQL Data Warehouse in meno di 15 minuti con Azure Data Factory.For a walkthrough with a use case, see Load 1 TB into Azure SQL Data Warehouse under 15 minutes with Azure Data Factory.

Archivi dati basati su fileFile-based data stores

Inclusi archiviazione BLOB, Data Lake Store, Amazon S3, file system locali e HDFS locale(Includes Blob storage, Data Lake Store, Amazon S3, on-premises file systems, and on-premises HDFS)

  • Comportamento di copia: se si copiano dati da un diverso archivio dati basato su file, l'attività di copia fornisce tre tipi di comportamento tramite la proprietà copyBehavior,Copy behavior: If you copy data from a different file-based data store, Copy Activity has three options via the copyBehavior property. mantenere la gerarchia, rendere flat la gerarchia e unire i file.It preserves hierarchy, flattens hierarchy, or merges files. Conservare o rendere flat la gerarchia comporta un overhead delle prestazioni minimo, mentre unire i file provoca un aumento dell'overhead delle prestazioni.Either preserving or flattening hierarchy has little or no performance overhead, but merging files causes performance overhead to increase.
  • Formato di file e compressione: per altre informazioni su come migliorare le prestazioni, vedere le sezioni Considerazioni sulla serializzazione e deserializzazione e Considerazioni sulla compressione.File format and compression: See the Considerations for serialization and deserialization and Considerations for compression sections for more ways to improve performance.
  • Archivio BLOB: attualmente l'archivio BLOB supporta solo i BLOB in blocchi per l'ottimizzazione della velocità effettiva e del trasferimento dati.Blob storage: Currently, Blob storage supports only block blobs for optimized data transfer and throughput.
  • Per scenari di file system locali in cui è necessario usare Gateway di gestione dati, vedere la sezione Considerazioni su Gateway di gestione dati.For on-premises file systems scenarios that require the use of Data Management Gateway, see the Considerations for Data Management Gateway section.

Archivi dati relazionaliRelational data stores

Inclusi database SQL, SQL Data Warehouse, database SQL Server e database Oracle(Includes SQL Database, SQL Data Warehouse, SQL Server databases, and Oracle databases)

  • Comportamento di copia: a seconda delle proprietà configurate per sqlSink, l'attività di copia scrive i dati nel database di destinazione in modi diversi.Copy behavior: Depending on the properties you've set for sqlSink, Copy Activity writes data to the destination database in different ways.
    • Per impostazione predefinita, il servizio di spostamento dati usa l'API per la copia bulk per inserire i dati in modalità Append, che offre le prestazioni migliori.By default, the data movement service uses the Bulk Copy API to insert data in append mode, which provides the best performance.
    • Se si configura una stored procedure nel sink, il database applica i dati una riga alla volta anziché come caricamento bulkIf you configure a stored procedure in the sink, the database applies the data one row at a time instead of as a bulk load. e le prestazioni ne risentono notevolmente.Performance drops significantly. Se il set di dati è di grandi dimensioni, valutare l'opportunità di passare a usare la proprietà sqlWriterCleanupScript, se applicabile.If your data set is large, when applicable, consider switching to using the sqlWriterCleanupScript property.
    • Se si configura la proprietà sqlWriterCleanupScript per ogni esecuzione dell'attività di copia, il servizio attiva lo script e quindi usa l'API per la copia bulk per inserire i dati.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. Ad esempio, per sovrascrivere l'intera tabella con i dati più recenti, è possibile specificare uno script per eliminare tutti i record prima del caricamento bulk dei nuovi dati dall'origine.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.
  • Modello di dati e dimensioni batch:Data pattern and batch size:
    • Lo schema di tabella influisce sulla velocità effettiva di copia.Your table schema affects copy throughput. Per copiare la stessa quantità di dati, dimensioni di riga grandi offrono prestazioni migliori rispetto a dimensioni di riga piccole, perché il database può eseguire in modo più efficiente il commit di un numero inferiore di batch di dati.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'attività di copia inserisce i dati in una serie di batch.Copy Activity inserts data in a series of batches. Per impostare il numero di righe in un batch è possibile usare la proprietà writeBatchSize .You can set the number of rows in a batch by using the writeBatchSize property. Se le righe dei dati sono di piccole dimensioni, è possibile impostare la proprietà writeBatchSize con un valore più elevato per sfruttare l'overhead di un numero minore di batch e aumentare la velocità effettiva.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. Se le righe sono di grandi dimensioni, prestare attenzione quando si aumenta il valore di writeBatchSize.If the row size of your data is large, be careful when you increase writeBatchSize. Un valore elevato può causare un errore di copia dovuto a un sovraccarico del database.A high value might lead to a copy failure caused by overloading the database.
  • Per i database relazionali locali come SQL Server e Oracle, in cui è necessario usare Gateway di gestione dati, vedere la sezione Considerazioni su Gateway di gestione dati.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.

Archivi NoSQLNoSQL stores

Inclusi gli archivi tabelle e Azure Cosmos DB(Includes Table storage and Azure Cosmos DB )

  • Per gli archivi tabelle:For Table storage:
    • Partizione: scrivere i dati nelle partizioni con interleave riduce drasticamente le prestazioni.Partition: Writing data to interleaved partitions dramatically degrades performance. Ordinare i dati di origine per chiave di partizione in modo che i dati vengano inseriti in modo efficiente in una partizione dopo l'altra, oppure è possibile modificare la logica e scrivere i dati in una sola partizione.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.
  • Per Azure Cosmos DB:For Azure Cosmos DB:
    • Dimensioni batch: la proprietà writeBatchSize permette di impostare il numero di richieste parallele per la creazione di documenti del servizio Cosmos DB.Batch size: The writeBatchSize property sets the number of parallel requests to the Azure Cosmos DB service to create documents. Aumentando writeBatchSize è possibile prevedere prestazioni migliori, perché vengono inviate più richieste parallele ad Azure Cosmos DB.You can expect better performance when you increase writeBatchSize because more parallel requests are sent to Azure Cosmos DB. Tuttavia, quando si scrive in Azure Cosmos DB è opportuno tenere sotto controllo le limitazioni. Il messaggio di errore è: "La frequenza delle richieste è troppo elevata".However, watch for throttling when you write to Azure Cosmos DB (the error message is "Request rate is large"). Le limitazioni possono essere dovute a vari fattori, incluse le dimensioni dei documenti, il numero di termini nei documenti e i criteri di indicizzazione della raccolta di destinazione.Various factors can cause throttling, including document size, the number of terms in the documents, and the target collection's indexing policy. Per ottenere una maggiore velocità effettiva di copia, valutare la possibilità di usare una raccolta più avanzata, ad esempio S3.To achieve higher copy throughput, consider using a better collection, for example, S3.

Considerazioni sulla serializzazione e deserializzazioneConsiderations for serialization and deserialization

Serializzazione e deserializzazione possono verificarsi quando il set di dati di input o il set di dati di output è costituito da un file.Serialization and deserialization can occur when your input data set or output data set is a file. Per informazioni dettagliate sui formati di file supportati dall'attività di copia vedere File supportati e formati di compressione.See Supported file and compression formats with details on supported file formats by Copy Activity.

Comportamento di copia:Copy behavior:

  • Copia di file tra archivi dati basati su file:Copying files between file-based data stores:
    • Quando i set di dati di input e di output hanno le stesse impostazioni del formato di file o non hanno tali impostazioni, il servizio di spostamento dati esegue una copia binaria senza alcuna serializzazione o deserializzazione.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. La velocità effettiva è superiore rispetto allo scenario, in cui le impostazioni del formato di file di origine e del sink sono diverse tra loro.You see a higher throughput compared to the scenario, in which the source and sink file format settings are different from each other.
    • Quando i set di dati di input e di output sono entrambi in formato testo e solo il tipo di codifica è diverso, il servizio di spostamento esegue solo la conversione della codifica.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. Non esegue alcuna operazione di serializzazione o deserializzazione e questo dà luogo a un certo overhead delle prestazioni rispetto alla copia binaria.It doesn't do any serialization and deserialization, which causes some performance overhead compared to a binary copy.
    • Quando i set di dati di input e di output hanno entrambi formati di file diversi o configurazioni diverse, ad esempio i delimitatori, il servizio di spostamento dati deserializza i dati di origine per trasmetterli, trasformarli e quindi serializzarli nel formato di output indicato.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. Questa operazione comporta un overhead delle prestazioni decisamente maggiore rispetto ad altri scenari.This operation results in a much more significant performance overhead compared to other scenarios.
  • Quando si copiano file da e in un archivio dati che non è basato su file, ad esempio da un archivio basato su file in un archivio relazionale, il passaggio di serializzazione o deserializzazione è necessario.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. Questo passaggio comporta un notevole overhead delle prestazioni.This step results in significant performance overhead.

Formato di file: il formato di file scelto può influire sulle prestazioni di copia.File format: The file format you choose might affect copy performance. Ad esempio, Avro è un formato binario compresso che archivia i metadati con i dati.For example, Avro is a compact binary format that stores metadata with data. È ampiamente supportato nell'ecosistema di Hadoop per l'elaborazione e l'esecuzione di query.It has broad support in the Hadoop ecosystem for processing and querying. Avro è tuttavia più costoso a livello di serializzazione e deserializzazione e di conseguenza la velocità effettiva di copia risulta inferiore rispetto al formato testo.However, Avro is more expensive for serialization and deserialization, which results in lower copy throughput compared to text format. Scegliere il formato di file per tutto il flusso di elaborazione a livello globale.Make your choice of file format throughout the processing flow holistically. Considerare prima di tutto il formato in cui i dati vengono salvati nell'archivio dati di origine o devono essere estratti dai sistemi esterni, il formato migliore per l'archiviazione, l'elaborazione analitica e le query e il formato in cui i dati devono essere esportati nei data mart per gli strumenti di creazione di report e visualizzazione.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. A volte un formato di file non ottimale dal punto di vista delle prestazioni di lettura e scrittura può invece essere una buona scelta dal punto di vista del processo analitico generale.Sometimes a file format that is suboptimal for read and write performance might be a good choice when you consider the overall analytical process.

Considerazioni sulla compressioneConsiderations for compression

Quando il set di dati di input o di output è un file, è possibile impostare l'attività di copia per l'esecuzione della compressione o decompressione durante la scrittura dei dati nella destinazione.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. La scelta della compressione comporta un compromesso tra input/output (I/O) e CPU.When you choose compression, you make a tradeoff between input/output (I/O) and CPU. La compressione dei dati ha un costo maggiore in termini di risorse di calcolo,Compressing the data costs extra in compute resources. ma riduce l'I/O di rete e l'archiviazione.But in return, it reduces network I/O and storage. A seconda dei dati, si potrebbe riscontrare un aumento della velocità effettiva di copia complessiva.Depending on your data, you may see a boost in overall copy throughput.

Codec: l'attività di copia supporta i tipi di compressione gzip, bzip2 e Deflate.Codec: Copy Activity supports gzip, bzip2, and Deflate compression types. Azure HDInsight può utilizzare tutti e tre i tipi per l'elaborazione.Azure HDInsight can consume all three types for processing. Ogni codec di compressione presenta dei vantaggi.Each compression codec has advantages. Ad esempio, bzip2 ha la velocità effettiva copia più bassa, ma offre prestazioni di query Hive migliori perché permette di dividerle per l'elaborazione.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 è l'opzione più bilanciata e quella usata più di frequente.Gzip is the most balanced option, and it is used the most often. Scegliere il codec più adatto allo scenario end-to-end personalizzato.Choose the codec that best suits your end-to-end scenario.

Livello: per ogni codec di compressione è possibile scegliere tra due opzioni, la compressione più veloce e la compressione ottimale.Level: You can choose from two options for each compression codec: fastest compressed and optimally compressed. L'opzione di compressione più veloce comprime i dati il più rapidamente possibile, anche se il file risultante non viene compresso in modo ottimale.The fastest compressed option compresses the data as quickly as possible, even if the resulting file is not optimally compressed. L'opzione di compressione ottimale impiega più tempo per la compressione e restituisce una quantità minima di dati.The optimally compressed option spends more time on compression and yields a minimal amount of data. È possibile testare entrambe le opzioni per verificare quale offra le migliori prestazioni complessive in base alle proprie esigenze.You can test both options to see which provides better overall performance in your case.

Una considerazione: per copiare una grande quantità di dati tra un archivio locale e il cloud, è consigliabile usare un archivio BLOB provvisorio e la compressione.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'uso di un archivio provvisorio risulta utile quando la larghezza di banda della rete aziendale e i servizi di Azure pongono dei limiti e i set di dati di input e di output devono essere in formato non compresso.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. In particolare, è possibile dividere un'attività di copia singola in due attività di copia.More specifically, you can break a single copy activity into two copy activities. La prima copia dall'origine in un BLOB di staging o provvisorio in formato compresso.The first copy activity copies from the source to an interim or staging blob in compressed form. La seconda copia i dati compressi dal BLOB di staging e li decomprime durante la scrittura nel sink.The second copy activity copies the compressed data from staging, and then decompresses while it writes to the sink.

Considerazioni sul mapping di colonneConsiderations for column mapping

È possibile impostare la proprietà columnMappings nell'attività di copia perché venga eseguito il mapping di tutte o di un subset delle colonne di input alle colonne di output.You can set the columnMappings property in Copy Activity to map all or a subset of the input columns to the output columns. Dopo aver letto i dati dall'origine, il servizio di spostamento dati deve eseguire il mapping delle colonne sui dati prima di scriverli nel sink.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. Questa ulteriore elaborazione riduce la velocità effettiva di copia.This extra processing reduces copy throughput.

Se l'archivio dati di origine è disponibile per query, ad esempio nel caso di un archivio relazionale come il database SQL o SQL Server, oppure nel caso di un archivio NoSQL come un archivio tabelle o Azure Cosmos DB, è consigliabile eseguire il push della logica di filtro e riordinamento colonne per la proprietà query anziché usare il mapping colonne.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. In questo modo la proiezione si verifica quando il servizio di spostamento dati legge i dati dall'archivio dati di origine, in cui è molto più efficiente.This way, the projection occurs while the data movement service reads data from the source data store, where it is much more efficient.

Altre considerazioniOther considerations

Se i dati da copiare sono di grandi dimensioni, è possibile modificare la logica di business per partizionare ulteriormente i dati usando il meccanismo di sezionamento in 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. Quindi, pianificare esecuzioni più frequenti dell'attività di copia per ridurre le dimensioni dei dati per ogni singola esecuzione.Then, schedule Copy Activity to run more frequently to reduce the data size for each Copy Activity run.

Prestare attenzione al numero di set di dati e di attività di copia che richiedono la connessione di Data Factory allo stesso archivio dati nello stesso momento.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. Molti processi di copia simultanei possono limitare un archivio dati e causare un peggioramento delle prestazioni, nuovi tentativi interni dei processi di copia e, in alcuni casi, errori di esecuzione.Many concurrent copy jobs might throttle a data store and lead to degraded performance, copy job internal retries, and in some cases, execution failures.

Scenario di esempio: copiare da un'istanza locale di SQL Server in un archivio BLOBSample scenario: Copy from an on-premises SQL Server to Blob storage

Scenario: viene compilata una pipeline per copiare dati da un'istanza locale di SQL Server in un archivio BLOB in formato CSV.Scenario: A pipeline is built to copy data from an on-premises SQL Server to Blob storage in CSV format. Per velocizzare il processo di copia, i file CSV devono essere compressi in formato bzip2.To make the copy job faster, the CSV files should be compressed into bzip2 format.

Test e analisi: la velocità effettiva dell'attività di copia è inferiore a 2 Mbps ed è molto inferiore al benchmark delle prestazioni.Test and analysis: The throughput of Copy Activity is less than 2 MBps, which is much slower than the performance benchmark.

Analisi e ottimizzazione delle prestazioni: per risolvere il problema delle prestazioni, occorre vedere prima di tutto come vengono elaborati e spostati i dati.Performance analysis and tuning: To troubleshoot the performance issue, let’s look at how the data is processed and moved.

  1. Lettura dei dati: il gateway apre una connessione a SQL Server e invia la query.Read data: Gateway opens a connection to SQL Server and sends the query. SQL Server risponde inviando il flusso di dati al gateway tramite Intranet.SQL Server responds by sending the data stream to Gateway via the intranet.
  2. Serializzazione e compressione dei dati: il gateway serializza il flusso dei dati in formato CSV e comprime i dati in un flusso bzip2.Serialize and compress data: Gateway serializes the data stream to CSV format, and compresses the data to a bzip2 stream.
  3. Scrittura dei dati: il gateway carica il flusso bzip2 nell'archivio BLOB tramite Internet.Write data: Gateway uploads the bzip2 stream to Blob storage via the Internet.

Come si può notare, i dati vengono elaborati e spostati in base a un flusso sequenziale: SQL Server > LAN > Gateway > WAN > archivio BLOB.As you can see, the data is being processed and moved in a streaming sequential manner: SQL Server > LAN > Gateway > WAN > Blob storage. Le prestazioni complessive vengono controllate dalla velocità effettiva minima in tutta la pipeline.The overall performance is gated by the minimum throughput across the pipeline.

Flusso di dati

Uno o più dei fattori seguenti possono provocare un collo di bottiglia nelle prestazioni:One or more of the following factors might cause the performance bottleneck:

  • Origine: SQL Server ha di per sé una velocità effettiva bassa a causa dei carichi elevati.Source: SQL Server itself has low throughput because of heavy loads.
  • Gateway di gestione dati:Data Management Gateway:
    • LAN: il gateway è distante da SQL Server con una connessione a larghezza di banda bassa.LAN: Gateway is located far from the SQL Server machine and has a low-bandwidth connection.
    • Gateway: il gateway ha raggiunto i relativi limiti di carico per eseguire queste operazioni:Gateway: Gateway has reached its load limitations to perform the following operations:
      • Serializzazione: la serializzazione del flusso di dati in formato CSV ha una velocità effettiva bassa.Serialization: Serializing the data stream to CSV format has slow throughput.
      • Compressione: si è scelto un codec di compressione lenta, ad esempio bzip2 a 2,8 Mbps con core i7.Compression: You chose a slow compression codec (for example, bzip2, which is 2.8 MBps with Core i7).
    • WAN: la larghezza di banda tra la rete aziendale e i servizi di Azure è bassa, ad esempio T1 = 1.544 Kbps e T2 = 6.312 Kbps.WAN: The bandwidth between the corporate network and your Azure services is low (for example, T1 = 1,544 kbps; T2 = 6,312 kbps).
  • Sink: l'archivio BLOB ha una velocità effettiva bassa.Sink: Blob storage has low throughput. Questo scenario è poco probabile perché il relativo contratto di servizio garantisce un minimo di 60 Mbps.(This scenario is unlikely because its SLA guarantees a minimum of 60 MBps.)

In tal caso, la compressione dati bzip2 potrebbe rallentare l'intera pipeline.In this case, bzip2 data compression might be slowing down the entire pipeline. Il passaggio al codec di compressione gzip può ridurre questo collo di bottiglia.Switching to a gzip compression codec might ease this bottleneck.

Scenari di esempio: usare la copia parallelaSample scenarios: Use parallel copy

Scenario I : copiare 1.000 file da 1 MB dal file system locale nell'archivio BLOB.Scenario I: Copy 1,000 1-MB files from the on-premises file system to Blob storage.

Analisi e ottimizzazione delle prestazioni: si supponga di aver installato il gateway in un computer quad-core. Data Factory usa 16 copie parallele per spostare simultaneamente i file dal file system all'archivio 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. L'esecuzione parallela deve garantire una velocità effettiva elevata.This parallel execution should result in high throughput. È anche possibile specificare in modo esplicito il numero di copie parallele.You also can explicitly specify the parallel copies count. Quando si copiano molti file di piccole dimensioni, le copie parallele migliorano notevolmente la velocità effettiva garantendo un uso più efficiente delle risorse.When you copy many small files, parallel copies dramatically help throughput by using resources more effectively.

Scenario 1

Scenario II: copiare 20 BLOB da 500 MB dall'archivio BLOB in Data Lake Store Analytics e ottimizzare le prestazioni.Scenario II: Copy 20 blobs of 500 MB each from Blob storage to Data Lake Store Analytics, and then tune performance.

Analisi e ottimizzazione delle prestazioni: in questo scenario Data Factory copia i dati dall'archivio BLOB in Data Lake Store tramite copia singola, con parallelCopies impostato su 1, e unità di spostamento dati cloud singole.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. La velocità effettiva osservata si avvicinerà ai valori indicati nella sezione Informazioni di riferimento sulle prestazioniprecedente.The throughput you observe will be close to that described in the performance reference section.

Scenario 2

Scenario III: i singoli file hanno grandi dimensioni e il volume totale molto elevato.Scenario III: Individual file size is greater than dozens of MBs and total volume is large.

Analisi e ottimizzazione delle prestazioni: l'aumento di parallelCopies non permette di migliorare le prestazioni di copia a causa dei limiti previsti per le risorse di una unità di spostamento dati cloud singola.Analysis and performance turning: Increasing parallelCopies doesn't result in better copy performance because of the resource limitations of a single-cloud DMU. È invece necessario specificare altre unità di spostamento dati cloud per ottenere più risorse ed eseguire lo spostamento dati.Instead, you should specify more cloud DMUs to get more resources to perform the data movement. Non specificare un valore per la proprietà parallelCopies .Do not specify a value for the parallelCopies property. Il parallelismo è gestito da Data Factory.Data Factory handles the parallelism for you. Se, in questo caso, si imposta cloudDataMovementUnits su 4, è possibile ottenere una velocità effettiva di circa quattro volte superiore.In this case, if you set cloudDataMovementUnits to 4, a throughput of about four times occurs.

Scenario 3

RiferimentiReference

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: