Spanner-CLI-Kurzanleitung

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/project abgerufen. Alternativ können Sie das Projekt mit der Option --project angeben.
  • Die Instanzoption wird über die Property core/instance abgerufen. Alternativ können Sie die Instanz mit der Option --instance angeben.
  • Der API-Endpunkt wird über die Property api_endpoint_overrides/spanner abgerufen. Alternativ können Sie den Endpunkt mit den Optionen --host und --port angeben. Wenn kein Endpunkt angegeben ist, wird der Standard-Spanner-Endpunkt verwendet.

Spanner CLI verwenden

  1. Richten Sie ein Google Cloud Projekt ein.

  2. Richten Sie die Authentifizierung mit der gcloud CLI ein.

  3. Erstellen Sie eine Instanz.

  4. Erstellen Sie eine Datenbank.

  5. 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_ID
    

    Ersetzen Sie Folgendes:

    • DATABASE_ID: die ID der Spanner-Datenbank. Dies ist der Name, den Sie im vorherigen Schritt Datenbank erstellen verwendet haben. Mit dem gcloud spanner databases list Befehl 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 dem gcloud spanner instances list Befehl 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:

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