Auf dieser Seite wird beschrieben, wie Sie Datenspeicherorte in Spanner erstellen und verwalten.
Weitere Informationen zur Funktionsweise der Geopartitionierung finden Sie unter Geopartitionierung – Übersicht.
Daten-Placement erstellen
Nachdem Sie Ihre Spanner-Partitionen und Datenbanken erstellt haben, erstellen Sie das Placement.
Console
Rufen Sie in der Google Cloud -Console die Seite Instanzen auf.
Wählen Sie die Instanz mit den von Nutzern erstellten Partitionen aus.
Wählen Sie die Datenbank aus, für die 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 Editortab.Geben Sie die
CREATE PLACEMENT
-DDL-Anweisung (GoogleSQL, PostgreSQL) ein.So können Sie beispielsweise eine Placement-Tabelle
europeplacement
in der Partitioneurope-partition
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 Placement-Objekte aufzurufen, zu suchen und mit ihnen zu interagieren. Weitere Informationen finden Sie unter Daten analysieren.
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie den Befehl gcloud spanner databases ddl update
, um eine Placement-Gruppe mit der gcloud CLI zu erstellen.
So erstellen Sie beispielsweise ein Placement in der Partition 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')"
Daten-Placement löschen
Placements können nicht gelöscht werden. Sie müssen die Datenbank löschen, um das Placement und die zugehörigen Daten zu löschen. Weitere Informationen finden Sie unter Datenbank löschen.
Tabelle mit einem Placement-Schlü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 Editortab.
Geben Sie die DDL-Anweisung
CREATE TABLE
(GoogleSQL, PostgreSQL) ein.Du kannst beispielsweise eine
Singers
-Tabelle erstellen, in der Sängerdaten mithilfe eines Placement-Schlüssels partitioniert werden: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.
Du kannst beispielsweise eine Singers
-Tabelle erstellen, in der Sängerdaten mithilfe eines Placement-Schlüssels partitioniert werden:
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 ablegen. Außerdem können Sie einer Tabelle nach dem Erstellen keinen Placement-Schlüssel hinzufügen. Mit der DDL-Anweisung ALTER TABLE
(GoogleSQL, PostgreSQL) können Sie jedoch andere Felder in der Tabelle ändern, z. B. durch Hinzufügen und Löschen von Spalten, die keine Placement-Schlüsselspalten sind.
Tabelle mit einem Placement-Schlüssel löschen
Bevor Sie eine Tabelle mit einem Placement-Schlüssel löschen, müssen Sie 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. Führen Sie dann die folgenden Schritte aus:
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editortab.
Geben Sie die DDL-Anweisung
DROP TABLE
(GoogleSQL, PostgreSQL) ein.So löschen Sie beispielsweise die Tabelle
Singers
:DROP TABLE Singers;
gcloud
Verwenden Sie gcloud spanner databases ddl update
, um eine Tabelle zu löschen.
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 Editortab.
Geben Sie die DDL-Anweisung
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 Placement-Tabelle aktualisieren
Console
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editortab.
Verwenden Sie DML oder Mutationen, um Daten in einer Placement-Tabelle zu aktualisieren.
Aktualisieren Sie beispielsweise den Namen von
singerid=1
in der TabelleSingers
inCatalina 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.
Aktualisieren Sie beispielsweise den Namen von singerid=1
in der Tabelle Singers
in 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 Partition und ein neues Placement, falls Sie das noch nicht getan haben.
- Klicken Sie im Navigationsmenü auf Spanner Studio.
- Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editortab.
Verschieben Sie die Daten mit DML oder Mutationen in die neue Partition.
So verschieben Sie beispielsweise
singerid=1
in der TabelleSingers
nachasiaplacement
:UPDATE Singers s SET s.location='asiaplacement' WHERE s.id=1;
gcloud
Nachdem Sie die Partition und das Placement erstellt haben, in die Sie Ihre Daten verschieben möchten, verwenden Sie gcloud spanner rows update
.
So 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 Placement-Tabelle 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 Editortab.
Verwenden Sie DML oder Mutationen, um Daten zu löschen.
So löschen Sie beispielsweise
singerid=1
aus 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
aus 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 Editortab.
Führen Sie die Abfrage aus.
Beispiel für eine Abfrage der Tabelle
Singers
:SELECT * FROM Singers s WHERE s.SingerId=1;
gcloud
Verwenden Sie gcloud spanner databases execute-sql
, um Daten abzufragen.
Beispiel für eine Abfrage der Tabelle Singers
:
gcloud spanner databases execute-sql example-db \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'