Uno stream in Datastream può eseguire il backfill dei dati storici e trasmettere in streaming le modifiche in corso a una destinazione. Durante la creazione di uno stream, hai configurato le informazioni sul database di origine per lo stream.
Se hai selezionato la casella di controllo Esegui il backfill dei dati storici, Datastream trasmette in streaming tutti i dati esistenti, oltre alle modifiche ai dati, dall'origine alla destinazione.
Se non hai selezionato questa casella di controllo, Datastream trasmette in streaming solo le modifiche ai dati. Per fare in modo che Datastream trasmetta in streaming uno snapshot di tutti i dati esistenti dall'origine alla destinazione, devi avviare il backfill per gli oggetti che contengono questi dati. Gli oggetti sono sotto forma di schemi di database, tabelle e colonne.
Un altro motivo per avviare il backfill di un oggetto è se i dati non sono sincronizzati tra l'origine e la destinazione. Ad esempio, un utente può eliminare inavvertitamente i dati nella destinazione e i dati vengono persi. In questo caso, l'avvio del backfill per l'oggetto funge da meccanismo di reimpostazione perché tutti i dati vengono trasmessi in streaming alla destinazione in un'unica operazione. Di conseguenza, i dati vengono sincronizzati tra l'origine e la destinazione.
Dopo aver avviato il backfill per un oggetto, puoi arrestarlo. Nell'esempio precedente, l'utente modifica lo schema del database e lo schema o i dati vengono danneggiati. Non vuoi che questo schema o questi dati vengano trasmessi in streaming alla destinazione, quindi arresti il backfill per l'oggetto.
Puoi anche arrestare il backfill degli oggetti per scopi di bilanciamento del carico. Datastream può eseguire più backfill in parallelo. Questa operazione può aumentare il carico sull'origine. Se il carico è significativo, arresta il backfill degli oggetti e poi avvialo per ciascun oggetto.
Stati degli oggetti
I vari stati del ciclo di vita dell'avvio e dell'arresto 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 Esegui il 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 creato automaticamente un'attività di backfill per queste tabelle (perché in genere le nuove tabelle non hanno dati storici di cui eseguire 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 arrestato 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.Failed: il backfill non è riuscito per l'oggetto e deve essere avviato di nuovo.
Avvia backfill
Vai alla pagina Stream nella Google Cloud console.
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 il quale 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 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 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
Per avviare un backfill parziale:
Vai alla pagina Stream nella Google Cloud console.
Fai clic sullo stream che contiene gli oggetti per i quali vuoi avviare il backfill.
Fai clic sulla scheda Oggetti.
Seleziona l'oggetto per il quale vuoi avviare il backfill.
Fai clic su Avvia backfill.
Nel riquadro visualizzato, seleziona la casella di controllo Attiva 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 riesce, sopra l'editor viene visualizzato un messaggio di errore. Se la convalida ha esito positivo, Datastream avvia il job di backfill.
Sintassi del filtro personalizzato 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), numeri 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:
- Qualificazione: i nomi delle colonne possono essere qualificati completamente utilizzando i punti per specificare
lo schema o la tabella, ad esempio
myColumn,myTable.myColumn, omySchema.myTable.myColumn. - Identificatori senza virgolette: possono contenere lettere, numeri e trattini bassi e devono iniziare con una lettera o un trattino basso. La distinzione tra maiuscole e minuscole per i nomi di colonne o tabelle dipende dal database di destinazione.
- Identificatori tra virgolette doppie: devono essere racchiusi tra virgolette doppie (
").
- Qualificazione: i nomi delle colonne possono essere qualificati completamente 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. Questi includono:
- 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. Utilizza invece>=e<=. - Subquery, ad esempio
(SELECT ...)all'interno della clausolaWHERE. - Istruzioni
CASE, ad esempioCASE WHEN ... END. - Confronti tra colonne, ad esempio
column1 = column2. I confronti devono essere eseguiti con valori letterali. - Tipi o funzioni specifici di
DATEeTIME. - Operatori specifici di array o JSON.
- Casting esplicito: ad esempio,
CAST(column AS INT).
Arresta backfill
Vai alla pagina Stream nella Google Cloud console.
Fai clic sullo stream che contiene gli oggetti per i quali vuoi arrestare il backfill.
Fai clic sulla scheda Oggetti.
Seleziona la casella di controllo per ogni oggetto per il quale vuoi arrestare il backfill.
Fai clic su Arresta backfill.
Se hai selezionato un solo oggetto, nella finestra di dialogo fai clic su Arresta backfill oggetto. In caso contrario, se hai selezionato più oggetti, fai clic su Arresta backfill oggetti.
Datastream arresterà il backfill per gli oggetti selezionati e lo stato di ogni oggetto cambierà in
Stopped.Quando un oggetto ha questo stato, il backfill viene arrestato 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 saperne di più sugli stream, consulta Ciclo di vita dello stream.
- Per scoprire come visualizzare le informazioni sullo stream, consulta Visualizzare uno stream.
- Per scoprire come modificare uno stream, consulta Modificare uno stream.
- Per scoprire come monitorare uno stream, consulta Monitorare uno stream.
- Per scoprire come recuperare uno stream non riuscito, consulta Recuperare uno stream.