Spanner CLI コマンド

このページでは、Spanner CLI でサポートされているコマンドの概要について説明します。

コマンド構文 説明
SHOW DATABASES; データベースの一覧を取得します。
USE database_name [ROLE role_name]; データベースを切り替えます。設定したロールは、きめ細かいアクセス制御に使用されます。
CREATE DATABASE database_name; データベースを作成します。
DROP DATABASE database_name; データベースを削除します。
SHOW TABLES [schema]; テーブルを一覧表示します。スキーマを指定しない場合、Spanner はデフォルトのスキーマを使用します。
SHOW CREATE TABLE table_name; テーブル スキーマを表示します。
SHOW COLUMNS FROM table_name; 列を表示します。
SHOW INDEX FROM table_name; インデックスを表示します。
CREATE TABLE ...; テーブルを作成します。
ALTER TABLE ...; テーブル スキーマを変更します。
DROP TABLE ...; テーブルを削除します。
TRUNCATE TABLE table_name; テーブルを切り捨てます。行のみを削除します。このコマンドは、パーティション化された DML ステートメントとして実行されるため、アトミックではありません。
CREATE INDEX ...; インデックスを作成します。
DROP INDEX ...; インデックスを削除します。
CREATE ROLE ...; ロールを作成します。詳細については、Spanner の IAM の概要をご覧ください。
DROP ROLE ...; ロールを削除します。
GRANT ...; ロールに権限を付与します。
REVOKE ...; ロールから権限を取り消します。
SELECT ...; クエリを実行します。
{ INSERT|UPDATE|DELETE } ...; DML ステートメントを実行します。
PARTITIONED { UPDATE|DELETE } ...; パーティション化 DML ステートメントを実行します。このコマンドはアトミックではありません。
EXPLAIN SELECT ...; クエリ実行プランを表示します。詳細については、クエリ実行プランをご覧ください。
EXPLAIN {INSERT|UPDATE|DELETE} ...; DML 実行プランを表示します。
EXPLAIN ANALYZE SELECT ...; オプティマイザーの統計情報を含むクエリ実行プランを表示します。詳細については、オプティマイザーの統計情報パッケージをご覧ください。
EXPLAIN ANALYZE {INSERT|UPDATE|DELETE} ...; オプティマイザーの統計情報を含む DML 実行プランを表示します。詳細については、オプティマイザーの統計情報パッケージをご覧ください。
DESCRIBE SELECT ...; クエリ結果の形状を表示します。
DESCRIBE {INSERT|UPDATE|DELETE} ... THEN RETURN ...; DML 結果の形状を表示します。
ANALYZE; 新しいクエリ オプティマイザーの統計情報パッケージの作成を開始します。
START BATCH DDL; DDL バッチを開始します。
RUN BATCH; バッチ コマンドを実行します。
ABORT BATCH; バッチ コマンドを中止します。
BEGIN [RW] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; 読み取り / 書き込みトランザクションを開始します。詳細については、トランザクション コマンドをご覧ください。
COMMIT; 読み取り / 書き込みトランザクションを commit します。
ROLLBACK; 読み取り / 書き込みトランザクションをロールバック(元に戻す)します。
BEGIN RO [{seconds|RFC 3339-formatted_time}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; 読み取り専用トランザクションを開始します。secondsRFC 3339-formatted_time は、ステイル読み取りに使用されます。詳細については、トランザクション コマンドをご覧ください。
CLOSE; 読み取り専用トランザクションを終了します。
EXIT; Spanner CLI を終了します。

BATCH コマンド

Spanner CLI を使用すると、バッチモードで DDL オペレーションを実行できます。これにより、複数の DDL ステートメントが 1 つのオペレーションにグループ化され、スキーマ変更が高速化されます。Spanner CLI は、次の BATCH コマンドをサポートしています。

START BATCH DDL;

このコマンドは DDL バッチを開始します。このセッション内で実行する後続の DDL ステートメント(CREATE TABLEALTER TABLEDROP INDEX など)はすべて保留状態のままになり、データベースにすぐに適用されません。

RUN BATCH;

START BATCH DDL と後続の DDL ステートメントを実行したら、RUN BATCH コマンドを使用して、保留中のすべての DDL オペレーションを 1 つのリクエストとして Spanner に送信します。このコマンドは、個々の DDL ステートメントに関連するオーバーヘッドを削減し、スキーマの変更を高速化します。

ABORT BATCH;

保留中の DDL 変更を適用しない場合は、ABORT BATCH コマンドを使用します。このコマンドは、START BATCH DDL コマンドの発行後に収集されたすべての DDL ステートメントを破棄します。これにより、バッチがロールバックされ、データベース スキーマは変更されません。

トランザクション コマンド

Spanner CLI は、次のトランザクション SQL コマンドをサポートしています。

BEGIN [TRANSACTION] [RO] [seconds|RFC 3339-formatted_time ] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name];

トランザクションを開始します。次のオプションを構成できます。

  • トランザクション タイプ: 読み取り / 書き込み(パラメータは不要)または読み取り専用(RO)トランザクションを開始します。
  • 古い読み取り時間: 特定のタイムスタンプからデータを読み取る時間を秒単位または RFC 3339 形式で設定します。
  • 分離レベル: 読み取り / 書き込みトランザクションの分離レベルを設定します。デフォルトでは、シリアル化可能な分離が使用されます。詳細については、分離レベルの概要をご覧ください。
  • 優先度: トランザクションのリクエストの優先度を設定します。デフォルトでは中程度の優先度が設定されています。
  • タグ: BEGIN コマンドを使用してトランザクション タグを設定します。

    • 読み取り / 書き込みトランザクションで、BEGIN TAG tag を含むタグを追加します。Spanner CLI は、タグをトランザクション タグとして追加します。このタグは、トランザクション内のリクエストタグとしても使用されます。
    • 読み取り専用トランザクションで、BEGIN RO TAG tag を含むタグを追加します。読み取り専用トランザクションはトランザクション タグをサポートしていないため、Spanner はタグをリクエストタグとして追加します。

COMMIT;

読み取り / 書き込みトランザクションのすべての変更を確定して永続化します。

CLOSE;

読み取り専用トランザクションを閉じます。

ROLLBACK;

読み取り / 書き込みトランザクションをロールバック(元に戻す)します。

次のステップ