Änderungsstreams erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie Spanner-Änderungen erstellen, ändern und aufrufen 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 einen langlaufenden Vorgang, nachdem Sie eine DDL-Anweisung zum Ändern des Schemas gesendet haben. Dazu gehören auch Anweisungen zum Erstellen, Ändern oder Löschen von Änderungsstreams. Ein neuer oder geänderter Änderungsstream überwacht nach Abschluss dieses langwierigen Vorgangs die in der neuen Konfiguration angegebenen Spalten oder Tabellen.

Änderungsstream erstellen

Zum Erstellen eines Änderungsstreams müssen Sie seinen Namen und das Schema angeben Objekte, die überwacht werden sollen: entweder die gesamte Datenbank oder eine Liste bestimmter Tabellen und Spalten. Optional können Sie Folgendes angeben:

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 der langlaufende Vorgang, durch den er erstellt wurde, abgeschlossen ist.

Die folgenden Beispiele veranschaulichen die Erstellung von Änderungsstreams mit verschiedene Konfigurationen.

Gesamte Datenbank beobachten

Wenn Sie einen Änderungsstream erstellen möchten, der jede Datenänderung in den Tabellen einer Datenbank überwacht, verwenden Sie das Schlüsselwort ALL:

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 enthält keine Ansichten, Tabellen mit Informationsschemata oder andere Objekte außer normalen Datentabellen.

Bestimmte Tabellen beobachten

Wenn Sie den Umfang eines Änderungsstreams auf bestimmte Tabellen statt auf eine ganze Datenbank beschränken möchten, geben Sie eine Liste mit einer oder mehreren Tabellen an:

CREATE CHANGE STREAM SingerAlbumStream
FOR Singers, Albums;

Spanner aktualisiert automatisch Änderungsstreams, die ganze Tabellen beobachten, um alle Schemaänderungen zu berücksichtigen, die sich auf diese Tabellen auswirken, z. B. hinzugefügte oder gelöschte 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 einzigen Stream ansehen

Sie können die Syntax für die Tabellen- und Spaltenbeobachtung aus den beiden vorherigen Beispielen in einem einzigen Änderungsstream kombinieren:

CREATE CHANGE STREAM NamesAndAlbums
FOR Singers(FirstName, LastName), Albums;

Längere Aufbewahrungsdauer angeben

Wenn Sie eine Aufbewahrungsdauer für Änderungsstream-Daten festlegen möchten, die länger als der Standardzeitraum von einem Tag ist, legen Sie für retention_period einen Zeitraum von bis zu einer Woche fest, 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

Wenn Sie einen anderen Werterfassungstyp für den Änderungsstream als OLD_AND_NEW_VALUES angeben möchten, legen Sie value_capture_type auf NEW_VALUES oder NEW_ROW fest, 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öschungen herausfiltern

Mit dem Filter exclude_ttl_deletes können Sie TTL-basierte Löschvorgänge aus dem Umfang Ihres Änderungsstreams herausfiltern.

Weitere Informationen zur Funktionsweise dieses Filters finden Sie unter Löschfilter auf Grundlage der Gültigkeitsdauer.

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 des neuen Änderungsstreams

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 die Filter des Änderungsstreams prüfen, indem Sie sich 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: alle INSERT-Tabellenänderungen ausschließen
  • exclude_update: alle UPDATE-Tabellenänderungen ausschließen
  • exclude_delete: alle DELETE-Tabellenänderungen ausschließen

Weitere Informationen zur Funktionsweise dieser Filter finden Sie unter Filter für den Tabellenänderungstyp.

GoogleSQL

So erstellen Sie einen Änderungsstream mit einem oder mehreren Filtern für den Tabellenänderungstyp:

CREATE CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
OPTIONS (MOD_TYPE_FILTER_NAME = true)

Ersetzen Sie Folgendes:

  • CHANGE_STREAM_NAME: der Name des neuen Änderungsstreams
  • MOD_TYPE_FILTER_NAME: Der Filter, den Sie hinzufügen möchten: exclude_insert, exclude_update oder exclude_delete. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie sie durch Kommas.

Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream erstellt, der die Tabellenänderungstypen INSERT und UPDATE ausschließt:

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 oder exclude_delete hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie sie durch ein Komma.

Im folgenden Beispiel wird ein Änderungsstream namens NewFilterChangeStream erstellt, der die Transaktionstypen INSERT und UPDATE für die Tabellenänderung ausschließt:

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 den Tabellenänderungstyp für Ihren Änderungsstream vorhanden sind, indem Sie sich Definitionen des Änderungsstreams als DDL ansehen.

Änderungsstream ändern

Verwenden Sie eine ALTER CHANGE STREAM-DDL-Anweisung, 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. Sie können die Wiedergabe auch vollständig pausieren und die Datenänderungsaufzeichnungen beibehalten.

Anpassen, was sich ein Änderungsstream ansieht

In diesem Beispiel wird die gesamte Tabelle Songs dem zuvor konfigurierten Änderungsstream NamesAndAlbums hinzugefügt:

ALTER CHANGE STREAM NamesAndAlbums
SET FOR Singers(FirstName, LastName), Albums, Songs;

Spanner ersetzt das Verhalten des benannten Änderungsstreams durch die neue Konfiguration, sobald der lang andauernde Vorgang abgeschlossen ist. Dadurch wird die Definition des Änderungsstreams im Schema der Datenbank aktualisiert.

Aufbewahrungsdauer für Daten eines Änderungsstreams ändern

Wenn Sie ändern möchten, wie lange die internen Datensätze eines Änderungsstreams aufbewahrt werden, legen Sie die retention_period in einer DDL-Anweisung vom Typ ALTER CHANGE STREAM 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 Erfassungstyp für Werte auf NEW_VALUES angepasst.

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

Wenn Sie einem vorhandenen Änderungsstream den TTL-basierten Löschfilter hinzufügen möchten, legen Sie den Filter mit der folgenden Anweisung auf true fest:

ALTER CHANGE STREAM CHANGE_STREAM_NAME FOR ALL
SET OPTIONS (exclude_ttl_deletes = true)

Ersetzen Sie Folgendes:

  • CHANGE_STREAM_NAME: Name des vorhandenen Änderungsstreams

Im folgenden Beispiel wird der Filter exclude_ttl_deletes einem vorhandenen Änderungsstream namens NewFilterChangeStream hinzugefügt, 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

Wenn Sie einem vorhandenen Änderungsstream den TTL-basierten Löschfilter hinzufügen möchten, legen Sie den Filter mit der folgenden Anweisung auf True fest:

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 vorhandenen Änderungsstream namens NewFilterChangeStream hinzugefügt:

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

Wenn Sie den TTL-basierten Löschfilter aus einem vorhandenen Änderungsstream entfernen möchten, setzen Sie den Filter mit dem folgenden Befehl auf False:

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 einem vorhandener Änderungsstream namens NewFilterChangeStream:

ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET OPTIONS (exclude_ttl_deletes = false)

Dazu gehören alle zukünftigen TTL-basierten Löschvorgänge im Änderungsstream.

Sie können den Filter auch auf null setzen, um den TTL-basierten Löschfilter zu entfernen.

PostgreSQL

Wenn Sie den TTL-basierten Löschfilter aus einem vorhandenen Änderungsstream entfernen möchten, setzen Sie den Filter mit dem folgenden Befehl auf False:

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 einem vorhandener Änderungsstream namens NewFilterChangeStream:

ALTER CHANGE STREAM NewFilterChangeStream FOR ALL
SET (exclude_ttl_deletes = false)

Dazu gehören alle zukünftigen TTL-basierten Löschvorgänge im Änderungsstream.

Sie können den Filter auch auf null setzen, um den TTL-basierten Löschfilter zu entfernen.

Filter nach Art der Tabellenänderung ändern

Wenn Sie die Filter für den Tabellenänderungstyp für einen Änderungsstream ändern möchten, legen Sie den Filtertyp in einer ALTER CHANGE STREAM-DDL-Anweisung fest. Sie können diese um dem Änderungsstream einen neuen Filter hinzuzufügen oder einen vorhandenen Filter daraus zu entfernen.

Einem vorhandenen Änderungsstream einen Filter für den Tabellenänderungstyp hinzufügen

GoogleSQL

Wenn Sie einem vorhandenen Änderungsstream einen oder mehrere neue Filter für den Tabellenänderungstyp hinzufügen möchten, setzen Sie den Filter auf true:

ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET OPTIONS (MOD_TYPE_FILTER_NAME = true)

Ersetzen Sie Folgendes:

  • CHANGE_STREAM_NAME: Ersetzen Sie diesen Parameter durch den Namen Ihres vorhandenen Änderungsstreams.
  • MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen exclude_insert, exclude_update oder exclude_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 hinzugefügt:

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: Ersetzen Sie diesen Parameter durch den Namen Ihres vorhandenen Änderungsstreams.
  • MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen exclude_insert, exclude_update oder exclude_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: Ersetzen Sie diesen Parameter durch den Namen Ihres vorhandenen Änderungsstreams.
  • MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen exclude_insert, exclude_update oder exclude_delete entfernen. Wenn Sie mehrere Filter gleichzeitig entfernen, trennen Sie sie durch Kommas.

Im folgenden Beispiel wird der Filter exclude_delete aus einem vorhandenen Änderungsstream namens NewFilterChangeStream entfernt:

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

Wenn Sie einen oder mehrere vorhandene Filter für den Tabellenänderungstyp im Änderungsstream entfernen möchten, setzen Sie den Filter auf False:

ALTER CHANGE STREAM CHANGE_STREAM_NAME
SET (MOD_TYPE_FILTER_NAME = false)

Ersetzen Sie Folgendes:

  • CHANGE_STREAM_NAME: Ersetzen Sie diesen Parameter durch den Namen Ihres vorhandenen Änderungsstreams.
  • MOD_TYPE_FILTER_NAME: durch den eigenen Filter ersetzen exclude_insert, exclude_update oder exclude_delete hinzufügen. Wenn Sie mehrere Filter gleichzeitig hinzufügen, trennen Sie sie 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 Filter für Tabellenänderungen auch entfernen, indem Sie den Filter 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 bleibt in der Datenbank erhalten, überwacht aber keine Objekte und generiert keine weiteren Datenänderungseinträge. Bestehende Änderung Datensätze bleiben gemäß den Aufbewahrungsrichtlinien des Streams intakt.

Wenn du einen angehaltenen Stream fortsetzen möchtest, gib eine weitere ALTER CHANGE STREAM-Anweisung mit der vorherigen Konfiguration aus.

Änderungsstream löschen

Wenn Sie einen Änderungsstream endgültig löschen möchten, geben Sie eine DROP CHANGE STREAM-Anweisung mit dem Namen des Streams aus:

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 sich die Struktur von Änderungsstreams auch als entsprechende DDL-Anweisungen ansehen oder das Informationsschema der Datenbank abfragen.

Änderungsstreams mit der Google Cloud Console ansehen

So rufen Sie eine Liste der Änderungsstreams einer Datenbank und ihre Definitionen auf:

  1. Rufen Sie in der Google Cloud Console die Seite „Spanner-Instanzen“ auf.

    Weiter zur Seite "Instanzen"

  2. Rufen Sie die entsprechende Instanz und Datenbank auf.

  3. Klicken Sie im Navigationsmenü auf Streams ändern.

Daraufhin wird eine Liste aller Änderungsstreams dieser Datenbank angezeigt und die Konfiguration jedes einzelnen wird zusammengefasst. 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 Google Cloud Console auf der Seite der Datenbank auf den Link Äquivalente DDL anzeigen.

  • Um dies über die Befehlszeile zu tun, verwenden Sie den Befehl ddl describe der Google Cloud CLI

Informationsschema zu Änderungsstreams abfragen

Sie können das Informationsschema einer Datenbank direkt auf Änderungsstreams abfragen. Die folgenden Tabellen enthalten die Metadaten, die die Namen von Änderungsstreams, die beobachteten Tabellen und Spalten sowie die Aufbewahrungszeiträume definieren:

Best Practices für Änderungsstreams

Im Folgenden finden Sie einige Best Practices für die Konfiguration und Verwaltung von Änderungsstreams.

Separate Metadatendatenbank in Betracht ziehen

Ä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.

Wenn Sie eine separate Metadatendatenbank verwenden, können Sie Probleme vermeiden, die durch das direkte Schreiben des Connectors in Ihre Anwendungsdatenbank entstehen können:

  • Da die Metadatenbank von der Produktionsdatenbank mit dem Änderungsstream getrennt ist, benötigt der Connector nur 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. 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 Ihrer Instanz Knoten hinzufügen müssen, um die Rechen- und Speicherkapazität zu erhöhen.

Führen Sie diese Tests so lange durch, bis sich die CPU- und Speichermesswerte stabilisiert haben. Optimalerweise sollte die CPU-Auslastung der Instanz unter den empfohlenen Höchstwerten bleiben und die Speichernutzung darf das Speicherlimit der Instanz nicht überschreiten.

Unterschiedliche Regionen für das Load Balancing verwenden

Wenn Sie Änderungsstreams in einer Konfiguration mit mehreren Regionen verwenden, sollten Sie die Verarbeitungspipelines in einer anderen Region als der standardmäßigen führenden Region ausführen. 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