Auf dieser Seite wird beschrieben, wie Sie Datenplatzierungen in Spanner erstellen und verwalten.
Weitere Informationen zur Funktionsweise der geografischen Partitionierung finden Sie unter Geografische Partitionierung – Übersicht.
Datenplatzierung erstellen
Nachdem Sie Ihre Spanner-Instanzpartitionen und Datenbanken erstellt haben, erstellen Sie die Platzierung.
Console
Rufen Sie in der Google Cloud Console die Seite Instanzen auf.
Wählen Sie die Instanz mit den vom Nutzer erstellten Instanzpartitionen aus.
Wählen Sie die Datenbank aus, in der Sie Daten partitionieren möchten.
Klicken Sie im Navigationsmenü auf Spanner Studio.
Klicken Sie auf der Seite Spanner Studio auf
Neuer Tab oder verwenden Sie den leeren Editor-Tab.Geben Sie die
CREATE PLACEMENT
-DDL-Anweisung (GoogleSQL, PostgreSQL) ein.Sie können beispielsweise den folgenden Befehl ausführen, um in der Instanzpartition
europe-partition
eine Placement-Tabelleeuropeplacement
zu erstellen:GoogleSQL
CREATE PLACEMENT europeplacement OPTIONS (instance_partition="europe-partition");
PostgreSQL
CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');
Optional: Sie können auch den Bereich Object Explorer verwenden, um Ihre Placement-Objekte aufzurufen, danach zu suchen und mit ihnen zu interagieren. Weitere Informationen finden Sie unter Daten untersuchen.
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie gcloud spanner databases ddl update
, um eine Platzierung mit dem gcloud CLI-Befehl zu erstellen.
Erstellen Sie beispielsweise ein Placement in der Instanzpartition europe-partition
:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition')"
Standardmäßigen Leader für ein Placement festlegen
Sie können die standardmäßige führende Region einer Platzierung festlegen, wenn sich ihr Standort in einer biregionalen oder multiregionalen Region befindet. Die neue führende Region muss eine der beiden nicht schreibgeschützten Regionen innerhalb des Dual-Region- oder Multiregion-Standorts sein. Weitere Informationen finden Sie in den Tabellen Verfügbare Dual-Region-Konfigurationen und Verfügbare Multi-Region-Konfigurationen.
Wenn Sie keine führende Region festlegen, wird für die Platzierung die Standardregion verwendet, die für den Standort angegeben ist. Eine Liste der führenden Regionen für jeden Dual-Region- oder Multiregion-Standort finden Sie in den Tabellen Verfügbare Dual-Region-Konfigurationen und Verfügbare Multiregion-Konfigurationen. Die standardmäßig führende Region ist mit einem L gekennzeichnet. Die Standardregion für den Leader von nam8
ist beispielsweise Los Angeles(us-west2
). In der folgenden Anleitung wird beschrieben, wie Sie sie auf Oregon(us-west1
) festlegen.
Console
Rufen Sie in der Google Cloud Console die Seite Instanzen auf.
Wählen Sie die Instanz mit den vom Nutzer erstellten Instanzpartitionen aus.
Wählen Sie die Datenbank aus, in der Sie Daten partitionieren möchten.
Klicken Sie im Navigationsmenü auf Spanner Studio.
Klicken Sie auf der Seite Spanner Studio auf
Neuer Tab oder verwenden Sie den leeren Editor-Tab.Geben Sie die
CREATE PLACEMENT
-DDL-Anweisung (GoogleSQL, PostgreSQL) ein.Mit dem folgenden Befehl können Sie beispielsweise eine Placement-Tabelle
nam8placement
in der Instanzpartitionnam8-partition
erstellen, wobei der Standardort des Leaders aufus-west1
festgelegt ist:GoogleSQL
CREATE PLACEMENT `nam8placement` OPTIONS (instance_partition="nam8-partition", default_leader="us-west1");
PostgreSQL
CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1');
Optional: Sie können auch den Bereich Object Explorer verwenden, um Ihre Placement-Objekte aufzurufen, danach zu suchen und mit ihnen zu interagieren. Weitere Informationen finden Sie unter Daten untersuchen.
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie gcloud spanner databases ddl update
, um eine Platzierung mit dem gcloud CLI-Befehl zu erstellen.
Erstellen Sie beispielsweise eine Placement-Tabelle nam8placement
in der Instanzpartition nam8-partition
mit dem Standard-Leader-Standort us-west1
:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement \
OPTIONS (instance_partition='nam8-partition', default_leader='us-west1')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1')"
Datenplatzierung löschen
Bevor Sie einen Placement-Drop durchführen, müssen Sie alle Zeilendaten aus dem Placement entfernen. Danach können Sie die Platzierung über die Google Cloud Konsole oder die gcloud CLI entfernen.
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Geben Sie die
DROP PLACEMENT
-DDL-Anweisung(GoogleSQL, PostgreSQL) ein.Sie können beispielsweise den folgenden Befehl ausführen, um die Placement-Tabelle
europeplacement
zu löschen:GoogleSQL
DROP PLACEMENT europeplacement;
PostgreSQL
DROP PLACEMENT europeplacement;
gcloud
Verwenden Sie gcloud spanner databases ddl update
, um einen Placement mit dem gcloud CLI-Befehl zu entfernen.
So löschen Sie beispielsweise das Drop-Placement europeplacement
:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP PLACEMENT europeplacement"
Fehler bei der Platzierung von Drops
Wenn das Placement verwendet wird, schlägt der Vorgang DROP PLACEMENT
mit einer Fehlermeldung wie „Anweisung fehlgeschlagen: Placement PLACEMENT_NAME kann nicht gelöscht werden, da es von der Placement-Tabelle PLACEMENT_TABLE_NAME verwendet wird.“ fehl. Wenn dieser Fehler auftritt, gehen Sie so vor:
- Ändern Sie Ihre Anwendung so, dass keine Zeilen mit dem Placement, das Sie entfernen möchten, mehr eingefügt oder aktualisiert werden.
Entweder:
Verschieben Sie vorhandene Placement-Zeilen, in denen das zu löschende Placement verwendet wird, mit einer partitionierten DML-Anweisung wie der folgenden in ein anderes Placement:
UPDATE PLACEMENT_TABLE_NAME SET LOCATION = NEW_PLACEMENT_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;
Löschen Sie die Platzierungszeilen mit einer partitionierten DML-Anweisung wie der folgenden:
DELETE FROM PLACEMENT_TABLE_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;
Die vorherigen platzierungsspezifischen DML-Anweisungen funktionieren nur mit partitionierter DML. Sie schlagen als reguläre DML-Anweisungen fehl. Weitere Informationen finden Sie unter Einschränkungen. Sie können die Mutations-API auch verwenden, um Platzierungszeilen zu verschieben oder zu entfernen.
DROP PLACEMENT
-Vorgang abbrechen
Sie können einen DROP PLACEMENT
-Vorgang jederzeit abbrechen, bevor der Vorgang mit langer Ausführungszeit die Platzierung vollständig aus dem Datenbankschema löscht. Weitere Informationen zum Abrufen der ID des Vorgangs mit langer Ausführungszeit, um den Status zu prüfen oder den Vorgang abzubrechen, finden Sie unter Vorgänge mit langer Ausführungszeit verwalten und beobachten.
Tabelle mit einem Platzierungsschlüssel erstellen
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Geben Sie die DDL-Anweisung für
CREATE TABLE
(GoogleSQL, PostgreSQL) ein.Sie können beispielsweise eine Tabelle
Singers
erstellen, in der ein Placement-Schlüssel zum Partitionieren von Sängerdaten verwendet wird:GoogleSQL
CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, ... Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);
PostgreSQL
CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), ... Location varchar(1024) NOT NULL PLACEMENT KEY );
gcloud
Verwenden Sie gcloud spanner databases ddl update
, um eine Tabelle zu erstellen.
Sie können beispielsweise eine Tabelle Singers
erstellen, in der ein Placement-Schlüssel zum Partitionieren von Sängerdaten verwendet wird:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), Location varchar(1024) NOT NULL PLACEMENT KEY );"
Tabelle mit einem Placement-Schlüssel bearbeiten
Sie können keinen Placement-Schlüssel aus einer Tabelle entfernen. Außerdem können Sie einer Tabelle nach dem Erstellen keinen Placement-Schlüssel hinzufügen. Sie können jedoch die ALTER TABLE
-DDL-Anweisung (GoogleSQL, PostgreSQL) verwenden, um andere Felder in der Tabelle zu ändern, z. B. indem Sie Spalten hinzufügen und entfernen, die nicht als Schlüssel für die Platzierung dienen.
Tabelle mit einem Placement-Schlüssel löschen
Bevor Sie eine Tabelle mit einem Placement-Schlüssel löschen, müssen Sie zuerst Folgendes tun:
- Löschen Sie alle Zeilen in der Placement-Tabelle.
- Warten Sie, bis der
version_retention_period
für die Datenbank bestanden ist. Weitere Informationen finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt. Gehen Sie dann so vor:
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Geben Sie die DDL-Anweisung für
DROP TABLE
(GoogleSQL, PostgreSQL) ein.So löschen Sie beispielsweise die Tabelle
Singers
:DROP TABLE Singers;
gcloud
Zum Löschen einer Tabelle verwenden Sie gcloud spanner databases ddl update
.
So löschen Sie beispielsweise die Tabelle Singers
:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP TABLE Singers"
Zeile in eine Placement-Tabelle einfügen
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Geben Sie die DDL-Anweisung für
INSERT INTO
(GoogleSQL, PostgreSQL) ein.Fügen Sie beispielsweise der Tabelle
Singers
den Sänger Marc Richards hinzu und partitionieren Sie sie ineuropeplacement
:INSERT INTO Singers(SingerId, SingerName, Location) VALUES (1, 'Marc Richards', 'europeplacement')
gcloud
Verwenden Sie gcloud spanner rows insert
, um Daten in eine Tabelle zu schreiben.
Fügen Sie beispielsweise der Tabelle Singers
den Sänger Marc Richards hinzu und partitionieren Sie sie in europeplacement
:
gcloud spanner rows insert --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'
Zeile in einer Platzierungstabelle aktualisieren
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Verwenden Sie DML oder Mutationen, um Daten in einer Placement-Tabelle zu aktualisieren.
So aktualisieren Sie beispielsweise den Namen von
singerid=1
in der TabelleSingers
zuCatalina Smith
:UPDATE Singers s SET s.name='Catalina Smith' WHERE s.id=1;
gcloud
Verwenden Sie gcloud spanner rows update
, um Daten in einer Placement-Tabelle zu aktualisieren.
So aktualisieren Sie beispielsweise den Namen von singerid=1
in der Tabelle Singers
zu Catalina Smith
:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'
Zeile in einer Placement-Tabelle verschieben
Console
- Erstellen Sie eine neue Instanzpartition und ‑platzierung, falls noch nicht geschehen.
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Verwenden Sie DML oder Mutationen, um Daten in die neue Instanzpartition zu verschieben.
Verschieben Sie beispielsweise
singerid=1
in der TabelleSingers
nachasiaplacement
:UPDATE Singers s SET s.location='asiaplacement' WHERE s.id=1;
gcloud
Nachdem Sie die Instanzpartition und den Speicherort erstellt haben, an den Sie Ihre Daten verschieben möchten, verwenden Sie gcloud spanner rows update
.
Verschieben Sie beispielsweise singerid=1
in der Tabelle Singers
nach asiaplacement
:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,Location='asiaplacement'
Zeile in einer Platzierungstabelle löschen
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Verwenden Sie DML oder Mutationen, um Daten zu löschen.
So löschen Sie beispielsweise
singerid=1
in der TabelleSingers
:DELETE FROM Singers s WHERE s.id=1;
gcloud
Verwenden Sie gcloud spanner rows delete
, um Daten zu löschen.
So löschen Sie beispielsweise singerid=1
in der Tabelle Singers
:
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
Daten in einer Placement-Tabelle abfragen
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
Führen Sie die Abfrage aus.
Fragen Sie beispielsweise die Tabelle
Singers
ab:SELECT * FROM Singers s WHERE s.SingerId=1;
gcloud
Verwenden Sie gcloud spanner databases execute-sql
, um Daten abzufragen.
Fragen Sie beispielsweise die Tabelle Singers
ab:
gcloud spanner databases execute-sql example-db \
--instance=test-instance \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'