Die Spanner CLI ist eine Befehlszeilenschnittstelle (Command-Line Interface, CLI) in der gcloud CLI, mit der Sie eine Verbindung zu Ihren Spanner-Datenbanken herstellen und mit ihnen interagieren können. Mit der Spanner CLI können Sie beispielsweise GoogleSQL Anweisungen ausführen und Aufgaben automatisieren. In diesem Dokument wird beschrieben, wie Sie die Spanner CLI einrichten und verwenden.
Die Spanner CLI basiert auf dem Open-Source- spanner-cli -Projekt.
Eine Liste aller unterstützten Spanner CLI-Befehle finden Sie unter
gcloud spanner cli Befehle.
Hauptvorteile
Mit der Spanner CLI können Sie folgende Aktionen ausführen:
- DDL-, DML- und DQL-SQL-Befehle ausführen
- SQL-Anweisungen über mehrere Zeilen schreiben und ausführen
- Metabefehle für Systemaufgaben verwenden, z. B. zum Ausführen eines System-Shell-Befehls und zum Ausführen von SQL aus einer Datei
- SQL-Ausführungen automatisieren, indem Sie eine Reihe von SQL-Anweisungen in eine Skriptdatei schreiben und dann die Spanner CLI anweisen, das Skript auszuführen Außerdem können Sie die Ausgabe in eine Ausgabedatei umleiten.
- Eine interaktive Spanner CLI-Sitzung starten, in der Sie SQL-Anweisungen und Metabefehle direkt eingeben und die Ergebnisse sehen können in der CLI.
Hinweis
Bevor Sie die Spanner CLI verwenden, prüfen Sie, ob Sie die erforderliche Rolle haben und die CLI installiert haben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Spanner Admin (roles/spanner.admin) für Spanner zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Installieren von Spanner benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Spanner CLI installieren
Die Spanner CLI ist in der gcloud CLI verfügbar. Wenn Sie den Befehl gcloud spanner cli zum ersten Mal ausführen, installiert die gcloud CLI automatisch die Spanner CLI-Komponente.
Führen Sie den folgenden Befehl aus, um die Spanner CLI manuell zu installieren:
gcloud components install spanner-cli
Wenn die Installation mit dem Google Cloud CLI-Befehl fehlschlägt oder in Ihrer Shell-Umgebung nicht möglich ist, bietet Spanner eigenständige Debian-Pakete (.deb) und RPM-Pakete (.rpm) an. Mit diesen Paketen können Sie die Spanner CLI manuell auf kompatiblen Systemen installieren. Führen Sie den folgenden Befehl aus, um die Spanner CLI zu installieren:
apt-get install google-cloud-cli-spanner-cli
Konfigurationsoptionen
Die Spanner CLI unterstützt die folgenden konfigurierbaren Optionen:
- Die Projektoption wird über die Property
core/projectabgerufen. Alternativ können Sie das Projekt mit der Option--projectangeben. - Die Instanzoption wird über die Property
core/instanceabgerufen. Alternativ können Sie die Instanz mit der Option--instanceangeben. - Der API-Endpunkt wird über die Property
api_endpoint_overrides/spannerabgerufen. Alternativ können Sie den Endpunkt mit den Optionen--hostund--portangeben. Wenn kein Endpunkt angegeben ist, wird der Standard-Spanner-Endpunkt verwendet.
Spanner CLI verwenden
Führen Sie den folgenden Befehl aus, um die Spanner CLI zu starten und mit Ihrer Spanner-Datenbank zu interagieren:
gcloud spanner cli DATABASE_ID --instance=INSTANCE_IDErsetzen Sie Folgendes:
DATABASE_ID: die ID der Spanner-Datenbank. Dies ist der Name, den Sie im vorherigen Schritt Datenbank erstellen verwendet haben. Mit demgcloud spanner databases listBefehl können Sie die Spanner-Datenbanken auflisten, die in der angegebenen Instanz enthalten sind.INSTANCE_ID: die ID der Spanner-Instanz. Dies ist der Name, den Sie im vorherigen Schritt Instanz erstellen verwendet haben. Mit demgcloud spanner instances listBefehl können Sie die Spanner-Instanzen auflisten, die im angegebenen Projekt enthalten sind.
SQL ausführen
Sie können SQL-Anweisungen in der Spanner CLI mit der
execute Option oder mit einer
dateibasierten Ein- und Ausgabemethode ausführen. Ihre SQL-Anweisungen können aus DDL, DML oder DQL bestehen.
Flag execute verwenden
Führen Sie den folgenden
gcloud spanner cli-Befehl aus, um SQL mit dem execute-Flag auszuführen:
gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
--execute "SQL"
Ersetzen Sie Folgendes:
DATABASE_ID: die ID der Spanner-Datenbank, zu der Sie eine Verbindung herstellen möchten.INSTANCE_ID: die ID der Spanner-Instanz, zu der Sie eine Verbindung herstellen möchten.SQL: die SQL-Anweisung, die Sie ausführen möchten.
Beispiel: So führen Sie eine DDL-Anweisung aus:
gcloud spanner cli test-database --instance test-instance \
--execute "CREATE TABLE Singers ( \
SingerId INT64 NOT NULL, \
FirstName STRING(1024), \
LastName STRING(1024), \
SingerInfo STRING(1024), \
BirthDate DATE \
) PRIMARY KEY(SingerId);"
So führen Sie eine DML-Anweisung aus:
gcloud spanner cli test-database --instance test-instance \
--execute "INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo) \
VALUES(1, 'Marc', 'Richards', 'nationality: USA'), \
(2, 'Catalina', 'Smith', 'nationality: Brazil'), \
(3, 'Andrew', 'Duneskipper', NULL);"
Dateibasierte Ein- und Ausgabe verwenden
Wenn Sie die dateibasierte Ein- und Ausgabemethode verwenden, liest Spanner die Eingabe aus einer Datei und schreibt die Ausgabe in eine andere Datei. Führen Sie den folgenden Befehl aus, um SQL mit der dateibasierten Ein- und Ausgabemethode auszuführen:
gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
--source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH
Sie können auch die dateibasierte Ein- und Ausgabemethode für die Umleitung verwenden:
gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
< INPUT_FILE_PATH > OUTPUT_FILE_PATH
Ersetzen Sie Folgendes:
DATABASE_ID: die ID der Spanner-Datenbank, zu der Sie eine Verbindung herstellen möchten.INSTANCE_ID: die ID der Spanner-Instanz, zu der Sie eine Verbindung herstellen möchten.SOURCE_FILE_PATH: die Datei, die die SQL-Anweisung enthält, die Sie ausführen möchten.OUTPUT_FILE_PATH: die benannte Datei, an die eine Kopie der SQL-Ausgabe angehängt werden soll.
Interaktive Sitzung starten
Sie können eine interaktive Spanner CLI-Sitzung starten, in der Sie SQL-Anweisungen und Metabefehle direkt eingeben und die Ergebnisse in der CLI sehen können. Dazu führen Sie den folgenden Befehl aus:
gcloud spanner cli DATABASE_ID --instance=INSTANCE_ID
Nachdem die Verbindung zwischen der CLI und Ihrer Datenbank hergestellt wurde, wird eine
Eingabeaufforderung angezeigt (z. B. spanner-cli>), in der Sie Folgendes tun können:
- GoogleSQL-Anweisungen direkt eingeben:
- Transaktionen ausführen
- Unterstützte Metabefehle verwenden
Nachdem Sie die ENTER-Taste gedrückt haben, wird die Anweisung oder der Befehl an die entsprechende Spanner-Datenbank gesendet. Spanner führt dann die Anweisung oder den Befehl aus.
Im folgenden Beispiel starten Sie eine interaktive Sitzung in test-database und führen dann SELECT 1; aus:
gcloud spanner cli test-database --instance test-instance
Welcome to Spanner-Cli Client.
Type 'help;' or '\h' for help.
Type 'exit;' or 'quit;' or '\q' to exit.
spanner-cli> SELECT 1;
+---+
| |
+---+
| 1 |
+---+
1 rows in set (1.11 msecs)
DDL-Anweisung ausführen
Führen Sie Folgendes aus, um eine DDL-Anweisung auszuführen:
spanner-cli> CREATE TABLE Singers (
-> SingerId INT64 NOT NULL,
-> FirstName STRING(1024),
-> LastName STRING(1024),
-> SingerInfo STRING(1024),
-> BirthDate DATE
-> ) PRIMARY KEY(SingerId);
Query OK, 0 rows affected (17.08 sec)
DML-Anweisung ausführen
Führen Sie Folgendes aus, um eine DML-Anweisung auszuführen:
spanner-cli> INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo)
-> VALUES(1, 'Marc', 'Richards', 'nationality: USA'),
-> (2, 'Catalina', 'Smith', 'nationality: Brazil'),
-> (3, 'Andrew', 'Duneskipper', NULL);
Query OK, 3 rows affected (0.32 sec)
Partitionierte DML-Anweisung ausführen
In der Spanner CLI können Sie das PARTITIONED Schlüsselwort mit den UPDATE
und DELETE Befehlen verwenden, um effiziente, umfangreiche partitionierte DML
Anweisungen auszuführen. Wenn die Spanner CLI auf PARTITIONED UPDATE oder PARTITIONED DELETE stößt, werden diese als partitionierte DML-Vorgänge erkannt. Diese Schlüsselwörter sind nützlich für Vorgänge, die einen erheblichen Teil einer Tabelle betreffen, ohne die gesamte Tabelle für einen längeren Zeitraum zu sperren. Spanner wendet partitionierte DML-Anweisungen nicht atomisch auf die gesamte Tabelle an.
Auf die einzelnen Partitionen werden sie jedoch atomisch angewendet.
Führen Sie Folgendes aus, um eine partitionierte DML-Anweisung auszuführen:
-- Update all rows in the 'Products' table by multiplying the price by 2
spanner-cli> PARTITIONED UPDATE Products SET Price = Price * 2 WHERE Price > 100;
-- Delete all rows in the 'Products' table with price less than 500
spanner-cli> PARTITIONED DELETE FROM Products WHERE Price < 500;
Unterstützte Metabefehle
Die Spanner CLI unterstützt Dienstprogramm-Metabefehle. Das sind Befehle, die auf dem Client ausgeführt werden, in diesem Fall die Spanner CLI. Die folgenden Metabefehle werden in der Spanner CLI unterstützt:
| Befehl | Syntax | Beschreibung |
|---|---|---|
| ? |
\?
|
Damit rufen Sie Hilfeinformationen auf. Gleich wie bei \h.
|
| Trennzeichen |
\d
|
Legt das Anweisungstrennzeichen fest. Das Standardtrennzeichen ist ein Semikolon. |
| Beenden |
\q
|
Beendet die Spanner CLI. Gleich wie bei „Beenden“. |
| Go |
\g
|
Sendet und führt SQL-Anweisung in Spanner aus. |
| Hilfe |
\h
|
Damit rufen Sie Hilfeinformationen auf. Gleich wie bei \?.
|
| Notee |
\t
|
Deaktiviert das Schreiben in die Ausgabedatei, die mit \T festgelegt wurde.
|
| Prompt |
\R
|
Ändert die Eingabeaufforderung in einen benutzerdefinierten Promptstring. |
| Beenden |
\q
|
Beendet die Spanner CLI. Gleich wie bei „Beenden“. |
| Quelle |
\.
|
Führt SQL aus einer Eingabedatei aus. Akzeptiert [Dateiname] als Argument. |
| System |
\!
|
Führt einen System-Shell-Befehl aus. |
| Golfini |
\T
|
Hängt die Befehlsausgabe zusammen mit der Standard ausgabe an eine angegebene [Dateiname] an. |
| Verwenden |
\u
|
Stellt eine Verbindung zu einer anderen Datenbank her. Akzeptiert den Namen der neuen Datenbank als Argument. |
Zusätzliche unterstützte Befehle
Die Spanner CLI unterstützt zusätzliche Befehle. Weitere Informationen finden Sie unter Spanner CLI-Befehle.
Support anfordern
Wenn Sie ein Problem mit der Spanner CLI melden möchten, erstellen Sie ein neues Problem.
Nächste Schritte
- Eine Liste aller unterstützten Spanner CLI-Befehle ansehen.
- Eine Liste aller unterstützten
gcloud spanner cliBefehle ansehen