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
Vai alla pagina Stream nella console Google Cloud .
Fai clic sullo stream che contiene gli oggetti per i quali vuoi avviare il backfill.
Fai clic sulla scheda Oggetti.
Seleziona la casella di controllo per ogni oggetto per cui vuoi avviare il backfill.
Fai clic su Avvia backfill.
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
PendingaActiveaCompleted. Quando un oggetto ha lo statoCompleted, 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:
Vai alla pagina Stream nella console Google Cloud .
Fai clic sullo stream che contiene gli oggetti per i quali vuoi avviare il backfill.
Fai clic sulla scheda Oggetti.
Seleziona l'oggetto per cui vuoi avviare il backfill.
Fai clic su Avvia backfill.
Nel riquadro visualizzato, seleziona la casella di controllo Abilita filtro personalizzato.
Inserisci la clausola SQL
WHERE. Ad esempio,product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'.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
TRUEoFALSE.
- Stringhe: testo racchiuso tra virgolette singole, ad esempio
Identificatori:
- Qualifica: i nomi delle colonne possono essere completamente qualificati utilizzando i punti per specificare lo schema o la tabella, ad esempio
myColumn,myTable.myColumnomySchema.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 (
").
- Qualifica: i nomi delle colonne possono essere completamente qualificati utilizzando i punti per specificare lo schema o la tabella, ad esempio
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)eNOW(). - Espressioni aritmetiche, ad esempio
column + 1 > 10. - L'operatore
LIKE. I caratteri jolly come%o_non sono supportati conLIKE. - L'operatore
BETWEEN. Usa i criteri>=e<=. - Sottoquery, ad esempio
(SELECT ...)all'interno della clausolaWHERE. CASEistruzioni, ad esempioCASE WHEN ... END.- Confronti tra colonne, ad esempio
column1 = column2. I confronti devono essere eseguiti con valori letterali. DATEeTIMEtipi o funzioni specifici.- Operatori specifici per array o JSON.
- Casting esplicito: ad esempio,
CAST(column AS INT).
Arresta backfill
Vai alla pagina Stream nella console Google Cloud .
Fai clic sullo stream che contiene gli oggetti per i quali vuoi interrompere il backfill.
Fai clic sulla scheda Oggetti.
Seleziona la casella di controllo per ogni oggetto per cui vuoi interrompere il backfill.
Fai clic su Interrompi backfill.
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
- Per scoprire di più sugli stream, consulta Ciclo di vita dello stream.
- Per scoprire come visualizzare le informazioni sul tuo stream, consulta Visualizza uno stream.
- Per scoprire come modificare uno stream, consulta Modifica uno stream.
- Per scoprire come monitorare uno stream, consulta Monitora uno stream.
- Per scoprire come recuperare uno stream con errori, consulta Recupera uno stream.