Spanner CLI クイックスタート

このページでは、Spanner CLI とその使用方法について説明します。

Spanner CLI は、Spanner データベースに接続して操作できるコマンドライン インターフェース(CLI)です。これは、Spanner とのインターフェースをとるために Google Cloud CLI(gcloud CLI)に組み込まれています。Spanner CLI を使用して、Spanner データベースで GoogleSQL ステートメントを直接実行できます。ステートメントは、データ定義言語(DDL)、データ操作言語(DML)、データクエリ言語(DQL)のステートメントで構成できます。Spanner CLI を使用して、SQL コマンド スクリプトを実行し、タスクを自動化できます。

詳細については、サポートされているすべての gcloud alpha spanner cli コマンドの一覧をご覧ください。

主なメリット

Spanner CLI の主なメリットは次のとおりです。

始める前に

Spanner CLI は gcloud CLI で使用できます。gcloud alpha spanner cli コマンドを初めて実行すると、gcloud CLI によって Spanner CLI コンポーネントが自動的にインストールされます。

Spanner CLI を使用する

  1. Google Cloud プロジェクトを設定する

  2. gcloud CLI を使用して認証を設定する

  3. インスタンスを作成する

  4. データベースを作成する

  5. 次のコマンドを実行して Spanner CLI を起動し、Spanner データベースを操作する。

    gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
    

    次のように置き換えます。

    • DATABASE_ID: Spanner データベースの ID。これは、前のデータベースを作成する手順で使用した名前です。gcloud spanner databases list コマンドを使用すると、指定されたインスタンスに含まれる Spanner データベースを一覧表示できます。
    • INSTANCE_ID: Spanner インスタンスの ID。これは、前のインスタンスを作成する手順で使用した名前です。gcloud spanner instances list コマンドを使用して、指定されたプロジェクトに含まれる Spanner インスタンスを一覧表示できます。

SQL を実行する

Spanner CLI で SQL ステートメントを実行するには、execute オプションを使用するか、ファイルベースの入出力メソッドを使用します。SQL ステートメントは、DDL、DML、DQL で構成できます。

execute フラグを使用する

execute フラグを使用して SQL を実行するには、次の gcloud alpha spanner cli コマンドを実行します。

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --execute "SQL"

次のように置き換えます。

  • DATABASE_ID: 接続する Spanner データベースの ID。
  • INSTANCE_ID: 接続する Spanner インスタンスの ID。
  • SQL: 実行する SQL。

たとえば、DDL ステートメントを実行するには:

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);"

DML ステートメントを実行するには:

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);"

ファイルベースの入出力を使用する

ファイルベースの入力と出力の方法を使用する場合、Spanner はファイルから入力を読み取り、別のファイルに出力を書き込みます。ファイルベースの入出力メソッドを使用して SQL を実行するには、次のコマンドを実行します。

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH

ファイルベースのリダイレクトの入力と出力の方法を使用することもできます。

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    < INPUT_FILE_PATH > OUTPUT_FILE_PATH

次のように置き換えます。

  • DATABASE_ID: 接続する Spanner データベースの ID。
  • INSTANCE_ID: 接続する Spanner インスタンスの ID。
  • SOURCE_FILE_PATH: 実行する SQL を含むファイル。
  • OUTPUT_FILE_PATH: SQL 出力のコピーを追加する名前付きファイル。

インタラクティブ セッションを開始する

インタラクティブな Spanner CLI セッションを開始すると、SQL ステートメントとメタコマンドを直接入力して、CLI で結果を確認できます。これを行うには、次のコマンドを実行します。

gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID

CLI とデータベースの接続が成功すると、プロンプト(spanner-cli> など)が表示され、次の操作を行うことができます。

ENTER キーを押すと、ステートメントまたはコマンドが適切な Spanner データベースに送信されます。Spanner は、ステートメントまたはコマンドを実行します。

次の例では、test-database でインタラクティブ セッションを開始し、SELECT 1; を実行します。

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 ステートメントを実行する

DDL ステートメントを実行するには、次のコマンドを実行します。

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 ステートメントを実行する

DML ステートメントを実行するには、次のコマンドを実行します。

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)

サポートされているメタコマンド

Spanner CLI は、クライアント(この場合は Spanner CLI)で動作するコマンドであるユーティリティ メタコマンドをサポートしています。Spanner CLI では、次のメタコマンドがサポートされています。

コマンド 構文 説明
? \? ヘルプ情報を表示します。\h と同一です。
区切り文字 \d ステートメントの区切り文字を設定します。デフォルトの区切り文字はセミコロンです。
終了 \q Spanner CLI を終了します。quit と同一です。
Go \g Spanner で SQL ステートメントを送信して実行します。
ヘルプ \h ヘルプ情報を表示します。\? と同一です。
Notee \t \T で設定された出力ファイルへの書き込みをオフにします。
プロンプト \R プロンプトをユーザー プロンプト文字列に変更します。
終了 \q Spanner CLI を終了します。exit と同一です。
ソース \. 入力ファイルから SQL を実行します。[filename] を引数として受け取ります。
システム \! システム シェルコマンドを実行します。
Tee \T コマンド出力を標準出力とともに指定された [filename] に追加します。
使用 \u 別のデータベースに接続します。新しいデータベース名を引数として受け取ります。

次のステップ