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.
Questa esercitazione descrive come usare Change Data Capture (CDC) nel processo di copia per replicare in modo efficiente le modifiche ai dati da Snowflake a una destinazione. In questo modo i dati di destinazione rimangono aggiornati automaticamente.
Prerequisiti
Prima di iniziare, assicurarsi di disporre degli elementi seguenti:
Requisiti di Snowflake:
- Un account Snowflake con accesso al database e allo schema contenente le tabelle di origine.
- Privilegio OWNERSHIP nelle tabelle in cui si vuole abilitare il rilevamento delle modifiche. In alternativa, è possibile usare il privilegio MODIFY per abilitare il rilevamento delle modifiche.
- Privilegi USAGE per il database e lo schema contenenti le tabelle.
- Privilegio SELECT per le tabelle per leggere i dati.
- Le tabelle devono avere un periodo di conservazione dei dati configurato (minimo 0 giorni, massimo 90 giorni). Il periodo di conservazione deve essere più lungo dell'intervallo del processo di copia pianificato per evitare la perdita di dati modificati.
Per altre informazioni sulle autorizzazioni snowflake e sul rilevamento delle modifiche, vedere Privilegi di controllo di accesso e Introduzione ai flussi.
Requisiti dell'infrastruttura:
- Un'area di lavoro di Fabric con le autorizzazioni necessarie per creare un job di copia.
- Archivio dati di destinazione supportato dal processo di copia per la replica CDC.
Suggerimento
Usare i ruoli SECURITYADMIN o SYSADMIN in Snowflake per concedere i privilegi di oggetto necessari. Il ACCOUNTADMIN ruolo potrebbe essere necessario per determinate configurazioni a livello di account.
Abilitare il rilevamento delle modifiche in Snowflake
Snowflake usa il rilevamento delle modifiche a livello di tabella per acquisire le modifiche ai dati. Il rilevamento delle modifiche deve essere abilitato singolarmente in ogni tabella. Seguire questa procedura per abilitare il rilevamento delle modifiche nelle tabelle Snowflake:
Connettersi all'account Snowflake usando l'interfaccia Web Snowflake, SnowSQL o un altro client SQL.
Abilitare il rilevamento delle modifiche in ogni tabella da tenere traccia. Per ogni tabella, eseguire il comando SQL seguente:
ALTER TABLE <schema_name>.<table_name> SET CHANGE_TRACKING = TRUE;Sostituire
<schema_name>e<table_name>con i nomi dello schema e delle tabelle.Esempio:
ALTER TABLE sales.customers SET CHANGE_TRACKING = TRUE; ALTER TABLE sales.orders SET CHANGE_TRACKING = TRUE;(Facoltativo) Abilitare il rilevamento delle modifiche durante la creazione di una nuova tabella:
CREATE TABLE <schema_name>.<table_name> ( column1 STRING, column2 NUMBER ) CHANGE_TRACKING = TRUE;Verificare che il rilevamento delle modifiche sia abilitato. Eseguire il comando seguente per controllare lo stato:
SHOW TABLES LIKE '<table_name>' IN SCHEMA <schema_name>;Nell'output, individuare la colonna
change_trackinge verificare che mostriON.In alternativa, eseguire una query su
INFORMATION_SCHEMA:SELECT table_catalog, table_schema, table_name, change_tracking FROM <database_name>.INFORMATION_SCHEMA.TABLES WHERE table_schema = '<schema_name>' AND table_name = '<table_name>';
Annotazioni
- Il rilevamento delle modifiche è una proprietà a livello di tabella in Snowflake che tiene traccia delle operazioni INSERT, UPDATE e DELETE.
- Per abilitare il rilevamento delle modifiche, è necessario disporre del privilegio
OWNERSHIPsulla tabella o del privilegioMODIFY. - Il rilevamento delle modifiche usa spazio di archiviazione aggiuntivo per i metadati, ma è necessario per funzionalità come flussi e modelli CDC.
- Snowflake conserva i dati di rilevamento delle modifiche in base al periodo di conservazione dei dati della tabella (minimo 0 giorni, massimo 90 giorni). Assicurarsi che il periodo di conservazione sia più lungo dell'intervallo di processo di copia pianificato per evitare la perdita di dati.
Per altre informazioni sul rilevamento delle modifiche Snowflake, vedere la documentazione ufficiale di Snowflake - ALTER TABLE e Gestione dei stream.
Creare un processo di copia con Snowflake CDC
Annotazioni
- La procedura seguente è molto simile a quella eseguita in Usare il processo di copia per inserire dati dal database SQL di Azure tramite CDC a un altro database SQL di Azure
Completare i passaggi seguenti per creare un nuovo processo di copia per inserire dati da Snowflake tramite CDC a una destinazione:
Selezionare + Nuovo elemento, scegliere l'icona Copia processo , assegnare un nome al processo di copia e selezionare Crea.
Screenshot che mostra come navigare alla pagina iniziale di Data Factory e creare una nuova attività di copia.
Scegliere l'archivio dati da cui copiare i dati. In questo esempio scegliere Snowflake.
Immettere i dettagli e le credenziali di connessione per connettersi a Snowflake. È possibile copiare i dati in modo sicuro all'interno di un ambiente VNET utilizzando un gateway in locale o un gateway VNET.
È necessario avere una chiara visibilità delle tabelle di origine abilitate da CDC. Selezionare le tabelle con CDC attivato per la copia.
Tabelle con CDC abilitato:
Tabelle senza CDC abilitato:
Seleziona il tuo negozio di destinazione. Scegliere una destinazione che supporti operazioni di merge o upsert CDC per una replica CDC ottimizzata.
Seleziona Copia incrementale e vedrai che non è richiesta alcuna colonna Incrementale per ogni tabella per tenere traccia delle modifiche. Il metodo Update predefinito deve essere impostato su Merge e le colonne chiave necessarie corrispondono alla chiave primaria definita nell'archivio di origine per impostazione predefinita.
Annotazioni
Il processo di copia inizialmente esegue un caricamento completo e successivamente effettua copie incrementali durante le esecuzioni successive tramite CDC.
Esaminare il riepilogo del processo, impostare l'opzione di esecuzione su in base alla pianificazione e selezionare Salva + Esegui.
Annotazioni
Assicurarsi che il periodo di conservazione del rilevamento modifiche Snowflake sia più lungo dell'intervallo tra le esecuzioni pianificate; altrimenti, i dati modificati potrebbero andare persi se non vengono elaborati entro tale periodo.
Il processo di copia viene avviato immediatamente. La prima esecuzione copia uno snapshot completo iniziale.
Aggiornare le tabelle di origine in Snowflake inserendo, aggiornando o eliminando righe.
Eseguire di nuovo il processo di copia per acquisire e replicare tutte le modifiche, incluse le righe inserite, aggiornate ed eliminate, nella destinazione.