Questa pagina descrive come creare, modificare e visualizzare i flussi di modifiche di Spanner. Per scoprire di più sulle modifiche in tempo reale, consulta Informazioni sulle modifiche in tempo reale.
Poiché le modifiche in tempo reale sono oggetti di schema, puoi crearli e gestirli tramite gli stessi aggiornamenti di schema basati su DDL utilizzati per qualsiasi altro tipo di attività di definizione dei database, ad esempio la creazione di tabelle o l'aggiunta di indici.
Spanner avvia un'operazione a lunga esecuzione dopo l'invio di un'istruzione DDL che modifica lo schema, comprese quelle utilizzate per creare, modificare o eliminare modifiche in tempo reale. Un flusso di modifiche nuovo o modificato inizierà 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 indicarne il nome e gli oggetti schema che dovrà esaminare: l'intero database o un elenco di tabelle e colonne specifiche. Facoltativamente, puoi specificare quanto segue:
- periodo di conservazione per sostituire il periodo di conservazione predefinito di un giorno
- tipo di acquisizione valori per eseguire l'override del tipo di acquisizione del valore predefinito
OLD_AND_NEW_VALUES
. - Filtro delle eliminazioni basate su TTL se vuoi escludere le eliminazioni basate su TTL dai modifiche in tempo reale
escludi le modifiche alle tabelle per escludere tutte le modifiche alle tabelle
INSERT
,UPDATE
oDELETE
GoogleSQL
La sintassi DDL per creare un flusso di modifiche utilizzando GoogleSQL è simile a questa:
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 creare una modifica in tempo reale utilizzando PostgreSQL è simile alla 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 flusso di modifiche inizia a monitorare gli oggetti schema assegnati al completamento dell'operazione a lunga esecuzione che l'ha creata.
Gli esempi riportati di seguito illustrano la creazione di modifiche in tempo reale con varie configurazioni.
Controllo dell'intero database
Per creare un flusso di modifiche che controlli ogni modifica ai 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 futuri del database, non appena vengono create. Non
include viste, tabelle con schemi di informazioni o
altri oggetti a parte le normali tabelle di dati.
Controlla 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 i flussi di modifiche che monitorano intere tabelle per riflettere eventuali modifiche dello schema che interessano quelle tabelle, ad esempio le colonne aggiunte o eliminate.
Guarda colonne specifiche
Utilizza la sintassi table(column_1[, column_2,
...])
per osservare le modifiche apportate a una o più colonne non chiave specifiche all'interno delle tabelle denominate:
CREATE CHANGE STREAM NamesAndTitles
FOR Singers(FirstName, LastName), Albums(Title);
Non puoi specificare le colonne di chiave primaria qui perché ogni modifica in tempo reale monitora sempre le chiavi primarie di ogni tabella monitorata. In questo modo ogni record delle modifiche ai dati può identificare la riga modificata tramite la sua chiave primaria.
Guarda tabelle e colonne in un unico stream
Puoi combinare la sintassi di visualizzazione delle tabelle e quella delle colonne dei due esempi precedenti in un unico flusso 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 delle modifiche in tempo reale più lungo del giorno predefinito di un giorno, imposta retention_period
su un periodo massimo di una settimana, espresso in ore (h
) o giorni (d
).
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' );
Specifica un tipo di acquisizione valore diverso
Per specificare un tipo di acquisizione del valore di modifica in tempo reale diverso da OLD_AND_NEW_VALUES
, imposta value_capture_type
su NEW_VALUES
o NEW_ROW
, come mostrato nei seguenti esempi:
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' );
Filtra eliminazioni basate su TTL
Puoi filtrare le eliminazioni basate su TTL dall'ambito del flusso di modifiche utilizzando il filtro exclude_ttl_deletes
.
Per ulteriori informazioni su come funziona questo filtro, consulta Filtro delle eliminazioni in base alla durata.
GoogleSQL
Per creare un flusso di modifiche con il filtro di eliminazione basato su TTL, utilizza quanto segue:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del nuovo flusso di modifiche
L'esempio seguente 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 un flusso di modifiche con il filtro di eliminazione basato su TTL, utilizza quanto segue:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (exclude_ttl_deletes = true)
Sostituisci quanto segue:
- STREAM_NAME: il nome del nuovo flusso di modifiche
L'esempio seguente 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 di eliminazione basato su TTL da un flusso di modifiche esistente, consulta Modificare il filtro di eliminazione basato su TTL. Puoi confermare i filtri delle modifiche in tempo reale 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 flusso 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 dei tipi di modifica della tabella.
GoogleSQL
Per creare un flusso di modifiche con uno o più filtri di tipo di modifica della tabella, utilizza quanto segue:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del nuovo flusso di modifiche
- MOD_TYPE_FILTER_NAME: il filtro da
aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separa ciascuno con una virgola.
L'esempio seguente crea un flusso 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 un flusso di modifiche con uno o più filtri di tipo di modifica della tabella, utilizza quanto segue:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: il nome del flusso di modifiche esistente
- MOD_TYPE_FILTER_NAME: il filtro da
aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separa ciascuno con una virgola.
Nell'esempio seguente viene creato un flusso di modifiche denominato NewFilterChangeStream
che esclude i tipi di transazioni di modifica delle tabelle INSERT
e UPDATE
:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_insert = true, exclude_update = true)
Per aggiungere o rimuovere un filtro per il tipo di modifica della tabella da un flusso di modifiche esistente, consulta Modificare il filtro per tipo di modifica della tabella. Per verificare quali filtri dei tipi di modifica della tabella esistono per il flusso di modifiche, visualizza le definizioni del flusso di modifiche come DDL.
Modificare un flusso di modifiche
Per modificare la configurazione di un flusso di modifiche, utilizza un'istruzione DDL ALTER CHANGE STREAM
. La sintassi è simile a quella di CREATE CHANGE STREAM
. Puoi
modificare le colonne visualizzate da uno stream o la durata del periodo di conservazione
dei dati. Puoi anche sospendere del tutto la visione,
conservando i record delle modifiche ai dati.
Modificare i contenuti guardati in un flusso di modifiche
In questo esempio, viene aggiunta l'intera tabella Songs
al flusso di modifiche NamesAndAlbums
configurato in precedenza:
ALTER CHANGE STREAM NamesAndAlbums
SET FOR Singers(FirstName, LastName), Albums, Songs;
Spanner sostituisce il comportamento del flusso di modifiche denominato con la nuova configurazione al completamento dell'operazione a lunga esecuzione che aggiorna la definizione del flusso di modifiche all'interno dello schema del database.
Modificare il periodo di conservazione dei dati di un flusso di modifiche
Per modificare il periodo di tempo in 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 al flusso di modifiche 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 del valore di un flusso di modifiche
Per modificare il tipo di acquisizione dei valori di una modifica in tempo reale, imposta la clausola value_capture_type
in un'istruzione DDL ALTER CHANGE STREAM
.
Questo esempio modifica il tipo di acquisizione del valore su 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' );
Modifica filtro di eliminazione basato su TTL
Per modificare il filtro Eliminazioni basate su TTL per un flusso di modifiche, imposta il filtro exclude_ttl_deletes
in un'istruzione DDL ALTER CHANGE STREAM
. Puoi utilizzarlo per aggiungere o rimuovere il filtro dai modifiche in tempo reale esistenti.
Per ulteriori informazioni su come funzionano questi filtri, consulta Filtro per eliminazione basato sulla durata.
Aggiungere il filtro di eliminazione basato su TTL a un flusso di modifiche esistente
GoogleSQL
Per aggiungere il filtro di eliminazione basato su TTL a un flusso 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 flusso di modifiche esistente
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene aggiunto a un flusso 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)
Esclude tutte le eliminazioni basate su TTL dal flusso di modifiche.
PostgreSQL
Per aggiungere il filtro di eliminazione basato su TTL a un flusso 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 flusso di modifiche esistente
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene aggiunto a un flusso di modifiche esistente denominato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = true)
Questa azione esclude tutte le eliminazioni future basate su TTL dal flusso di modifiche.
Rimuovi il filtro di eliminazione basato su TTL da un flusso di modifiche esistente
GoogleSQL
Per rimuovere il filtro di eliminazione basato su TTL a un flusso 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 flusso di modifiche
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene rimosso da una modifica in tempo reale esistente denominata NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
Sono incluse tutte le eliminazioni future basate su TTL del flusso di modifiche.
Puoi anche impostare il filtro su null
per rimuovere il filtro di eliminazione basato su TTL.
PostgreSQL
Per rimuovere il filtro di eliminazione basato su TTL a un flusso 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 flusso di modifiche
Nell'esempio seguente, il filtro exclude_ttl_deletes
viene rimosso da una modifica in tempo reale esistente denominata NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = false)
Sono incluse tutte le eliminazioni future basate su TTL del flusso di modifiche.
Puoi anche impostare il filtro su null
per rimuovere il filtro di eliminazione basato su TTL.
Modifica il filtro per tipo di modifica della tabella
Per modificare i filtri del tipo di modifica della tabella per una modifica in tempo reale, imposta il tipo di filtro in un'istruzione DDL ALTER CHANGE STREAM
. Puoi utilizzarlo per aggiungere un nuovo filtro o per rimuovere un filtro esistente dal flusso di modifiche.
Aggiungere un filtro per il tipo di modifica della tabella a un flusso di modifiche esistente
GoogleSQL
Per aggiungere uno o più nuovi filtri del tipo di modifica della tabella a un flusso di modifiche esistente, imposta il filtro true
come indicato di seguito:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del tuo flusso di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituiscilo con il filtro che
vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separa ciascuno con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene aggiunto a un flusso di modifiche esistente denominato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = true)
PostgreSQL
Per aggiungere uno o più nuovi filtri del tipo di modifica della tabella a un flusso di modifiche esistente, imposta il filtro true
come indicato di seguito:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = true)
Sostituisci quanto segue:
- CHANGE_STREAM_NAME: sostituisci con il nome del tuo flusso di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituiscilo con il filtro che
vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separa ciascuno con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene aggiunto a un flusso di modifiche esistente denominato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = true)
Rimuovere un filtro per il tipo di modifica della tabella da un flusso di modifiche esistente
GoogleSQL
Per rimuovere uno o più filtri per il tipo di modifica della tabella esistenti nel flusso di modifiche, utilizza la seguente istruzione 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 tuo flusso di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituiscilo con il filtro da
rimuovere:
exclude_insert
,exclude_update
oexclude_delete
. Se rimuovi più di un filtro alla volta, separa ciascuno con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene rimosso da un flusso di modifiche esistente denominato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = false)
Puoi anche rimuovere un filtro di modifica della tabella impostandolo nuovamente sul valore predefinito. Per farlo, imposta il valore del filtro su null
.
PostgreSQL
Per rimuovere uno o più filtri per il tipo di modifica della tabella esistenti nel flusso di modifiche, utilizza la seguente istruzione 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 tuo flusso di modifiche esistente
- MOD_TYPE_FILTER_NAME: sostituiscilo con il filtro che
vuoi aggiungere:
exclude_insert
,exclude_update
oexclude_delete
. Se aggiungi più di un filtro alla volta, separa ciascuno con una virgola.
Nell'esempio seguente, il filtro exclude_delete
viene rimosso da un flusso di modifiche esistente denominato NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = false)
Puoi anche rimuovere un filtro di modifica della tabella impostandolo nuovamente sul valore predefinito. Per farlo, imposta il valore del filtro su null
.
Sospensione di una modifica in tempo reale
Se vuoi che un flusso di modifiche interrompa la sua attività ma conservi i suoi record interni, almeno per l'intera durata del periodo di conservazione dei dati, puoi modificarlo in modo che non visualizzi nulla.
A questo scopo, emetti un'istruzione DDL ALTER CHANGE STREAM
che sostituisca la definizione della modifica in tempo reale con la frase speciale DROP FOR ALL
.
Ad esempio:
ALTER CHANGE STREAM MyStream DROP FOR ALL;
Il flusso continua a esistere nel database, ma non monitora alcun oggetto e non genera ulteriori record di modifica dei dati. I record delle modifiche esistenti rimangono intatti, soggetti ai criteri di conservazione dei dati dello stream.
Per riprendere uno stream sospeso, invia un'altra istruzione ALTER CHANGE STREAM
con la configurazione precedente.
Eliminare un flusso di modifiche
Per eliminare definitivamente un flusso di modifiche, emetti un'istruzione DROP CHANGE STREAM
che includa il nome del flusso:
DROP CHANGE STREAM NamesAndAlbums;
Spanner interrompe immediatamente il flusso, lo rimuove dallo schema del database ed elimina i record delle modifiche ai dati.
Elenco e visualizzazione delle modifiche in tempo reale
La console Google Cloud offre un'interfaccia web per elencare e rivedere le definizioni delle modifiche in tempo reale di un database. Puoi anche visualizzare la struttura dei modifiche in tempo reale come istruzioni DDL equivalenti o eseguire una query sullo schema di informazioni del database.
Visualizzare modifiche in tempo reale con la console Google Cloud
Per visualizzare un elenco dei modifiche in tempo reale di un database ed esaminarne le definizioni:
Visita la pagina Istanze Spanner della console Google Cloud.
Vai all'istanza e al database appropriati.
Fai clic su Modifica stream nel menu di navigazione.
Viene visualizzato un elenco di tutti i modifiche in tempo reale del database e viene riepilogata la configurazione di ciascuno. Se fai clic sul nome di uno stream, vengono visualizzati ulteriori dettagli sulle tabelle e sulle colonne che controlla.
Visualizza le definizioni delle modifiche in tempo reale come DDL
La visualizzazione dello schema di un database come DDL include le descrizioni di tutti modifiche in tempo reale, dove vengono visualizzate come istruzioni CREATE CHANGE STREAM
.
Per eseguire questa operazione 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.
Query sullo schema di informazioni sulle modifiche in tempo reale
Puoi eseguire una query direttamente sullo schema di informazioni di un database relativo ai suoi modifiche in tempo reale. Le seguenti tabelle contengono i metadati che definiscono i nomi dei modifiche in tempo reale, le tabelle e le colonne monitorate e i relativi periodi di conservazione:
Best practice per le modifiche in tempo reale
Di seguito sono riportate alcune best practice per configurare e gestire i flussi di modifiche.
Considera un database di 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 dal database che contiene le modifiche in tempo reale. Consigliamo di creare un database separato per l'archiviazione dei metadati.
Il connettore di modifiche in tempo reale Spanner deve avere autorizzazioni di lettura e scrittura per il database di metadati. Non è necessario preparare questo database con uno schema, poiché se ne occupa il connettore.
L'utilizzo di un database di metadati separato elimina le complessità che potrebbero derivare dal consentire al connettore di scrivere direttamente nel database dell'applicazione:
Separando il database di metadati dal database di produzione con il flusso di modifiche, il connettore ha bisogno solo delle autorizzazioni di lettura per il database di produzione.
Limitando il traffico del connettore a un database di metadati separato, le scritture eseguite dal connettore stesso non vengono incluse nei modifiche in tempo reale di produzione. Ciò è particolarmente importante per modifiche in tempo reale che controllano l'intero database.
Se non viene utilizzato un database separato per archiviare i metadati, ti consigliamo di monitorare l'impatto della CPU del connettore di modifiche in tempo reale sulle relative istanze.
Confronta le nuove 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 temporanea con flussi di modifiche abilitati. Ciò consente di determinare se è necessario aggiungere nodi all'istanza, per aumentarne le capacità di calcolo e archiviazione.
Esegui questi test finché le metriche di CPU e spazio di archiviazione non si stabilizzano. In modo ottimale, l'utilizzo della CPU dell'istanza deve rimanere entro i limiti massimi consigliati e l'utilizzo dello spazio di archiviazione non deve superare il limite di spazio di archiviazione dell'istanza.
Utilizza regioni diverse per il bilanciamento del carico
Quando utilizzi modifiche in tempo reale in una configurazione di istanze multiregionali, valuta la possibilità di eseguire le proprie pipeline di elaborazione in una regione diversa da quella principale predefinita. Ciò consente di distribuire il carico dei flussi di dati tra le repliche non leader. Tuttavia, se hai bisogno di dare la priorità al minor ritardo di streaming possibile rispetto al bilanciamento del carico, esegui il carico del flusso nella regione leader.
Passaggi successivi
Utilizza i modelli per connettere rapidamente un flusso di modifiche a BigQuery, Cloud Storage o Pub/Sub.