Gestione del backfill per gli oggetti di un flusso

Il backfill in Datastream ti consente di caricare uno snapshot dei dati storici dagli oggetti di origine nella destinazione, oltre a Change Data Capture in corso. Puoi avviare manualmente un backfill completo o parziale se non hai selezionato Esegui il backfill dei dati storici quando hai configurato l'origine. L'avvio di un backfill consente anche di risincronizzare gli oggetti di destinazione se i dati vengono eliminati accidentalmente.

Mentre uno stream è in esecuzione, puoi monitorare gli stati degli oggetti e interrompere un backfill attivo in qualsiasi momento. L'interruzione di un'operazione impedisce la replica di schemi o dati danneggiati e consente di eseguire attività parallele una alla volta per ridurre il carico dell'origine.

Stati degli oggetti

I vari stati del ciclo di vita di avvio e interruzione del backfill per un oggetto includono:

  • Nessuno stato (rappresentato nell'interfaccia utente come -): i motivi per cui un oggetto riceve questo stato includono:

    • Lo stream non è stato avviato.
    • La casella di controllo Backfill dei dati storici non è stata selezionata (quindi il backfill è definito come manuale).
    • L'oggetto è escluso esplicitamente dal backfill automatico.
    • Lo stream è configurato per includere le tabelle future. In questo caso, quando vengono aggiunte nuove tabelle all'origine, non viene creata un'attività di backfill automatico per queste tabelle (perché in genere le nuove tabelle non contengono dati storici per il backfill).
  • Pending: il backfill non è ancora iniziato per l'oggetto.

  • Active: il backfill è in corso per l'oggetto.

  • Completed: il backfill è stato completato per l'oggetto.

  • Stopped: il backfill è stato interrotto per l'oggetto. Se il backfill viene avviato di nuovo per l'oggetto, Datastream eseguirà lo streaming di tutti i dati esistenti associati all'oggetto dall'origine alla destinazione.

  • Failed: il backfill dell'oggetto non è riuscito e deve essere avviato di nuovo.

Avvia backfill

  1. Vai alla pagina Stream nella console Google Cloud .

    Vai alla pagina Stream

  2. Fai clic sullo stream che contiene gli oggetti per i quali vuoi avviare il backfill.

  3. Fai clic sulla scheda Oggetti.

  4. Seleziona la casella di controllo per ogni oggetto per cui vuoi avviare il backfill.

  5. Fai clic su Avvia backfill.

  6. Se hai selezionato un solo oggetto, nella finestra di dialogo fai clic su AVVIA BACKFILL OGGETTO. In caso contrario, se hai selezionato più oggetti, fai clic su AVVIA BACKFILL DEGLI OGGETTI.

    Datastream avvierà il backfill per gli oggetti selezionati e lo stato di ogni oggetto cambierà da Pending a Active a Completed. Quando un oggetto ha lo stato Completed, significa che Datastream ha letto tutti i dati dell'oggetto, ma i dati potrebbero essere ancora in fase di caricamento nella destinazione.

Avvia il backfill parziale

Oltre ai backfill completi, puoi eseguire un backfill parziale per caricare un sottoinsieme specifico di dati dall'origine alla destinazione. Per farlo, fornisci una clausola SQL WHERE come filtro personalizzato.

Datastream supporta il backfill parziale per le seguenti origini:

  • SQL Server
  • Spanner
  • Oracle
  • PostgreSQL
  • MySQL

Per avviare un backfill parziale:

  1. Vai alla pagina Stream nella console Google Cloud .

    Vai alla pagina Stream

  2. Fai clic sullo stream che contiene gli oggetti per i quali vuoi avviare il backfill.

  3. Fai clic sulla scheda Oggetti.

  4. Seleziona l'oggetto per cui vuoi avviare il backfill.

  5. Fai clic su Avvia backfill.

  6. Nel riquadro visualizzato, seleziona la casella di controllo Abilita filtro personalizzato.

  7. Inserisci la clausola SQL WHERE. Ad esempio, product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'.

  8. Fai clic su Avvia backfill.

Datastream convalida il filtro. Se la convalida non va a buon fine, viene visualizzato un messaggio di errore sopra l'editor. Se la convalida va a buon fine, Datastream avvia il job di backfill.

Sintassi dei filtri personalizzati supportata

Quando fornisci un filtro personalizzato, Datastream supporta un sottoinsieme fondamentale della sintassi della clausola SQL WHERE. Gli elementi supportati includono:

  • Operatori logici: AND, OR
  • Operatori di confronto: =, <, >, <=, >=, !=
  • Condizioni: IN, NOT IN, IS NULL, IS NOT NULL
  • Raggruppamento: parentesi () per definire i gruppi di condizioni
  • Valori:

    • Stringhe: testo racchiuso tra virgolette singole, ad esempio 'value',
    • Numeri: numeri interi (123), decimali (123.45), numeri negativi (-10) e numeri con esponenti (1.2e3).
    • Valori booleani: parole chiave sensibili alle maiuscole TRUE o FALSE.
  • Identificatori:

    • Qualifica: i nomi delle colonne possono essere completamente qualificati utilizzando i punti per specificare lo schema o la tabella, ad esempio myColumn, myTable.myColumn o mySchema.myTable.myColumn.
    • Identificatori senza virgolette: possono contenere lettere, numeri e trattini bassi e devono iniziare con una lettera o un trattino basso. La sensibilità alle maiuscole per i nomi delle colonne o delle tabelle dipende dal database di destinazione.
    • Identificatori tra virgolette doppie: devono essere racchiusi tra virgolette doppie (").

Limitazioni del backfill parziale

Alcune istruzioni, operatori e parole chiave sono esplicitamente vietati e il loro utilizzo genera un errore. tra cui:

  • Commenti, ad esempio -- o /* */.
  • Funzioni, ad esempio UPPER(column) e NOW().
  • Espressioni aritmetiche, ad esempio column + 1 > 10.
  • L'operatore LIKE. I caratteri jolly come % o _ non sono supportati con LIKE.
  • L'operatore BETWEEN. Usa i criteri >= e <=.
  • Sottoquery, ad esempio (SELECT ...) all'interno della clausola WHERE.
  • CASE istruzioni, ad esempio CASE WHEN ... END.
  • Confronti tra colonne, ad esempio column1 = column2. I confronti devono essere eseguiti con valori letterali.
  • DATE e TIME tipi o funzioni specifici.
  • Operatori specifici per array o JSON.
  • Casting esplicito: ad esempio, CAST(column AS INT).

Arresta backfill

  1. Vai alla pagina Stream nella console Google Cloud .

    Vai alla pagina Stream

  2. Fai clic sullo stream che contiene gli oggetti per i quali vuoi interrompere il backfill.

  3. Fai clic sulla scheda Oggetti.

  4. Seleziona la casella di controllo per ogni oggetto per cui vuoi interrompere il backfill.

  5. Fai clic su Interrompi backfill.

  6. Se hai selezionato un solo oggetto, nella finestra di dialogo fai clic su Interrompi backfill oggetto. In alternativa, se hai selezionato più oggetti, fai clic su Interrompi i backfill degli oggetti.

    Datastream interromperà il backfill per gli oggetti selezionati e lo stato di ogni oggetto cambierà in Stopped.

    Quando un oggetto ha questo stato, il backfill viene interrotto per l'oggetto. Se il backfill viene avviato di nuovo per l'oggetto, Datastream trasmetterà in streaming tutti i dati esistenti associati all'oggetto dall'origine alla destinazione.

Passaggi successivi