Auf dieser Seite wird beschrieben, wie Sie Spanner-Änderungen erstellen, ändern und ansehen können Streams. Weitere Informationen zu Änderungsstreams
Da Änderungsstreams Schemaobjekte sind, werden sie von Ihnen erstellt und verwaltet. über dasselbe DDL-gesteuerte Schema Updates für andere Arten von wie etwa das Erstellen von Tabellen oder das Hinzufügen von Indexen.
Spanner startet eine lang andauernde , nachdem Sie senden Sie eine Schemaänderungs-DDL-Anweisung, Änderungsstreams ändern oder löschen. Ein neuer oder geänderter Änderungsstream Die durch die neue Konfiguration festgelegten Spalten oder Tabellen beobachten nach Abschluss dieses lang andauernden Vorgangs.
Änderungsstream erstellen
Zum Erstellen eines Änderungsstreams müssen Sie dessen Namen und Schema angeben Objekte, die überwacht werden sollen: entweder die gesamte Datenbank oder eine Liste bestimmter Tabellen und Spalten. Sie können optional Folgendes angeben:
- Aufbewahrungsdauer, um die Aufbewahrungsfrist von einem Tag zu überschreiben standardmäßige Aufbewahrungsdauer
- Werterfassungstyp zum Überschreiben des Standardwerts
Erfassungstyp
OLD_AND_NEW_VALUES
. - Filter für TTL-basierte Löschungen, wenn Sie die Daten herausfiltern möchten TTL-basierte Löschvorgänge aus Änderungsstreams
Tabellenänderungen ausschließen, die ausgeschlossen werden sollen alle Tabellenänderungen für
INSERT
,UPDATE
oderDELETE
GoogleSQL
Die DDL-Syntax zum Erstellen eines Änderungsstreams mit GoogleSQL sieht aus wie hier:
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
Die DDL-Syntax zum Erstellen eines Änderungsstreams mit PostgreSQL sieht aus wie hier:
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 ) ]
Ein neuer Änderungsstream beginnt, die zugewiesenen Schemaobjekte zu beobachten, sobald da der Vorgang mit langer Ausführungszeit, der ihn erstellt hat, abgeschlossen ist.
Die folgenden Beispiele veranschaulichen die Erstellung von Änderungsstreams mit verschiedene Konfigurationen.
Gesamte Datenbank beobachten
Um einen Änderungsstream zu erstellen, der jede durchgeführte Datenänderung erfasst
in allen Tabellen einer Datenbank das Schlüsselwort ALL
verwenden:
CREATE CHANGE STREAM EverythingStream
FOR ALL;
Die Konfiguration ALL
implizit
enthält alle zukünftigen Daten der Datenbank
Tabellen und Spalten hinzufügen, sobald sie erstellt wurden. Es muss nicht
beinhalten Ansichten, Informationsschematabellen oder
andere Objekte als normale Datentabellen verwenden.
Bestimmte Tabellen beobachten
Wenn Sie den Umfang eines Änderungsstreams auf bestimmte Tabellen beschränken möchten, als eine ganze Datenbank, geben Sie eine Liste mit einer oder mehreren Tabellen:
CREATE CHANGE STREAM SingerAlbumStream
FOR Singers, Albums;
Spanner aktualisiert Änderung automatisch Streams, die ganze Tabellen beobachten, um Schemaänderungen widerzuspiegeln, die sich auf z. B. hinzugefügte oder entfernte Spalten.
Bestimmte Spalten beobachten
Verwenden Sie die Syntax table(column_1[, column_2,
...])
, um Änderungen an einem oder mehreren
Nicht-Schlüsselspalten in Tabellen, die Sie benennen:
CREATE CHANGE STREAM NamesAndTitles
FOR Singers(FirstName, LastName), Albums(Title);
Sie können hier keine Primärschlüsselspalten angeben, da jeder Änderungsstream immer die Primärschlüssel jeder überwachten Tabelle. Dadurch können Sie um die geänderte Zeile anhand ihres Primärschlüssels zu identifizieren.
Tabellen und Spalten in einem Stream beobachten
Sie können die Tabellen- und Spaltenüberwachungssyntax aus den beiden vorherigen Beispielen in einem einzigen Änderungsstream kombinieren:
CREATE CHANGE STREAM NamesAndAlbums
FOR Singers(FirstName, LastName), Albums;
Längere Aufbewahrungsdauer festlegen
Aufbewahrungsdauer für Änderungsstreamdaten festlegen
länger als der Standardwert von einem Tag ist, legen Sie für retention_period
einen Zeitraum fest
von bis zu einer Woche, ausgedrückt in Stunden (h
) oder Tagen (d
).
Zwei Beispiele:
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' );
Anderen Werterfassungstyp angeben
So legen Sie einen Werterfassungstyp für den Änderungsstream fest:
OLD_AND_NEW_VALUES
festgelegt haben, legen Sie für value_capture_type
entweder
NEW_VALUES
oder NEW_ROW
, wie in den folgenden Beispielen gezeigt:
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' );
TTL-basierte Löschvorgänge filtern
Sie können TTL-basierte Löschvorgänge filtern.
mit dem Filter exclude_ttl_deletes
aus dem Umfang des Änderungsstreams entfernen.
Weitere Informationen zur Funktionsweise dieses Filters finden Sie unter Filter für zeitbasierte Löschvorgänge:
GoogleSQL
So erstellen Sie einen Änderungsstream mit dem TTL-basierten Löschfilter:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (exclude_ttl_deletes = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: der Name Ihres neuen Änderungsstream
Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream
erstellt
der alle TTL-basierten Löschvorgänge ausschließt:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_ttl_deletes = true)
PostgreSQL
So erstellen Sie einen Änderungsstream mit dem TTL-basierten Löschfilter:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (exclude_ttl_deletes = true)
Ersetzen Sie Folgendes:
- STREAM_NAME: der Name Ihres neuen Änderungsstream
Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream
erstellt
der alle TTL-basierten Löschvorgänge ausschließt:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_ttl_deletes = true)
So fügen Sie den TTL-basierten Löschfilter zu einem vorhandenen Filter hinzu oder entfernen ihn Änderungsstream finden Sie unter Filter für TTL-basierte Löschvorgänge ändern. Sie können Ihre Änderungsstreamfilter bestätigen, indem Sie Definitionen des Änderungsstreams als DDL ansehen
Nach Tabellenänderungstyp filtern
Filtern Sie eine oder mehrere dieser Tabellenänderungen aus Ihrem den Umfang des Streams mithilfe der folgenden verfügbaren Filteroptionen ändern:
exclude_insert
: AlleINSERT
-Tabellenänderungen ausschließenexclude_update
: AlleUPDATE
-Tabellenänderungen ausschließenexclude_delete
: AlleDELETE
-Tabellenänderungen ausschließen
Weitere Informationen zur Funktionsweise dieser Filter finden Sie unter Filter für Tabellenänderungstyp.
GoogleSQL
So erstellen Sie einen Änderungsstream mit einem oder mehreren Tabellenänderungstypen verwenden, verwenden Sie Folgendes:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (MOD_TYPE_FILTER_NAME = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: der Name Ihres neuen Änderungsstream
- MOD_TYPE_FILTER_NAME: der Filter, den Sie
exclude_insert
,exclude_update
oderexclude_delete
hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie die einzelnen Filter durch Kommas.
Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream
erstellt
in dem die Tabellenänderungstypen INSERT
und UPDATE
ausgeschlossen sind:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
OPTIONS (exclude_insert = true, exclude_update = true)
PostgreSQL
So erstellen Sie einen Änderungsstream mit einem oder mehreren Tabellenänderungstypen verwenden, verwenden Sie Folgendes:
CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
WITH (MOD_TYPE_FILTER_NAME = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: der Name Ihrer vorhandenen Änderungsstream
- MOD_TYPE_FILTER_NAME: der Filter, den Sie
exclude_insert
,exclude_update
oderexclude_delete
hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie die einzelnen Filter durch Kommas.
Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream
erstellt
in dem die Tabellenänderungen INSERT
und UPDATE
ausgeschlossen sind
Transaktionstypen:
CREATE CHANGE STREAM NewFilterChangeStream FOR ALL
WITH (exclude_insert = true, exclude_update = true)
So fügen Sie einem vorhandenen Filter einen Tabellenänderungstyp hinzu oder entfernen ihn daraus: Änderungsstream finden Sie unter Filter nach Tabellenänderungstyp ändern. Sie können prüfen, welche Filter für Tabellenänderungstypen Änderungsstream von Definitionen des Änderungsstreams als DDL ansehen
Änderungsstream ändern
Verwenden Sie eine ALTER CHANGE STREAM
-DDL, um die Konfiguration eines Änderungsstreams zu ändern
. Sie verwendet eine ähnliche Syntax wie CREATE CHANGE STREAM
. Sie können
Sie können ändern, welche Spalten sich ein Stream ansieht, oder die Länge seiner Daten ändern.
Aufbewahrungsdauer. Du kannst die Wiedergabe auch komplett aussetzen,
und Aufbewahrung ihrer
Datenänderungsaufzeichnungen.
Anpassen, was sich ein Änderungsstream ansieht
In diesem Beispiel wird die gesamte Songs
-Tabelle zum NamesAndAlbums
hinzugefügt.
zuvor konfigurierter Änderungsstream:
ALTER CHANGE STREAM NamesAndAlbums
SET FOR Singers(FirstName, LastName), Albums, Songs;
Spanner ersetzt das Verhalten des benannten Änderungsstreams durch die neue Konfiguration nach Abschluss des lang andauernden Vorgangs die die Definition des Änderungsstreams in der Datenbank Schema.
Aufbewahrungsdauer für Daten eines Änderungsstreams ändern
Um zu ändern, wie lange ein Änderungsstream seine internen
-Einträge enthält, legen Sie den retention_period
in einer ALTER CHANGE STREAM
-DDL-Anweisung fest.
In diesem Beispiel wird die Aufbewahrungsdauer für die NamesAndAlbums
angepasst.
Zuvor erstellter Änderungsstream:
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( retention_period = '36h' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( retention_period = '36h' );
Werterfassungstyp eines Änderungsstreams ändern
Um den Werterfassungstyp eines Änderungsstreams zu ändern, legen Sie den Parameter
value_capture_type
-Klausel in einer ALTER CHANGE STREAM
-DDL-Anweisung.
In diesem Beispiel wird der Werterfassungstyp auf NEW_VALUES
geändert.
GoogleSQL
ALTER CHANGE STREAM NamesAndAlbums
SET OPTIONS ( value_capture_type = 'NEW_VALUES' );
PostgreSQL
ALTER CHANGE STREAM NamesAndAlbums
SET ( value_capture_type = 'NEW_VALUES' );
Filter für TTL-basierte Löschvorgänge ändern
Filter TTL-basierte Löschungen für eine Änderung anpassen
Stream, legen Sie den Filter exclude_ttl_deletes
in einer ALTER CHANGE STREAM
-DDL fest.
. Hiermit können Sie den Filter hinzufügen oder den Filter entfernen
Ihren bestehenden Änderungsstreams.
Weitere Informationen zur Funktionsweise dieser Filter finden Sie unter Filter für zeitbasierte Löschvorgänge:
Filter für TTL-basierte Löschungen einem vorhandenen Änderungsstream hinzufügen
GoogleSQL
So fügen Sie einem vorhandenen Änderungsstream den Filter für TTL-basierte Löschvorgänge hinzu:
Verwenden Sie den folgenden Code, um den Filter auf true
festzulegen:
ALTER CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: der Name Ihrer vorhandenen Änderungsstream
Im folgenden Beispiel wird der Filter exclude_ttl_deletes
einem
vorhandener Änderungsstream namens NewFilterChangeStream
:
der alle TTL-basierten Löschvorgänge ausschließt:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)
Dadurch werden alle TTL-basierten Löschvorgänge aus dem Änderungsstream ausgeschlossen.
PostgreSQL
So fügen Sie einem vorhandenen Änderungsstream den Filter für TTL-basierte Löschvorgänge hinzu:
Verwenden Sie den folgenden Code, um den Filter auf True
festzulegen:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = true)
Ersetzen Sie Folgendes:
- STREAM_NAME: der Name Ihrer vorhandenen Änderungsstream
Im folgenden Beispiel wird der Filter exclude_ttl_deletes
einem
vorhandener Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = true)
Dadurch werden alle zukünftigen TTL-basierten Löschvorgänge aus dem Änderungsstream ausgeschlossen.
Filter für TTL-basierte Löschungen aus einem vorhandenen Änderungsstream entfernen
GoogleSQL
So entfernen Sie den Filter für TTL-basierte Löschungen aus einem vorhandenen Änderungsstream:
Verwenden Sie den folgenden Code, um den Filter auf False
festzulegen:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
Ersetzen Sie Folgendes:
- STREAM_NAME: der Name Ihres neuen Änderungsstream
Im folgenden Beispiel wird der Filter exclude_ttl_deletes
aus einer
vorhandener Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)
Dies schließt alle zukünftigen TTL-basierten Löschvorgänge im Änderungsstream ein.
Sie können den Filter auch auf null
setzen, um den Filter für TTL-basierte Löschungen zu entfernen.
PostgreSQL
So entfernen Sie den Filter für TTL-basierte Löschungen aus einem vorhandenen Änderungsstream:
Verwenden Sie den folgenden Code, um den Filter auf False
festzulegen:
ALTER CHANGE STREAM STREAM_NAME FOR ALL
SET (exclude_ttl_deletes = false)
Ersetzen Sie Folgendes:
- STREAM_NAME: der Name Ihres neuen Änderungsstream
Im folgenden Beispiel wird der Filter exclude_ttl_deletes
aus einer
vorhandener Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = false)
Dies schließt alle zukünftigen TTL-basierten Löschvorgänge im Änderungsstream ein.
Sie können den Filter auch auf null
setzen, um den Filter für TTL-basierte Löschungen zu entfernen.
Filter nach Tabellenänderungstyp ändern
So ändern Sie die Filter für Tabellenänderungstypen für einen Änderungsstream:
Legen Sie den Filtertyp in der DDL-Anweisung ALTER CHANGE STREAM
fest. Sie können diese
um dem Änderungsstream einen neuen Filter hinzuzufügen oder einen vorhandenen Filter daraus zu entfernen.
Filter für Tabellenänderungstyp einem vorhandenen Änderungsstream hinzufügen
GoogleSQL
So fügen Sie einem vorhandenen Filter einen oder mehrere Filter vom Typ „Tabellenänderungstyp“ hinzu:
Änderungsstream verwenden, um den Filter auf true
festzulegen:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: durch den Namen der vorhandenen ersetzen Änderungsstream
- MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen
exclude_insert
,exclude_update
oderexclude_delete
hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie sie durch Kommas.
Im folgenden Beispiel wird der Filter exclude_delete
einem vorhandenen
Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = true)
PostgreSQL
So fügen Sie einem vorhandenen Filter einen oder mehrere Filter vom Typ „Tabellenänderungstyp“ hinzu:
Änderungsstream verwenden, um den Filter auf true
festzulegen:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = true)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: durch den Namen der vorhandenen ersetzen Änderungsstream
- MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen
exclude_insert
,exclude_update
oderexclude_delete
hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie sie durch Kommas.
Im folgenden Beispiel wird der Filter exclude_delete
einem vorhandenen
Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = true)
Filter für Tabellenänderungstyp aus einem vorhandenen Änderungsstream entfernen
GoogleSQL
Um einen oder mehrere Filter vom Typ
Tabellenänderungstyp zu entfernen,
Änderungsstream verwenden, um den Filter auf false
festzulegen:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = false)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: durch den Namen der vorhandenen ersetzen Änderungsstream
- MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen
exclude_insert
,exclude_update
oderexclude_delete
entfernen. Wenn Sie mehrere Filter gleichzeitig entfernen, trennen Sie sie durch Kommas.
Im folgenden Beispiel wird der Filter exclude_delete
aus einer vorhandenen
Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET OPTIONS (exclude_delete = false)
Sie können einen Tabellenänderungsfilter auch entfernen, indem Sie den Filter festlegen
auf den Standardwert zurücksetzen. Legen Sie dazu den Filterwert auf null
fest.
PostgreSQL
Um einen oder mehrere Filter vom Typ
Tabellenänderungstyp zu entfernen,
Änderungsstream verwenden, um den Filter auf False
festzulegen:
ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = false)
Ersetzen Sie Folgendes:
- CHANGE_STREAM_NAME: durch den Namen der vorhandenen ersetzen Änderungsstream
- MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen
exclude_insert
,exclude_update
oderexclude_delete
hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie die einzelnen Filter durch Kommas.
Im folgenden Beispiel wird der Filter exclude_delete
aus einer vorhandenen
Änderungsstream namens NewFilterChangeStream
:
ALTER CHANGE STREAM NewFilterChangeStream
SET (exclude_delete = false)
Sie können einen Tabellenänderungsfilter auch entfernen, indem Sie den Filter festlegen
auf den Standardwert zurücksetzen. Legen Sie dazu den Filterwert auf null
fest.
Änderungsstream aussetzen
Wenn Sie möchten, dass ein Änderungsstream seine Aktivität stoppt, interne Aufzeichnungen – zumindest für die Dauer der Datenaufbewahrungsdauer –, das Video so verändert, dass es nichts ansieht.
Dazu geben Sie die DDL-Anweisung ALTER CHANGE STREAM
aus, die
die Definition des Änderungsstreams mit der speziellen Wortgruppe DROP FOR ALL
.
Beispiel:
ALTER CHANGE STREAM MyStream DROP FOR ALL;
Der Stream ist weiterhin in der Datenbank vorhanden, beobachtet jedoch keine Objekte. und generiert keine weiteren Datensätze für Änderungen. Bestehende Änderung Datensätze bleiben gemäß den Aufbewahrungsrichtlinien des Streams intakt.
Wenn du einen gesperrten Stream fortsetzen möchtest, musst du einen weiteren ALTER CHANGE STREAM
senden
durch die vorherige Konfiguration ersetzt.
Änderungsstream löschen
Wenn Sie einen Änderungsstream endgültig löschen möchten, senden Sie einen DROP CHANGE STREAM
, die den Namen des Streams enthält:
DROP CHANGE STREAM NamesAndAlbums;
Spanner stoppt den Stream sofort und entfernt ihn aus dem in das Schema der Datenbank und löscht deren Datenänderungseinträge.
Änderungsstreams auflisten und ansehen
Die Google Cloud Console bietet eine Weboberfläche zum Auflisten und Überprüfung der Definitionen des Änderungsstreams einer Datenbank. Sie können auch die Struktur von Änderungsstreams als äquivalente DDL-Anweisungen oder durch Abfrage des Informationsschemas der Datenbank.
Änderungsstreams mit der Google Cloud Console ansehen
So rufen Sie eine Liste der Änderungsstreams einer Datenbank und deren Definitionen auf:
Rufen Sie in der Google Cloud Console die Seite mit den Spanner-Instanzen auf.
Rufen Sie die entsprechende Instanz und Datenbank auf.
Klicken Sie im Navigationsmenü auf Streams ändern.
Daraufhin wird eine Liste aller Änderungsstreams dieser Datenbank angezeigt. fasst die Konfiguration der einzelnen Elemente zusammen. Auf den Namen eines Streams klicken finden Sie weitere Details zu den beobachteten Tabellen und Spalten.
Definitionen von Änderungsstreams als DDL ansehen
Das Anzeigen eines Datenbankschemas als DDL enthält Beschreibungen aller
Änderungsstreams, in denen sie als CREATE CHANGE STREAM
-Anweisungen erscheinen.
Klicken Sie dazu in der Konsole auf den Link Entsprechende DDL anzeigen auf auf der Seite der Datenbank in der Google Cloud Console.
Um dies über die Befehlszeile zu tun, verwenden Sie den Befehl
ddl describe
der Google Cloud CLI
Informationsschema zu Änderungsstreams abfragen
Sie können die Informationen einer Datenbank direkt abfragen Schema zu seinen Änderungsstreams. Die enthalten die Metadaten, mit denen die Änderungsstreams definiert werden, Namen, Tabellen und Spalten, die überwacht werden, sowie Zeiträume:
Best Practices für Änderungsstreams
Im Folgenden finden Sie einige Best Practices zum Konfigurieren und Verwalten von Änderungen Streams.
Separate Metadatendatenbank verwenden
Änderungsstreams verwenden eine Metadatendatenbank, um den internen Status aufrechtzuerhalten. Die Metadatendatenbank kann mit der Datenbank identisch sein oder davon abweichen. enthält die Änderungsstreams. Wir empfehlen die Erstellung einer separaten Datenbank Metadatenspeicher.
Der Spanner-Connector für Änderungsstreams benötigt Lese-/Schreibzugriff Berechtigungen für die Metadaten-Datenbank. Eine Vorbereitung ist nicht erforderlich. Datenbank mit einem Schema; erledigt der Connector das.
Durch die Verwendung einer separaten Metadatendatenbank werden mögliche Komplexitäten vermieden. direkt in die Anwendungsdatenbank schreiben kann:
Durch die Trennung der Metadatendatenbank von der Produktionsdatenbank mit dem Änderungsstream hat, muss der Connector Leseberechtigungen für die Produktionsdatenbank.
Indem der Traffic des Connectors auf separate Metadaten beschränkt wird Datenbank schreiben, werden vom Connector selbst ausgeführte Schreibvorgänge nicht berücksichtigt in der Produktion eingesetzt wird. Das ist insbesondere bei Änderungsstreams relevant. die die gesamte Datenbank beobachten.
Wenn keine separate Datenbank zum Speichern der Metadaten verwendet wird, empfehlen wir, Monitoring der CPU-Auswirkungen des Änderungsstream-Connectors auf ihre Instanzen.
Benchmarks für neue Änderungsstreams ansehen und bei Bedarf die Größe anpassen
Bevor Sie Ihrer Produktionsinstanz neue Änderungsstreams hinzufügen, sollten Sie Benchmarking einer realistischen Arbeitslast auf einer Staging-Instanz mit Änderungen Streams aktiviert. So können Sie feststellen, ob Sie Knoten hinzufügen müssen zu Ihrer Instanz hinzufügen, um die Rechen- und Speicherkapazität Kapazitäten.
Führen Sie diese Tests aus, bis sich die CPU- und Speichermesswerte stabilisiert haben. Idealerweise sollte die sollte die CPU-Auslastung der Instanz unter die empfohlenen Höchstwerte und ihre Speichernutzung das Speicherlimit der Instanz nicht überschreiten sollte.
Verschiedene Regionen für das Load-Balancing verwenden
Wenn Sie Änderungsstreams in einem Multiregionale Instanzkonfiguration sollten Sie erwägen, Verarbeitungspipelines in einer anderen Region als der standardmäßige Leader Region Dies hilft bei der Verteilung der Streaminglast auf Replikate, die nicht als Leader fungieren. Wenn müssen Sie die geringstmögliche Streaming-Verzögerung führen Sie die Streaminglast jedoch in der führenden Region aus.
Nächste Schritte
Vorlagen verwenden einen Änderungsstream schnell mit BigQuery, Cloud Storage, oder Pub/Sub.