Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il "Copy Job" è la soluzione ideale in Microsoft Fabric Data Factory per semplificare lo spostamento dei dati da molte origini a molte destinazioni, senza necessità di pipeline. Con il supporto nativo per più stili di recapito, tra cui la copia bulk, la copia incrementale e la replica di Change Data Capture (CDC), il processo di copia offre la flessibilità di gestire un'ampia gamma di scenari di spostamento dei dati, grazie a un'esperienza intuitiva e facile da usare. Che tu sia nuovo nell'integrazione dei dati o stia semplicemente cercando un modo più rapido per portare i tuoi dati dove è necessario, la funzione di copia offre una soluzione flessibile e intuitiva.
Advantages
Alcuni vantaggi del processo di copia rispetto ad altri metodi di spostamento dei dati includono:
- Facile da usare: configurare e monitorare la copia dei dati con un'esperienza guidata semplice, senza bisogno di competenze tecniche.
- Efficiente: copiare solo dati nuovi o modificati dall'ultima esecuzione per risparmiare tempo e risorse, con passaggi manuali minimi.
- Flessibile: scegliere quali dati spostare, mappare le colonne, impostare la modalità di scrittura dei dati e pianificare l'esecuzione dei processi una sola volta o regolarmente.
- Prestazioni elevate: spostare grandi quantità di dati in modo rapido e affidabile grazie a un sistema serverless e scalabile.
È anche possibile visitare la strategia di spostamento dei dati per vedere in che modo il processo di copia viene confrontato con il mirroring e l'attività di copia nelle pipeline.
Concetti
Modalità di copia (copia completa, copia incrementale)
È possibile scegliere come copiare i dati dall'origine alla destinazione:
- Copia completa: ogni volta che il processo viene eseguito, copia tutti i dati dall'origine alla destinazione.
- Copia incrementale: la prima esecuzione copia tutto e le esecuzioni successive spostano solo i dati nuovi o modificati dopo l'ultima esecuzione.
Copia incrementale (CDC, Watermark)
Nella copia incrementale, ogni esecuzione dopo la copia completa iniziale (denominata "caricamento successivo") trasferisce solo determinate modifiche. Il processo di copia automatica tiene traccia e gestisce lo stato dell'ultima esecuzione riuscita, così sa quali dati copiare in seguito.
- Quando l'attività di copia copia da un database usando una colonna incrementale, come una "colonna filigrana", ogni caricamento successivo copia solo le righe con un valore in tale colonna che è maggiore rispetto a qualsiasi valore delle righe copiate in precedenza.
- Quando copia le copie del processo da un database con CDC abilitato, ogni caricamento successivo copia tutte le righe inserite, aggiornate o eliminate dopo l'ultima esecuzione riuscita.
- Quando Copia processo copia i file, ogni caricamento successivo copia solo i file creati o modificati dopo l'ultima esecuzione riuscita.
Il processo di copia supporta i tipi di colonna filigrana seguenti per la copia incrementale da un database:
- ROWVERSION: colonna binaria che cambia automaticamente ogni volta che viene modificata una riga. È ideale per i sistemi basati su SQL con carichi di lavoro transazionali a velocità effettiva elevata, perché ogni inserimento o aggiornamento viene acquisito in modo affidabile senza dipendere dai timestamp gestiti dall'applicazione.
-
Datetime: colonne datetime, come
LastUpdatedDatetimeoModifiedAt, che archiviano sia la data che l'ora. Il processo di copia usa il timestamp preciso per tenere traccia dell'avanzamento incrementale tra le esecuzioni. Datetime è preferibile quando l'origine tiene traccia delle modifiche con precisione ad alta frequenza. -
Data: colonne di sola data, ad
LastUpdatedDateesempio . Poiché i valori di data non includono un componente ora, il processo di copia applica automaticamente l'estrazione ritardata dall'ultimo giorno per garantire che non si verifichino perdite di dati o sovrapposizioni tra le esecuzioni, gestendo in modo sicuro le finestre incrementali. La data è adatta per i processi batch giornalieri. - Stringa (interpretata come datetime): Le colonne stringa i cui valori possono essere interpretati come datetime. In questo modo è possibile usare la copia incrementale anche quando i timestamp vengono archiviati come stringhe, senza dover eseguire il cast o la trasformazione di colonne o apportare modifiche allo schema nell'origine.
- Integer: numero crescente che tiene traccia delle modifiche delle righe.
Se il database dispone di CDC abilitato, non è necessario scegliere una colonna incrementale. Il processo di copia rileva automaticamente le modifiche.
Se un processo di copia non riesce, non è necessario preoccuparsi della perdita di dati. Il processo di copia riprende sempre dalla fine dell'ultima copia eseguita con successo. Un errore non modifica lo stato gestito dal processo di copia.
Per altri dettagli, vedere Change Data Capture (CDC) nel Processo di copia.
Reimposta la copia incrementale
È possibile gestire la copia incrementale, inclusa la possibilità di ripristinarla in una copia completa all'esecuzione successiva. Ciò è estremamente utile quando si verifica una discrepanza dei dati tra l'origine e la destinazione. È sufficiente consentire a Copy Job di eseguire una copia completa nell'esecuzione successiva per risolvere il problema, quindi continuare con gli aggiornamenti incrementali in un secondo momento.
È possibile reimpostare la copia incrementale per intero processo o per tabella, offrendo un controllo granulare. Ad esempio, è possibile copiare nuovamente tabelle più piccole senza influire su quelle più grandi. Ciò significa una risoluzione dei problemi più intelligente, meno interruzioni e uno spostamento dei dati più efficiente.
In alcuni casi, quando si modifica un processo di copia, ad esempio l'aggiornamento della colonna incrementale nella tabella di origine, il processo di copia reimposta la copia incrementale in una copia completa nell'esecuzione successiva. Ciò garantisce la coerenza dei dati tra l'origine e la destinazione.
Metodi di aggiornamento (Append, Sovrascrivere, Unire, SCD Tipo 2)
È anche possibile decidere come vengono scritti i dati nella destinazione:
Per impostazione predefinita, il processo di copia aggiunge nuovi dati, in modo da mantenere una cronologia completa. Se si preferisce, è possibile scegliere di unire (aggiornare le righe esistenti usando una colonna chiave), sovrascrivere (sostituire i dati esistenti) o SCD Type 2 (mantenere la cronologia delle modifiche con datazione effettiva). Se si seleziona merge o SCD Type 2, il processo di copia usa la chiave primaria per impostazione predefinita, se presente.
- Durante la copia in un database: le nuove righe vengono aggiunte alle tabelle. Per i database supportati, è anche possibile scegliere di unire, sovrascrivere o usare scD Type 2 per i dati esistenti.For supported databases, you can also choose to merge, overwrite, or use SCD Type 2 for existing data.
- Durante la copia nella risorsa di archiviazione: i nuovi dati vengono salvati come nuovi file. Se esiste già un file con lo stesso nome, viene sostituito.
Quando si esegue una copia incrementale dall'origine e la fusione con la destinazione, le righe dell'origine vengono inserite o aggiornate nella destinazione. Quando si esegue la replica CDC dall'origine e si effettua il merge nella destinazione, le righe dell'origine vengono inserite, aggiornate o eliminate nella destinazione. Quando si usa SCD Type 2 con replica CDC, le modifiche vengono mantenute come righe versionate con data effettiva ed eliminazioni vengono gestite come eliminazioni logiche.
Consultare ulteriori dettagli per il tipo 2 di SCD nel task di copia CDC.
Creazione e troncamento automatico delle tabelle nella destinazione
Il processo di copia può creare automaticamente tabelle nella destinazione, se non esistono già. Se le tabelle di destinazione sono già disponibili, è sufficiente selezionarle come destinazione. Con le opzioni di mapping delle colonne flessibili, è possibile definire facilmente come eseguire il mapping degli schemi dalle tabelle di origine alle tabelle di destinazione.
È anche possibile troncare i dati di destinazione prima del caricamento completo, assicurando che l'origine e la destinazione siano completamente sincronizzati senza duplicati.
Per impostazione predefinita, il processo di copia non elimina i dati nella destinazione. Quando si abilita questa opzione:
- La prima esecuzione della copia incrementale tronca tutti i dati nella destinazione prima di caricare il set di dati completo.
- Le copie incrementali successive continueranno ad accodare o unire i dati senza influire sui record esistenti.
- Se i clienti reimpostano successivamente la copia incrementale in copia completa, l'abilitazione di questa opzione cancella nuovamente la destinazione prima del caricamento.
Questo approccio garantisce che la destinazione rimanga pulita, completamente sincronizzata e priva di duplicati, fornendo una base affidabile per la soluzione di inserimento dei dati.
| Connettore | Creazione automatica della tabella | Tronca la destinazione prima del caricamento completo |
|---|---|---|
| DB di Azure SQL |
|
|
| Azure SQL Managed Instance (Istanza Gestita di SQL di Azure) |
|
|
| Azure Synapse SQL Pool |
|
|
| Tavolo Fabric Lakehouse |
|
|
| Magazzino tessuti |
|
|
| SQL Server locali |
|
|
| Oracle |
|
|
| Fiocco di neve |
|
|
| Database SQL in Fabric (anteprima) |
|
|
Colonne di verifica
Le colonne di controllo sono colonne di metadati aggiuntive che un Copy job può aggiungere automaticamente a ogni riga che scrive nella destinazione. Quando si abilitano le colonne di controllo, ogni riga nella tabella di destinazione può essere arricchita con informazioni come:
- Tempo di estrazione dei dati
- Percorso del file di origine
- ID spazio di lavoro, Copia ID processo, ID esecuzione processo di copia e Nome processo di copia
- Limite inferiore della finestra incrementale e limite superiore
- Valori personalizzati definiti dall'utente
Con le colonne di controllo puoi ottenere la tracciabilità dei dati a livello di riga senza codice personalizzato, consentendo la creazione di report sulla conformità, il debug della qualità dei dati e il monitoraggio della freschezza dell'ingestione.
Per altri dettagli, vedere Colonne di controllo nel processo di copia.
Prestazioni
Il processo di copia ottimizza automaticamente le prestazioni di copia in base al volume di dati, in modo da ottenere uno spostamento rapido dei dati senza ottimizzazione manuale. Indipendentemente dal fatto che si stia copiando una tabella di ricerca di piccole dimensioni o un log delle transazioni di grandi dimensioni, il processo di copia applica automaticamente la strategia corretta per ogni tabella.
Quando si copiano dati da tabelle di grandi dimensioni, è anche possibile abilitare il partizionamento automatico (anteprima). Con il partizionamento automatico, la funzione di copia analizza lo schema di origine e le caratteristiche dei dati per determinare la strategia di partizionamento ottimale. Seleziona automaticamente la colonna di partizione corretta, calcola i limiti bilanciati ed esegue letture parallele, senza alcun input dell'utente. Ciò può aumentare notevolmente la velocità effettiva per set di dati di grandi dimensioni. È possibile attivare l'interruttore di partizionamento automatico in Impostazioni avanzate nel processo di copia.
Il partizionamento automatico è supportato per la copia incrementale basata su filigrana, inclusa la copia completa iniziale e la copia incrementale, nei connettori seguenti: Amazon RDS per SQL Server, database SQL di Azure, Azure Synapse Analytics (pool SQL), Fabric Data Warehouse, database SQL in Fabric, SQL Server e Istanza gestita di SQL di Azure.
Opzioni di esecuzione (Run, Schedule, Event Trigger)
Si ha la massima flessibilità per decidere quando viene eseguito un processo di copia, che può essere eseguito una sola volta o in base a una pianificazione. Anche se un processo è pianificato, è comunque possibile selezionare Esegui in qualsiasi momento per attivarlo manualmente. Nella copia incrementale, il processo attivato manualmente trasferisce comunque solo le modifiche dall'ultima esecuzione.
Con il supporto di più pianificazioni nel processo di copia, si ottiene un controllo ancora maggiore. Un singolo processo di copia può avere più pianificazioni, ad esempio uno giornaliero alle 6:00 e un'altra settimanale la domenica. Tutte le pianificazioni possono essere gestite direttamente all'interno dello stesso processo di copia, rendendo l'orchestrazione più semplice, pulita e più efficiente.
Se si utilizza l'attività di copia in una pipeline, è anche possibile sfruttare le funzionalità di orchestrazione e trigger della pipeline. Ad esempio, è possibile usare trigger di eventi per avviare un'attività di processo di copia quando si verificano eventi specifici, ad esempio nuovi file in arrivo in un data lake o modifiche in un database.
Per altre informazioni sull'attività del processo di copia, vedere altri dettagli.
Opzioni di hosting (rete virtuale, locale, cloud)
È possibile usare l'attività di copia per spostare i dati da qualsiasi origine a qualsiasi destinazione, indipendentemente dal fatto che i dati si trovino in locale, nel cloud o all'interno di una rete virtuale. Nella pagina connessione del processo di copia è possibile scegliere tra più opzioni host, tra cui un gateway locale o un gateway di rete virtuale, per accedere in modo sicuro ai dati dietro un firewall o all'interno di una rete virtuale.
Per altri dettagli, vedere Proteggere lo spostamento dei dati con il processo di copia e il Gateway di rete virtuale per i dati.
Operazionalizzazione (GIT/CICD, libreria di variabili)
È possibile usare il controllo del codice sorgente, l'integrazione continua, la distribuzione continua e un ambiente collaborativo per eseguire progetti di analisi dati di successo con il Copy job.
Inoltre, con il supporto della libreria di variabili, è possibile parametrizzare le connessioni nel processo di copia. Questa potente funzionalità semplifica CI/CD esternalizzando i valori di connessione, consentendo di distribuire lo stesso processo di copia in più ambienti, mentre la libreria variabili inserisce la connessione corretta per ogni fase.
Per altri dettagli, vedere CI/CD per il processo di copia.
Observability
Per altre informazioni, vedere Come monitorare un processo di copia e il monitoraggio dell'area di lavoro per il processo di copia
Aree di disponibilità
Il processo di copia ha la stessa disponibilità regionale di Fabric.
Politiche di Prezzo
È possibile ottenere i dettagli nel processo copia prezzi.
Connettori supportati
Con il processo copia è possibile spostare i dati tra archivi dati cloud o origini locali che si trovano dietro un firewall o all'interno di una rete virtuale usando un gateway.
Per l'elenco completo delle origini e delle destinazioni supportate, vedere la pagina dei connettori supportati :
Invia commenti e suggerimenti su Fabric Ideas e partecipa alla conversazione nella Fabric Community.
Mappatura del tipo di dati
L'attività di copia nelle pipeline e il processo di copia eseguono il mapping dei tipi di origine ai tipi di destinazione con il seguente flusso:
- Eseguire la conversione da tipi di dati nativi di origine a tipi di dati provvisori usati da Fabric Data Factory.
- Convertire automaticamente il tipo di dati provvisorio in base alle esigenze per trovare le corrispondenze con i tipi di destinazione corrispondenti.
- Eseguire la conversione da tipi di dati provvisori a tipi di dati nativi di destinazione.
L'attività di copia nelle pipeline e il processo copy supportano attualmente i tipi di dati provvisori seguenti: Boolean, Byte, Byte array, Datetime, DatetimeOffset, Decimal, Double, GUID, Int16, Int32, Int64, SByte, Single, String, Timespan, UInt16, UInt32 e UInt64.
Le conversioni dei tipi di dati seguenti sono supportate tra i tipi provvisori dall'origine alla destinazione.
| Source\Destination | Booleano | Matrice di byte | Data/ora | Decimale | Punto mobile | Identificatore Unico Globale (GUID) | Integer | String | TimeSpan |
|---|---|---|---|---|---|---|---|---|---|
| Booleano | ✓ | ✓ | ✓ | ✓ | |||||
| Matrice di byte | ✓ | ✓ | |||||||
| Data/ora | ✓ | ✓ | |||||||
| Decimale | ✓ | ✓ | ✓ | ✓ | |||||
| Punto mobile | ✓ | ✓ | ✓ | ✓ | |||||
| Identificatore Unico Globale (GUID) | ✓ | ✓ | |||||||
| Integer | ✓ | ✓ | ✓ | ✓ | |||||
| String | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| TimeSpan | ✓ | ✓ |
(1) Date/Time includono DateTime, DateTimeOffset, Data e Ora.
(2) I numeri a punto mobile includono Single e Double.
(3) Integer include SByte, Byte, Int16, UInt16, Int32, UInt32, Int64 e UInt64.
Per informazioni sulle conversioni dettagliate dei tipi di dati per un determinato connettore, vedere l'articolo sulla configurazione dell'attività di copia per tale connettore da qui.
Annotazioni
Attualmente questa conversione del tipo di dati è supportata durante la copia tra dati tabulari. Le origini/destinazioni gerarchiche non sono supportate, il che significa che non esiste alcuna conversione del tipo di dati definita dal sistema tra i tipi intermedi di origine e di destinazione.