Auf dieser Seite wird die Spanner-Befehlszeile vorgestellt und ihre Verwendung wird erläutert.
Die Spanner-Befehlszeile ist eine Befehlszeilenschnittstelle (Command Line Interface, CLI), mit der Sie eine Verbindung zu Ihrer Spanner-Datenbank herstellen und mit ihr interagieren können. Sie ist in die Google Cloud CLI (gcloud CLI) integriert, um mit Spanner zu interagieren. Mit der Spanner-CLI können Sie GoogleSQL-Anweisungen direkt in Ihrer Spanner-Datenbank ausführen. Ihre Anweisungen können aus DDL-Anweisungen (Datendefinitionssprache), DML-Anweisungen (Datenbearbeitungssprache) oder DQL-Anweisungen (Data Query Language, Datenabfragesprache) bestehen. Mit der Spanner-CLI können Sie SQL-Befehlsskripts ausführen und Aufgaben automatisieren.
Weitere Informationen finden Sie in der Liste aller unterstützten gcloud alpha spanner cli
-Befehle.
Hauptvorteile
Die wichtigsten Vorteile der Spanner-Befehlszeile:
- Führt DDL-, DML- und DQL-SQL-Befehle aus.
- Sie können SQL-Anweisungen über mehrere Zeilen hinweg schreiben und ausführen.
- Unterstützt Meta-Befehle, die Sie bei Systemaufgaben wie dem Ausführen eines System-Shell-Befehls und dem Ausführen von SQL aus einer Datei unterstützen.
- Sie können 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.
- Sie können eine interaktive Spanner-CLI-Sitzung starten, in der Sie SQL-Anweisungen und Meta-Befehle direkt eingeben und Ergebnisse in der CLI sehen können.
Hinweise
Die Spanner CLI ist in der gcloud CLI verfügbar. Wenn Sie den Befehl gcloud alpha spanner cli
zum ersten Mal ausführen, wird die Spanner CLI-Komponente automatisch von der gcloud CLI installiert.
Spanner-Befehlszeile verwenden
Führen Sie den folgenden Befehl aus, um die Spanner-Befehlszeile zu starten und mit Ihrer Spanner-Datenbank zu interagieren:
gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
Ersetzen Sie Folgendes:
DATABASE_ID
: Die ID der Spanner-Datenbank. Das ist der Name, den Sie im vorherigen Schritt „Datenbank erstellen“ verwendet haben. Mit dem Befehlgcloud spanner databases list
können Sie die Spanner-Datenbanken auflisten, die in der angegebenen Instanz enthalten sind.INSTANCE_ID
: Die ID der Spanner-Instanz. Das ist der Name, den Sie im vorherigen Schritt „Instanz erstellen“ verwendet haben. Mit dem Befehlgcloud spanner instances list
können Sie die Spanner-Instanzen auflisten, die im angegebenen Projekt enthalten sind.
SQL ausführen
Sie können SQL-Anweisungen in der Spanner-Befehlszeile mit der Option execute
oder mit einer dateibasierten Ein- und Ausgabemethode ausführen. Ihre SQL-Anweisungen können aus DDL, DML oder DQL bestehen.
Verwenden Sie das Flag execute
.
Wenn Sie das Flag execute
verwenden möchten, um SQL auszuführen, führen Sie den folgenden gcloud alpha spanner cli
-Befehl aus:
gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
--execute "SQL"
Ersetzen Sie Folgendes:
DATABASE_ID
: Die ID der Spanner-Datenbank, mit der Sie eine Verbindung herstellen möchten.INSTANCE_ID
: Die ID der Spanner-Instanz, zu der Sie eine Verbindung herstellen möchten.SQL
: Der SQL-Code, den Sie ausführen möchten.
So führen Sie beispielsweise eine DDL-Anweisung aus:
gcloud alpha 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 alpha 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. Wenn Sie die dateibasierte Ein- und Ausgabemethode zum Ausführen von SQL verwenden möchten, führen Sie den folgenden Befehl aus:
gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
--source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH
Sie können auch die dateibasierte Methode für die Weiterleitung von Ein- und Ausgabe verwenden:
gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
< INPUT_FILE_PATH > OUTPUT_FILE_PATH
Ersetzen Sie Folgendes:
DATABASE_ID
: Die ID der Spanner-Datenbank, mit 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 den auszuführenden SQL-Code enthält.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 Meta-Befehle direkt eingeben und die Ergebnisse in der CLI sehen können. Führen Sie dazu den folgenden Befehl aus:
gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
Nachdem die Verbindung zwischen der CLI und Ihrer Datenbank hergestellt wurde, wird eine Eingabeaufforderung (z. B. spanner-cli>
) angezeigt, in der Sie Folgendes tun können:
- Geben Sie GoogleSQL-Anweisungen direkt ein:
- Transaktionen ausführen
- Unterstützte Meta-Befehle 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 alpha 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
So führen Sie eine DDL-Anweisung aus:
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
So führen Sie eine DML-Anweisung aus:
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)
Unterstützte Meta-Befehle
Die Spanner-Befehlszeile unterstützt Utility-Metabefehle, die auf dem Client ausgeführt werden, in diesem Fall auf der Spanner-Befehlszeile. Die folgenden Metabefehle werden in der Spanner-Befehlszeile unterstützt:
Befehl | Syntax | Beschreibung |
---|---|---|
? |
\?
|
Damit rufen Sie Hilfeinformationen auf. Gleich wie bei \h
|
Trennzeichen |
\d
|
Legt das Anweisungs-Trennzeichen fest. Das Standardtrennzeichen ist ein Semikolon. |
Beenden |
\q
|
Beendet die Spanner-Befehlszeile. Identisch mit „Beenden“. |
Go |
\g
|
Sendet und führt eine SQL-Anweisung in Spanner aus. |
Hilfe |
\h
|
Damit rufen Sie Hilfeinformationen auf. Gleich wie bei \?
|
Hinweis |
\t
|
Deaktiviert das Schreiben in die Ausgabedatei, die durch \T festgelegt wurde.
|
Prompt |
\R
|
Wandelt Ihren Prompt in einen Nutzer-Prompt-String um. |
Beenden |
\q
|
Beendet die Spanner-Befehlszeile. Wie „Beenden“. |
Quelle |
\.
|
Führt SQL aus einer Eingabedatei aus. Akzeptiert [filename] als Argument. |
System |
\!
|
Führt einen System-Shell-Befehl aus. |
Tee |
\T
|
Hängt die Befehlsausgabe an eine angegebene [filename] an, zusammen mit der Standardausgabe. |
Verwenden |
\u
|
Stellt eine Verbindung zu einer anderen Datenbank her. Akzeptiert den neuen Datenbanknamen als Argument. |