Modificare l'acquisizione dei dati da Snowflake usando il processo di copia (anteprima)

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:

  1. Connettersi all'account Snowflake usando l'interfaccia Web Snowflake, SnowSQL o un altro client SQL.

  2. 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;
    
  3. (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;
    
  4. 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_tracking e verificare che mostri ON.

    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 OWNERSHIP sulla tabella o del privilegio MODIFY.
  • 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

Completare i passaggi seguenti per creare un nuovo processo di copia per inserire dati da Snowflake tramite CDC a una destinazione:

  1. 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.

  2. Scegliere l'archivio dati da cui copiare i dati. In questo esempio scegliere Snowflake.

  3. 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.

  4. È 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: Screenshot che mostra l'icona della tabella CDC.

    Tabelle senza CDC abilitato: screenshot che mostra l'assenza dell'icona della tabella CDC.

    Screenshot che mostra dove selezionare le tabelle cdc per il processo copia.

  5. Seleziona il tuo negozio di destinazione. Scegliere una destinazione che supporti operazioni di merge o upsert CDC per una replica CDC ottimizzata.

    Screenshot che mostra dove selezionare l'archivio di destinazione per il processo di copia.

  6. 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.

    Screenshot che mostra come selezionare il CDC.

  7. 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.

  8. Il processo di copia viene avviato immediatamente. La prima esecuzione copia uno snapshot completo iniziale.

  9. Aggiornare le tabelle di origine in Snowflake inserendo, aggiornando o eliminando righe.

  10. Eseguire di nuovo il processo di copia per acquisire e replicare tutte le modifiche, incluse le righe inserite, aggiornate ed eliminate, nella destinazione.

Passaggi successivi