Questa pagina descrive come creare, modificare e visualizzare gli stream di variazioni Spanner per i database con dialetto Google SQL e PostgreSQL. Per scoprire di più sui modifiche in tempo reale, consulta Informazioni sui flussi di modifiche.
Poiché modifiche in tempo reale sono oggetti dello schema, li crei e li gestisci tramite gli stessi aggiornamenti dello schema basati su DDL utilizzati per qualsiasi altro tipo di attività di definizione del database, come la creazione di tabelle o l'aggiunta di indici.
Spanner avvia un'operazione a lunga esecuzione dopo che hai inviato un'istruzione DDL che modifica lo schema, incluse quelle utilizzate per creare, modificare o eliminare modifiche in tempo reale. Un nuovo stream di modifiche o uno modificato inizia a monitorare le colonne o le tabelle specificate dalla nuova configurazione al termine di questa operazione a lunga esecuzione.
Crea un flusso di modifiche
Per creare un flusso di modifiche, devi fornire il nome e gli oggetti dello schema monitorati: l'intero database o un elenco di tabelle e colonne specifiche. Se vuoi, puoi specificare quanto segue:
- periodo di conservazione per eseguire l'override del periodo di conservazione predefinito di un giorno
- tipo di acquisizione valore per sostituire il tipo di acquisizione valore predefinito
OLD_AND_NEW_VALUES
. - Filtro eliminazioni basate su TTL se vuoi escludere le eliminazioni basate su TTL dagli modifiche in tempo reale
escludi modifiche tabella per escludere tutte le modifiche alle tabelle
INSERT
,UPDATE
oDELETE
GoogleSQL
La sintassi DDL per creare un flusso di modifiche utilizzando GoogleSQL è la seguente:
CREATE CHANGE STREAM change_stream_name [FOR column_or_table_watching_definition[, ... ] ] [ OPTIONS ( retention_period = timespan, value_capture_type = type, exclude_ttl_deletes = boolean, exclude_insert = boolean, exclude_update = boolean, exclude_delete = boolean ) ]
PostgreSQL
La sintassi DDL per la creazione di un flusso di modifiche utilizzando PostgreSQL è la seguente:
CREATE CHANGE STREAM change_stream_name [FOR column_or_table_watching_definition[, ... ] ] [ WITH ( retention_period = timespan, value_capture_type = type, exclude_ttl_deletes = boolean, exclude_insert = boolean, exclude_update = boolean, exclude_delete = boolean ) ]
Un nuovo stream di modifiche inizia a monitorare gli oggetti dello schema assegnati non appena viene completata l'operazione a lunga esecuzione che lo ha creato.
Gli esempi riportati di seguito illustrano la creazione di modifiche in tempo reale con varie configurazioni.
Guardare un intero database
Per creare un flusso di modifiche che monitori ogni modifica dei dati eseguita nelle tabelle di un database, utilizza la parola chiave ALL
:
CREATE CHANGE STREAM EverythingStream
FOR ALL;
La configurazione ALL
include implicitamente tutte le tabelle e le colonne di dati future del database, non appena vengono create. Non include visualizzazioni, tabelle dello schema di informazioni o altri oggetti oltre alle normali tabelle di dati.
Guardare tabelle specifiche
Per limitare l'ambito di un flusso di modifiche a tabelle specifiche anziché a un intero database, specifica un elenco di una o più tabelle:
CREATE CHANGE STREAM SingerAlbumStream
FOR Singers, Albums;
Spanner aggiorna automaticamente gli stream di modifiche che monitorano intere tabelle per riflettere eventuali modifiche dello schema che interessano queste tabelle, ad esempio colonne aggiunte o eliminate.
Monitorare colonne specifiche
Utilizza la sintassi table(column_1[, column_2,
...])
per monitorare le modifiche apportate a una o più colonne non chiave specifiche all'interno delle tabelle che assegni un nome:
CREATE CHANGE STREAM NamesAndTitles
FOR Singers(FirstName, LastName), Albums(Title);
Non puoi specificare le colonne della chiave primaria qui perché ogni stream di modifiche monitora sempre le chiavi primarie di ogni tabella che controlla. In questo modo, ogni record di modifica dei dati può identificare la riga modificata in base alla relativa chiave primaria.
Visualizzare tabelle e colonne in un unico stream
Puoi combinare la sintassi di monitoraggio delle tabelle e delle colonne dei due esempi precedenti in un unico stream di modifiche:
CREATE CHANGE STREAM NamesAndAlbums
FOR Singers(FirstName, LastName), Albums;
Specifica un periodo di conservazione più lungo
Per specificare un periodo di conservazione dei dati degli stream di variazioni superiore a quello predefinito di un giorno, imposta retention_period
su un periodo di massimo una settimana, espresso in ore (h
) o giorni (d
).
Ecco due esempi:
GoogleSQL
CREATE CHANGE STREAM LongerDataRetention
FOR ALL
OPTIONS ( retention_period = '36h' );
CREATE CHANGE STREAM MaximumDataRetention
FOR ALL
OPTIONS ( retention_period = '7d' );
PostgreSQL
CREATE CHANGE STREAM LongerDataRetention
FOR ALL
WITH ( retention_period = '36h' );
CREATE CHANGE STREAM MaximumDataRetention
FOR ALL
WITH ( retention_period = '7d' );
Specificare un tipo di acquisizione del valore diverso
Per specificare un tipo di acquisizione del valore dello stream di variazioni diverso da OLD_AND_NEW_VALUES
, imposta value_capture_type
su NEW_VALUES
o NEW_ROW
, come mostrato negli esempi seguenti:
GoogleSQL
CREATE CHANGE STREAM NewRowChangeStream
FOR ALL
OPTIONS ( value_capture_type = 'NEW_ROW' );
CREATE CHANGE STREAM NewValuesChangeStream
FOR ALL
OPTIONS ( value_capture_type = 'NEW_VALUES' );
PostgreSQL
CREATE CHANGE STREAM NewRowChangeStream
FOR ALL
WITH ( value_capture_type = 'NEW_ROW' );
CREATE CHANGE STREAM NewValuesChangeStream
FOR ALL
WITH ( value_capture_type = 'NEW_VALUES' );
Filtrare le eliminazioni basate su TTL
Puoi filtrare le eliminazioni basate su TTL
dall'ambito del tuo stream di modifiche utilizzando il filtro exclude_ttl_deletes
.
Per ulteriori informazioni sul funzionamento di questo filtro, consulta Filtro per le eliminazioni in base al tempo di vita.
GoogleSQL
Per creare un stream di variazioni con il filtro delle eliminazioni basate su TTL, utilizza il seguente esempio:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del nuovo stream di variazioni
Il seguente esempio crea un flusso di modifiche denominato NewFilterChangeStream
che esclude tutte le eliminazioni basate su TTL:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_ttl_deletes = true)
PostgreSQL
Per creare uno stream di variazioni con il filtro delle eliminazioni basate su TTL, utilizza il seguente esempio:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- STREAM_NAME: il nome del nuovo stream di variazioni
Il seguente esempio crea un flusso di modifiche denominato NewFilterChangeStream
che esclude tutte le eliminazioni basate su TTL:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_ttl_deletes = true)
Per aggiungere o rimuovere il filtro delle eliminazioni basate su TTL da un stream di variazioni esistente, consulta Modificare il filtro delle eliminazioni basate su TTL. Puoi confermare i filtri del flusso di modifiche visualizzando le definizioni del flusso di modifiche come DDL.
Filtra per tipo di modifica della tabella
Filtra una o più di queste modifiche alla tabella dall'ambito del tuo stream di modifiche utilizzando le seguenti opzioni di filtro disponibili:
exclude_insert
: escludi tutte le modifiche alla tabellaINSERT
exclude_update
: escludi tutte le modifiche alla tabellaUPDATE
exclude_delete
: escludi tutte le modifiche alla tabellaDELETE
Per ulteriori informazioni sul funzionamento di questi filtri, consulta Filtri per tipo di modifica della tabella.
GoogleSQL
Per creare uno stream di modifiche con uno o più filtri per il tipo di modifica della tabella:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del nuovo stream di variazioni
- MOD_TYPE_FILTER_NAME: il filtro che vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separali con una virgola.
L'esempio seguente crea uno stream di modifiche denominato NewFilterChangeStream
che esclude i tipi di modifica delle tabelle INSERT
e UPDATE
:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_insert = true, exclude_update = true)
PostgreSQL
Per creare uno stream di modifiche con uno o più filtri per il tipo di modifica della tabella:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del stream di variazioni esistente
- MOD_TYPE_FILTER_NAME: il filtro che vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separali con una virgola.
L'esempio seguente crea uno stream di modifiche denominato NewFilterChangeStream
che esclude i tipi di transazioni di modifica della tabella INSERT
e UPDATE
:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_insert = true, exclude_update = true)
Per aggiungere o rimuovere un filtro per tipo di modifica della tabella da un stream di modifiche esistente, consulta Modificare il filtro in base al tipo di modifica della tabella. Puoi verificare quali filtri di tipo di modifica della tabella esistono per il tuo flusso di modifiche visualizzando le definizioni del flusso di modifiche come DDL.
Modificare un flusso di modifiche
Per modificare la configurazione di uno stream di modifiche, utilizza un'istruzione ALTER CHANGE STREAM
DDL. Utilizza una sintassi simile a CREATE CHANGE STREAM
. Puoi cambiare le colonne monitorate da uno stream o la durata del relativo periodo di conservazione dei dati. Puoi anche sospendere del tutto la visualizzazione, mantenendo al contempo i record delle modifiche dei dati.
Modificare gli elementi monitorati da un flusso di modifiche
Questo esempio aggiunge l'intera tabella Songs
allo stream di modifiche NamesAndAlbums
configurato in precedenza:
ALTER CHANGE STREAM NamesAndAlbums
SET FOR Singers(FirstName, LastName), Albums, Songs;
Al termine dell'operazione a operazione a lunga esecuzione termine che aggiorna la definizione dello stream di modifiche all'interno dello schema del database, Spanner sostituisce il comportamento dello stream di modifiche denominato con la nuova configurazione.
Modificare il periodo di conservazione dei dati di un flusso di modifiche
Per modificare il periodo di tempo per cui un flusso di modifiche conserva i propri record interni, imposta retention_period
in un'istruzione DDL ALTER CHANGE STREAM
.
Questo esempio regola il periodo di conservazione dei dati in base allo stream di variazioni NamesAndAlbums
creato in precedenza:
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( retention_period = '36h' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( retention_period = '36h' );
Modificare il tipo di acquisizione valore di uno stream di variazioni
Per modificare il tipo di acquisizione dei valori di uno stream di modifiche, imposta la clausola value_capture_type
in un'istruzione DDL ALTER CHANGE STREAM
.
Questo esempio modifica il tipo di acquisizione del valore in NEW_VALUES
.
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( value_capture_type = 'NEW_VALUES' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( value_capture_type = 'NEW_VALUES' );
Modificare il filtro delle eliminazioni basate su TTL
Per modificare il filtro Eliminazioni basate su TTL per un stream di modifiche, imposta il filtro exclude_ttl_deletes
in un'istruzione DDL ALTER CHANGE STREAM
. Puoi utilizzarlo per aggiungere il filtro ai tuoi modifiche in tempo reale esistenti o rimuoverlo.
Per ulteriori informazioni sul funzionamento di questi filtri, consulta Filtro Eliminazioni basate sul tempo di vita.
Aggiungere il filtro delle eliminazioni basate su TTL a uno stream di modifiche esistente
GoogleSQL
Per aggiungere il filtro delle eliminazioni basate su TTL a uno stream di modifiche esistente,
utilizza quanto segue per impostare il filtro su true
:
ALTER CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del tuo stream di variazioni esistente
Nel seguente esempio, il filtro exclude_ttl_deletes
viene aggiunto a un stream di modifiche esistente denominato NewFilterChangeStream
:
che esclude tutte le eliminazioni basate su TTL:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
Ciò esclude tutte le eliminazioni basate su TTL dal flusso di modifiche.
PostgreSQL
Per aggiungere il filtro delle eliminazioni basate su TTL a uno stream di modifiche esistente,
utilizza quanto segue per impostare il filtro su True
:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- STREAM_NAME: il nome del tuo stream di variazioni esistente
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene aggiunto a un
stream di modifiche esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = true)
Ciò esclude tutte le eliminazioni future basate su TTL dal flusso di modifiche.
Rimuovere il filtro delle eliminazioni basate su TTL da uno stream di modifiche esistente
GoogleSQL
Per rimuovere il filtro delle eliminazioni basate su TTL da uno stream di modifiche esistente,
utilizza quanto segue per impostare il filtro su False
:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
Sostituisci quanto segue:
- STREAM_NAME: il nome del nuovo stream di variazioni
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene rimosso da un
stream di modifiche esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
Sono incluse tutte le eliminazioni future basate su TTL nel flusso di modifiche.
Puoi anche impostare il filtro su null
per rimuovere il filtro delle eliminazioni basate su TTL.
PostgreSQL
Per rimuovere il filtro delle eliminazioni basate su TTL da uno stream di modifiche esistente,
utilizza quanto segue per impostare il filtro su False
:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = false)
Sostituisci quanto segue:
- STREAM_NAME: il nome del nuovo stream di variazioni
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene rimosso da un
stream di modifiche esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = false)
Sono incluse tutte le eliminazioni future basate su TTL nel flusso di modifiche.
Puoi anche impostare il filtro su null
per rimuovere il filtro delle eliminazioni basate su TTL.
Modificare il filtro in base al tipo di modifica della tabella
Per modificare i filtri dei tipi di modifica della tabella per uno stream di modifiche, imposta il tipo di filtro in un'istruzione DDL ALTER CHANGE STREAM
. Puoi utilizzarla per aggiungere un nuovo filtro o rimuovere un filtro esistente dallo stream delle modifiche.
Aggiungere un filtro per tipo di modifica della tabella a uno stream di modifiche esistente
GoogleSQL
Per aggiungere uno o più nuovi filtri per tipo di modifica della tabella a un stream di variazioni esistente, utilizza quanto segue per impostare il filtro su true
:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del stream di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituisci con il filtro che vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separali con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene aggiunto a un
stream di variazioni esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = true)
PostgreSQL
Per aggiungere uno o più nuovi filtri per tipo di modifica della tabella a un stream di modifiche esistente, utilizza quanto segue per impostare il filtro su true
:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del stream di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituisci con il filtro che vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separali con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene aggiunto a un
stream di variazioni esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = true)
Rimuovere un filtro per tipo di modifica della tabella da un flusso di modifiche esistente
GoogleSQL
Per rimuovere uno o più filtri di tipo di modifica della tabella esistenti nel stream di variazioni, utilizza quanto segue per impostare il filtro su false
:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = false)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del stream di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituisci con il filtro che vuoi rimuovere:
exclude_insert
,exclude_update
oexclude_delete
. Se rimuovi più filtri alla volta, separali con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene rimosso da un
stream di modifiche esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = false)
Puoi anche rimuovere un filtro di modifica della tabella impostando nuovamente il valore predefinito. Per farlo, imposta il valore del filtro su null
.
PostgreSQL
Per rimuovere uno o più filtri di tipo di modifica della tabella esistenti nel stream di variazioni, utilizza quanto segue per impostare il filtro su False
:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = false)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del stream di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituisci con il filtro che vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separali con una virgola.
Nel seguente esempio, il filtro exclude_delete
viene rimosso da un stream di variazioni esistente chiamato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = false)
Puoi anche rimuovere un filtro di modifica della tabella impostando nuovamente il valore predefinito. Per farlo, imposta il valore del filtro su null
.
Sospendere un flusso di modifiche
Se hai bisogno di un stream di modifiche per interrompere la sua attività, ma conservare i suoi record interni, almeno per la durata del periodo di conservazione dei dati, puoi modificarlo in modo che non monitori nulla.
Per farlo, esegui un'istruzione DDL ALTER CHANGE STREAM
che sostituisca la definizione del flusso di variazioni con la frase speciale DROP FOR ALL
.
Ad esempio:
ALTER CHANGE STREAM MyStream DROP FOR ALL;
Lo stream continua a esistere nel database, ma non monitora alcun oggetto e non genera ulteriori record di modifica dei dati. I relativi record di variazione esistenti rimangono invariati, in base alle norme sulla conservazione dei dati dello stream.
Per riprendere uno stream sospeso, esegui un'altra dichiarazione ALTER CHANGE STREAM
con la configurazione precedente.
Eliminare un flusso di modifiche
Per eliminare definitivamente un flusso di modifiche, esegui un'istruzione DROP CHANGE STREAM
che includa il nome del flusso:
DROP CHANGE STREAM NamesAndAlbums;
Spanner interrompe immediatamente lo stream, lo rimuove dallo schema del database ed elimina i relativi record di modifica dei dati.
Elenca e visualizza modifiche in tempo reale
La console Google Cloud fornisce un'interfaccia web per elencare e esaminare le definizioni degli stream di modifiche di un database. Puoi anche visualizzare la struttura dei modifiche in tempo reale come istruzioni DDL equivalenti o eseguendo una query sullo schema delle informazioni del database.
Visualizzare modifiche in tempo reale con la console Google Cloud
Per visualizzare un elenco degli modifiche in tempo reale di un database e rivedere le relative definizioni:
Visita la pagina delle istanze Spanner della console Google Cloud .
Vai all'istanza e al database appropriati.
Fai clic su Cambia stream nel menu di navigazione.
Viene visualizzato un elenco di tutti gli modifiche in tempo reale del database e viene riassunta la configurazione di ciascuno. Se fai clic sul nome di uno stream, vengono visualizzati ulteriori dettagli sulle tabelle e sulle colonne che monitora.
Visualizzare le definizioni degli modifiche in tempo reale come DDL
La visualizzazione dello schema di un database come DDL include le descrizioni di tutti i suoi modifiche in tempo reale, dove vengono visualizzati come istruzioni CREATE CHANGE STREAM
.
Per farlo dalla console, fai clic sul link Mostra DDL equivalente nella pagina del database nella console Google Cloud .
Per farlo dalla riga di comando, utilizza il comando
ddl describe
di Google Cloud CLI.
Esegui query sullo schema delle informazioni modifiche in tempo reale
Puoi eseguire query direttamente sullo schema delle informazioni di un database relativo ai suoi modifiche in tempo reale. Le seguenti tabelle contengono i metadati che definiscono i nomi degli modifiche in tempo reale, le tabelle e le colonne monitorate e i relativi periodi di conservazione:
Best practice per i flussi di modifiche
Di seguito sono riportate alcune best practice per la configurazione e la gestione dei flussi di modifiche.
Valuta la possibilità di utilizzare un database dei metadati separato
Le modifiche in tempo reale utilizzano un database di metadati per mantenere lo stato interno. Il database dei metadati può essere uguale o diverso da quello che contiene i modifiche in tempo reale. Ti consigliamo di creare un database separato per lo stoccaggio dei metadati.
Il connettore modifiche in tempo reale Spanner richiede autorizzazioni di lettura/scrittura per il database dei metadati. Non è necessario preparare questo database con uno schema; il connettore si occupa di tutto.
L'utilizzo di un database dei metadati separato elimina le complessità che potrebbero sorgere se si consente al connettore di scrivere direttamente nel database dell'applicazione:
Se separi il database dei metadati dal database di produzione con il flusso di modifiche, il connettore ha bisogno solo delle autorizzazioni di lettura per il database di produzione.
Se limiti il traffico del connettore a un database di metadati distinto, le scritture eseguite dal connettore stesso non vengono incluse negli modifiche in tempo reale di produzione. Ciò è particolarmente importante per modifiche in tempo reale che monitorano l'intero database.
Se non viene utilizzato un database separato per archiviare i metadati, consigliamo di monitorare l'impatto della CPU del connettore degli modifiche in tempo reale sulle relative istanze.
Esegui il benchmarking dei nuovi modifiche in tempo reale e ridimensiona se necessario
Prima di aggiungere nuovi modifiche in tempo reale all'istanza di produzione, valuta la possibilità di eseguire il benchmarking di un carico di lavoro realistico su un'istanza di staging con gli stream di modifiche abilitati. In questo modo puoi stabilire se devi aggiungere nodi alla tua istanza per aumentare le sue capacità di calcolo e archiviazione.
Esegui questi test finché le metriche della CPU e dello spazio di archiviazione non si stabilizzano. In condizioni ottimali, l'utilizzo della CPU dell'istanza deve rimanere al di sotto dei valori massimi consigliati e l'utilizzo dello spazio di archiviazione non deve superare il limite dell'istanza.
Utilizzare regioni diverse per il bilanciamento del carico
Quando utilizzi modifiche in tempo reale in una configurazione di istanze multi-regione, valuta la possibilità di eseguire le relative pipeline di elaborazione in una regione diversa da quella leader predefinita. In questo modo, il carico dello streaming viene distribuito tra le repliche non leader. Tuttavia, se devi dare la priorità al ritardo di streaming più basso possibile rispetto al bilanciamento del carico, esegui il carico di streaming nella regione leader.
Passaggi successivi
Utilizza i modelli per collegare rapidamente uno stream di variazioni a BigQuery, Cloud Storage o Pub/Sub.