attività Copy in Azure Data Factory e Azure Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Nelle pipeline di Azure Data Factory e Synapse è possibile usare il attività Copy per copiare i dati tra gli archivi dati che si trovano in locale e nel cloud. Dopo aver copiato i dati, è possibile usare altre attività per trasformarli e analizzarli ulteriormente. È anche possibile usare il attività Copy per pubblicare i risultati della trasformazione e dell'analisi per business intelligence (BI) e l'utilizzo delle applicazioni.

The role of the Copy activity

Il attività Copy viene eseguito in un runtime di integrazione. È possibile usare diversi tipi di runtime di integrazione per diversi scenari di copia dei dati:

  • Quando si copiano dati tra due archivi dati accessibili pubblicamente tramite Internet da qualsiasi INDIRIZZO IP, è possibile usare il runtime di integrazione di Azure per l'attività di copia. Questo runtime di integrazione è sicuro, affidabile, scalabile e disponibile a livello globale.
  • Quando si copiano dati da e verso archivi dati che si trovano in locale o in una rete con il controllo di accesso (ad esempio, una rete virtuale di Azure), è necessario configurare un runtime di integrazione self-hosted.

Un runtime di integrazione deve essere associato a ogni archivio dati di origine e sink. Per informazioni su come il attività Copy determina quale runtime di integrazione usare, vedere Determinazione del runtime di integrazione da usare.

Per copiare dati da un'origine a un sink, il servizio che esegue il attività Copy esegue questi passaggi:

  1. Legge i dati dall'archivio dati di origine.
  2. Esegue la serializzazione/deserializzazione, la compressione/decompressione, il mapping delle colonne e così via. Esegue queste operazioni in base alla configurazione del set di dati di input, del set di dati di output e attività Copy.
  3. Scrive i dati nell'archivio dati sink/di destinazione.

Copy activity overview

Nota

Se un runtime di integrazione self-hosted viene usato in un archivio dati di origine o sink all'interno di un attività Copy, sia l'origine che il sink devono essere accessibili dal server che ospita il runtime di integrazione affinché l'attività Copy funzioni correttamente.

Archivi dati e formati supportati

Category Archivio dati Supportato come origine Supportato come sink Supportato dal runtime di integrazione di Azure Supportato dal runtime di integrazione self-hosted
Azure Archivio BLOB di Azure
  Indice di Ricerca intelligenza artificiale di Azure
  Azure Cosmos DB for NoSQL
  Azure Cosmos DB for MongoDB
  Esplora dati di Azure
  Azure Data Lake Storage Gen1
  Azure Data Lake Storage Gen2
  Database di Azure per MariaDB
  Database di Azure per MySQL
  Database di Azure per PostgreSQL
  Delta Lake di Azure Databricks
  File di Azure
  Database SQL di Azure
  Istanza gestita di database SQL di Azure
  Azure Synapse Analytics
  Archivio tabelle di Azure
Database Amazon RDS per Oracle
  Amazon RDS per SQL Server
  Amazon Redshift
  DB2
  Drill.
  Google BigQuery
  Greenplum
  HBase
  Hive
  Apache Impala
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse via Open Hub
  SAP Business Warehouse via MDX
  SAP HANA Sink supportato solo con odbc Connessione or e il driver ODBC DI SAP HANA
  Tabella SAP
  Snowflake
  Spark
  SQL Server
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (anteprima)
  MongoDB
  MongoDB Atlas
file Amazon S3
  Archiviazione compatibili con Amazon S3
  File system
  FTP
  Google Cloud Storage
  HDFS
  Oracle Cloud Archiviazione
  SFTP
Protocollo generico HTTP generico
  OData generico
  ODBC generico
  REST generico
Servizi e app Amazon Marketplace Web Service
  Concur (anteprima)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  Google AdWords
  HubSpot
  Jira
  Magento (anteprima)
  Marketo (anteprima)
  Microsoft 365
  Oracle Eloqua (anteprima)
  Oracle Responsys (anteprima)
  Oracle Service Cloud (anteprima)
  PayPal (anteprima)
  QuickBooks (anteprima)
  Salesforce
  Cloud del servizio Salesforce
  Salesforce Marketing Cloud
  SAP Cloud for Customer (C4C)
  SAP ECC
  ServiceNow
Elenco di SharePoint Online
  Shopify (anteprima)
  Square (anteprima)
  Tabella Web (tabella HTML)
  Xero
  Zoho (anteprima)

Nota

Se un connettore è contrassegnato come anteprima, è possibile provarlo e inviare feedback. Se si vuole accettare una dipendenza dai connettori in versione di anteprima nella propria soluzione, contattare il supporto tecnico di Azure.

Formati di file supportati

Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.

È possibile usare il attività Copy per copiare i file così come sono tra due archivi dati basati su file, nel qual caso i dati vengono copiati in modo efficiente senza serializzazione o deserializzazione. Inoltre, è anche possibile analizzare o generare file di un determinato formato, ad esempio, è possibile eseguire le operazioni seguenti:

  • Copiare dati da un database di SQL Server e scrivere in Azure Data Lake Archiviazione Gen2 in formato Parquet.
  • Copiare i file in formato testo (CSV) da un file system locale e scrivere nell'archivio BLOB di Azure in formato Avro.
  • Copiare file compressi da un file system locale, decomprimerli in tempo reale e scrivere file estratti in Azure Data Lake Archiviazione Gen2.
  • Copiare i dati in formato csv (Compressed-Text) in Gzip dall'archivio BLOB di Azure e scriverli in database SQL di Azure.
  • Molte altre attività che richiedono serializzazione/deserializzazione o compressione/decompressione.

Aree geografiche supportate

Il servizio che abilita il attività Copy è disponibile a livello globale nelle aree e nelle aree geografiche elencate nelle località del runtime di integrazione di Azure. La topologia disponibile a livello globale garantisce uno spostamento di dati efficiente e di solito consente di evitare passaggi tra diverse aree. Vedere Prodotti per area per verificare la disponibilità di Data Factory, aree di lavoro synapse e spostamento dei dati in un'area specifica.

Impostazione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

In generale, per usare la attività Copy nelle pipeline di Azure Data Factory o Synapse, è necessario:

  1. Creare servizi collegati per l'archivio dati di origine e l'archivio dati sink. L'elenco dei connettori supportati è disponibile nella sezione Archivi dati e formati supportati di questo articolo. Per informazioni di configurazione e proprietà supportate, vedere la sezione "Proprietà del servizio collegato" dell'articolo del connettore.
  2. Creare set di dati per l'origine e il sink. Per informazioni sulla configurazione e le proprietà supportate, vedere le sezioni "Proprietà del set di dati" degli articoli sul connettore di origine e sink.
  3. Creare una pipeline con il attività Copy. Nella sezione seguente viene illustrato un esempio.

Sintassi

Il modello seguente di un attività Copy contiene un elenco completo delle proprietà supportate. Specificare quelle più adatte per il proprio scenario.

"activities":[
    {
        "name": "CopyActivityTemplate",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<source dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<sink dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>",
                <properties>
            },
            "sink": {
                "type": "<sink type>"
                <properties>
            },
            "translator":
            {
                "type": "TabularTranslator",
                "columnMappings": "<column mapping>"
            },
            "dataIntegrationUnits": <number>,
            "parallelCopies": <number>,
            "enableStaging": true/false,
            "stagingSettings": {
                <properties>
            },
            "enableSkipIncompatibleRow": true/false,
            "redirectIncompatibleRowSettings": {
                <properties>
            }
        }
    }
]

Dettagli sintassi

Proprietà Descrizione Obbligatorio?
type Per un attività Copy, impostare suCopy
input Specificare il set di dati creato che punta ai dati di origine. Il attività Copy supporta solo un singolo input.
outputs Specificare il set di dati creato che punta ai dati sink. Il attività Copy supporta solo un singolo output.
typeProperties Specificare le proprietà per configurare il attività Copy.
source Specificare il tipo di origine di copia e le proprietà corrispondenti per il recupero dei dati.
Per altre informazioni, vedere la sezione "attività Copy proprietà" nell'articolo connettore elencato in Archivi dati e formati supportati.
sink Specificare il tipo di sink di copia e le proprietà corrispondenti per la scrittura dei dati.
Per altre informazioni, vedere la sezione "attività Copy proprietà" nell'articolo connettore elencato in Archivi dati e formati supportati.
translator Specificare il mapping esplicito di colonne da origine a sink. Questa proprietà si applica quando il comportamento di copia predefinito non soddisfa le proprie esigenze.
Per altre informazioni, vedere Mapping dello schema nell'attività di copia.
No
dataIntegrationUnits Specificare una misura che rappresenta la quantità di potenza usata dal runtime di integrazione di Azure per la copia dei dati. Queste unità erano precedentemente note come DMU (Cloud Data Movement Units).
Per altre informazioni, vedere unità di Integrazione dei dati.
No
parallelCopies Specificare il parallelismo che si desidera utilizzare il attività Copy durante la lettura dei dati dall'origine e la scrittura di dati nel sink.
Per altre informazioni, vedere Copia parallela.
No
preserve Specificare se mantenere metadati/ACL durante la copia dei dati.
Per altre informazioni, vedere Conservare i metadati.
No
enableStaging
stagingSettings
Specificare se eseguire il staging dei dati provvisori nell'archivio BLOB invece di copiare direttamente i dati dall'origine al sink.
Per informazioni su scenari utili e dettagli di configurazione, vedere Copia di staging.
No
enableSkipIncompatibleRow
redirectIncompatibleRowSettings
Scegliere come gestire le righe incompatibili quando si copiano dati dall'origine al sink.
Per altre informazioni, vedere Tolleranza di errore.
No

Monitoraggio

È possibile monitorare le attività Copy eseguite nelle pipeline di Azure Data Factory e Synapse sia visivamente che a livello di codice. Per informazioni dettagliate, vedere Monitorare l'attività di copia.

Copia incrementale

Le pipeline di Data Factory e Synapse consentono di copiare in modo incrementale i dati differenziali da un archivio dati di origine a un archivio dati sink. Per informazioni dettagliate, vedere Esercitazione: Copiare i dati in modo incrementale.

Prestazioni e ottimizzazione

L'esperienza di monitoraggio dell'attività di copia mostra le statistiche sulle prestazioni di copia per ogni esecuzione dell'attività. La guida attività Copy prestazioni e scalabilità descrive i fattori chiave che influiscono sulle prestazioni dello spostamento dei dati tramite il attività Copy. Vengono inoltre elencati i valori delle prestazioni osservati durante i test e viene illustrato come ottimizzare le prestazioni del attività Copy.

Riprendere dall'ultima esecuzione non riuscita

attività Copy supporta la ripresa dall'ultima esecuzione non riuscita quando si copiano grandi dimensioni di file così com'è con formato binario tra archivi basati su file e si sceglie di mantenere la gerarchia di cartelle/file dall'origine al sink, ad esempio per eseguire la migrazione dei dati da Amazon S3 ad Azure Data Lake Archiviazione Gen2. Si applica ai connettori basati su file seguenti: Amazon S3, Amazon S3 Compatible Archiviazione Azure Blob, Azure Data Lake Archiviazione Gen1, Azure Data Lake Archiviazione Gen2, File di Azure, File System, FTP, Google Cloud Archiviazione, HDFS, Oracle Cloud Archiviazione e SFTP.

È possibile sfruttare la ripresa dell'attività di copia nei due modi seguenti:

  • Tentativo a livello di attività: è possibile impostare il numero di tentativi per l'attività di copia. Durante l'esecuzione della pipeline, se l'esecuzione dell'attività di copia ha esito negativo, il successivo tentativo automatico inizierà dal punto di errore dell'ultima versione di valutazione.

  • Rieseguire dall'attività non riuscita: dopo il completamento dell'esecuzione della pipeline, è anche possibile attivare una riesecuzione dall'attività non riuscita nella visualizzazione di monitoraggio dell'interfaccia utente di Azure Data Factory o a livello di codice. Se l'attività non riuscita è un'attività di copia, la pipeline non verrà eseguita solo da questa attività, ma riprenderà anche dal punto di errore dell'esecuzione precedente.

    Copy resume

Alcuni punti da notare:

  • La ripresa avviene a livello di file. Se l'attività di copia non riesce durante la copia di un file, nell'esecuzione successiva questo file specifico verrà copiato nuovamente.
  • Per il corretto funzionamento del curriculum, non modificare le impostazioni dell'attività di copia tra le riesecuzioni.
  • Quando si copiano dati da Amazon S3, BLOB di Azure, Azure Data Lake Archiviazione Gen2 e Google Cloud Archiviazione, l'attività di copia può riprendere da un numero arbitrario di file copiati. Mentre per il resto dei connettori basati su file come origine, attualmente l'attività di copia supporta la ripresa da un numero limitato di file, in genere nell'intervallo di decine di migliaia e varia a seconda della lunghezza dei percorsi dei file; i file oltre questo numero verranno copiati nuovamente durante le riesecuzioni.

Per altri scenari rispetto alla copia di file binari, l'esecuzione dell'attività di copia inizia dall'inizio.

Conservare i metadati insieme ai dati

Durante la copia dei dati dall'origine al sink, in scenari come la migrazione di Data Lake, è anche possibile scegliere di mantenere i metadati e gli ACL insieme ai dati usando l'attività di copia. Per informazioni dettagliate, vedere Conservare i metadati .

Aggiungere tag di metadati al sink basato su file

Quando il sink è basato su Archiviazione di Azure (Azure Data Lake Storage o Archiviazione BLOB di Azure), è possibile scegliere di aggiungere alcuni metadati ai file. Questi metadati verranno visualizzati come parte delle proprietà del file come coppie chiave-valore. Per tutti i tipi di sink basati su file, è possibile aggiungere metadati che coinvolgono contenuto dinamico usando i parametri della pipeline, le variabili di sistema, le funzioni e le variabili. Oltre a questo, per il sink basato su file binario, è possibile aggiungere datetime ultima modifica (del file di origine) usando la parola chiave $$LASTMODIFIED, nonché i valori personalizzati come metadati del file sink.

Mapping dello schema e dei tipi di dati

Vedere Mapping dello schema e del tipo di dati per informazioni su come il attività Copy esegue il mapping dei dati di origine al sink.

Aggiungere altre colonne durante la copia

Oltre a copiare dati dall'archivio dati di origine al sink, è anche possibile configurare per aggiungere altre colonne di dati da copiare nel sink. Ad esempio:

  • Quando si copia da un'origine basata su file, archiviare il percorso del file relativo come colonna aggiuntiva da cui tracciare i dati da cui provengono i dati.
  • Duplicare la colonna di origine specificata come un'altra colonna.
  • Aggiungere una colonna con un'espressione ADF per collegare variabili di sistema di Azure Data Factory, ad esempio il nome della pipeline o l'ID della pipeline o archiviare un altro valore dinamico dall'output dell'attività upstream.
  • Aggiungere una colonna con valore statico per soddisfare le esigenze di consumo downstream.

È possibile trovare la configurazione seguente nella scheda origine dell'attività di copia. È anche possibile eseguire il mapping di tali colonne aggiuntive nel mapping dello schema dell'attività di copia come di consueto usando i nomi di colonna definiti.

Add additional columns in copy activity

Suggerimento

Questa funzionalità funziona con il modello di set di dati più recente. Se questa opzione non viene visualizzata dall'interfaccia utente, provare a creare un nuovo set di dati.

Per configurarla a livello di codice, aggiungere la proprietà nell'origine dell'attività additionalColumns di copia:

Proprietà Descrizione Richiesto
additionalColumns Aggiungere altre colonne di dati da copiare nel sink.

Ogni oggetto sotto la additionalColumns matrice rappresenta una colonna aggiuntiva. name Definisce il nome della colonna e value indica il valore dei dati di tale colonna.

I valori dei dati consentiti sono:
- $$FILEPATH - Una variabile riservata indica di archiviare il percorso relativo dei file di origine al percorso della cartella specificato nel set di dati. Applicare all'origine basata su file.
- $$COLUMN:<source_column_name> - Un modello di variabile riservata indica di duplicare la colonna di origine specificata come un'altra colonna
- Expression
- Valore statico
No

Esempio:

"activities":[
    {
        "name": "CopyWithAdditionalColumns",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "<source type>",
                "additionalColumns": [
                    {
                        "name": "filePath",
                        "value": "$$FILEPATH"
                    },
                    {
                        "name": "newColName",
                        "value": "$$COLUMN:SourceColumnA"
                    },
                    {
                        "name": "pipelineName",
                        "value": {
                            "value": "@pipeline().Pipeline",
                            "type": "Expression"
                        }
                    },
                    {
                        "name": "staticValue",
                        "value": "sampleValue"
                    }
                ],
                ...
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Suggerimento

Dopo aver configurato colonne aggiuntive, ricordarsi di eseguirne il mapping al sink di destinazione, nella scheda Mapping.

Creare automaticamente tabelle sink

Quando si copiano dati nel database SQL/Azure Synapse Analytics, se la tabella di destinazione non esiste, l'attività di copia supporta la creazione automatica in base ai dati di origine. Si propone di aiutare a iniziare rapidamente a caricare i dati e valutare il database SQL/Azure Synapse Analytics. Dopo l'inserimento dei dati, è possibile esaminare e modificare lo schema della tabella sink in base alle esigenze.

Questa funzionalità è supportata quando si copiano dati da qualsiasi origine negli archivi dati sink seguenti. È possibile trovare l'opzione nell'interfaccia utente di creazione di Azure Data Factory ->attività Copy sink ->Table -Tabella -> Creazione automatica tabella o tramite tableOption la proprietà nel payload del sink dell'attività di copia.

Create sink tables

Tolleranza di errore

Per impostazione predefinita, il attività Copy interrompe la copia dei dati e restituisce un errore quando le righe di dati di origine non sono compatibili con le righe di dati sink. Per fare in modo che la copia abbia esito positivo, è possibile configurare il attività Copy per ignorare e registrare le righe incompatibili e copiare solo i dati compatibili. Per informazioni dettagliate, vedere attività Copy tolleranza di errore.

Verifica della coerenza dei dati

Quando si spostano dati dall'archivio di origine all'archivio di destinazione, l'attività di copia offre un'opzione che consente di eseguire una verifica aggiuntiva della coerenza dei dati per assicurarsi che i dati non vengano copiati solo dall'origine all'archivio di destinazione, ma anche verificato che siano coerenti tra l'archivio di origine e quello di destinazione. Dopo aver trovato file incoerenti durante lo spostamento dei dati, è possibile interrompere l'attività di copia o continuare a copiare il resto abilitando l'impostazione di tolleranza di errore per ignorare i file incoerenti. È possibile ottenere i nomi di file ignorati abilitando l'impostazione del log di sessione nell'attività di copia. Per informazioni dettagliate, vedere Verifica della coerenza dei dati nell'attività di copia.

Log sessione

È possibile registrare i nomi di file copiati, che consentono di assicurarsi che i dati non vengano copiati solo dall'archivio di origine a quello di destinazione, ma anche coerenti tra l'archivio di origine e quello di destinazione esaminando i log delle sessioni di attività di copia. Per informazioni dettagliate, vedere Attività di copia di accesso alla sessione.

Vedere le guide rapide, le esercitazioni e gli esempi seguenti: