Console を使用したクイックスタート

このクイックスタートでは、Google Cloud Console を使用して Cloud Spanner の基本オペレーションを行う方法について説明します。このクイックスタートでは、以下の操作を行います。

  • Cloud Spanner のインスタンス、データベース、テーブルを作成する。
  • スキーマを追加する。
  • データを書き込んで変更する。
  • クエリを実行する。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. プロジェクトに対して Cloud Spanner API を有効化します。

    Cloud Spanner API を有効にする

インスタンスの作成

Cloud Spanner を最初に使用するときは、インスタンスを作成する必要があります。これは、そのインスタンスの Cloud Spanner データベースによって使用されるリソースの割り当てです。

  1. Cloud Console で、Cloud Spanner の [インスタンス] ページに移動します。

    インスタンス ページに移動

  2. [インスタンスを作成] をクリックします。

  3. インスタンス名として、「Test Instance」と入力します。

  4. インスタンス ID として、「test-instance」と入力します。

  5. リージョン構成を使用します。

  6. プルダウン メニューから任意のリージョン構成を選択します。

    インスタンスの構成により、インスタンスが保存および複製される地理的なロケーションが決まります。

  7. 1000 プロセッシング ユニットのデフォルトの計算能力を使用します。

    インスタンス作成ページは次のようになります。

    インスタンス作成ウィンドウのスクリーンショット

  8. [作成] をクリックします。

    インスタンス リストにこのインスタンスが表示されます。

データベースの作成

  1. Cloud Console で、Cloud Spanner の [インスタンス] ページに移動します。

    インスタンス ページに移動

  2. Test Instance インスタンスをクリックします。

  3. [データベースを作成] をクリックします。

  4. データベース名として、「example-db」と入力します。

    データベース作成ページは次のようになります。

    データベース作成ウィンドウのスクリーンショット

  5. ここでは、[スキーマの定義] ステップはスキップします。スキーマは、このクイックスタートの次のセクションで定義します。

  6. [作成] をクリックします。

    Cloud Console に、作成したデータベースの [概要] ページが表示されます。

データベースのスキーマの作成

  1. example-db の [概要] ページで、テーブルのリストの先頭にある [テーブルを作成] をクリックします。

    Cloud Console に [DDL ステートメントの書き込み] ページが表示されます。

  2. 次のように入力します。

    CREATE TABLE Singers (
      SingerId   INT64 NOT NULL,
      FirstName  STRING(1024),
      LastName   STRING(1024),
      SingerInfo BYTES(MAX),
      BirthDate  DATE,
    ) PRIMARY KEY(SingerId);
    

  3. [送信] をクリックします。

    Cloud Console が example-db の [概要] ページに戻り、スキーマの更新が進行中であることが表示されます。更新が完了すると、ページは次のようになります。

    テーブルのスクリーンショット

データの挿入と変更

Cloud Console には、データを挿入、編集、削除するためのインターフェースがあります。

データの挿入

  1. example-db の [概要] ページで、テーブルのリストにある [Singers] テーブルをクリックします。

    Cloud Console に Singers テーブルの [スキーマ] ページが表示されます。

  2. サイドメニューで [データ] をクリックし、Singers テーブルの [データ] ページを表示します。

  3. [挿入] をクリックします。

    Cloud Console は、Singers テーブルに行を挿入してその挿入の結果を表示するために編集するテンプレート INSERTSELECT ステートメントを含む新しいクエリタブを含む Singers テーブルの [クエリ] ページを表示します。

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (<SingerId>, -- type: INT64
        <BirthDate>, -- type: DATE
        <FirstName>, -- type: STRING(1024)
        <LastName>, -- type: STRING(1024)
        <SingerInfo> -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=<SingerId>;
    
  4. INSERT ステートメントの VALUES 句と SELECT ステートメントの WHERE 句を編集します。

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (1, -- type: INT64
        NULL, -- type: DATE
        'Marc', -- type: STRING(1024)
        'Richards', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=1;
    
  5. [実行] をクリックします。

    Cloud Spanner がステートメントを実行します。完了すると、[結果] タブには、最初のステートメントで 1 行が挿入されたことと、テーブルのデータを表示するリンクが示されます。

  6. [結果] タブで [テーブル] リンクをクリックします。Singers テーブルに行が 1 つ追加されました。

    1 行で構成される Singers テーブルデータのスクリーンショット

  7. [挿入] をクリックして行を 1 つ追加します。

    Cloud Console は、同じテンプレート INSERT および SELECT ステートメントを含む新しいクエリタブを含む Singers テーブルの [クエリ] ページを再び表示します。

  8. INSERT ステートメントの VALUES 句と SELECT ステートメントの WHERE 句を編集します。

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (2, -- type: INT64
        NULL, -- type: DATE
        'Catalina', -- type: STRING(1024)
        'Smith', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=2;
    
  9. [実行] をクリックします。

    Cloud Spanner がステートメントを実行すると、[結果] タブに最初のステートメントが 1 行を挿入したことが示されます。

  10. テーブルのリンクをクリックします。Singers テーブルの行が 2 つになりました。

    2 行で構成される Singers テーブルデータのスクリーンショット

また、データを入力するときに、空の文字列値を挿入することもできます。

  1. [挿入] をクリックして行を追加します。

    Cloud Console は、同じテンプレート INSERT および SELECT ステートメントを含む新しいクエリタブを含む Singers テーブルの [クエリ] ページを再び表示します。

  2. テンプレートの INSERT ステートメントの VALUES 句と SELECT ステートメントの WHERE 句を編集します。

        -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (3, -- type: INT64
        NULL, -- type: DATE
        'Kena', -- type: STRING(1024)
        '', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    LastName に指定した値は、NULL 値ではなく、空の文字列 '' です。

  3. [実行] をクリックします。

    Cloud Spanner がステートメントを実行すると、[結果] タブに最初のステートメントが 1 行を挿入したことが示されます。

  4. テーブルのリンクをクリックします。Singers テーブルの行が 3 つになり、SingerID 3 の行の LastName が空の文字列になりました。

    3 行で構成される Singers テーブルデータのスクリーンショット

データの編集

  1. Singers テーブルの [データ] ページで、SingerId 3 の行の横にあるチェックボックスをオンにして、[編集] をクリックします。

    Cloud Console に [Singers] テーブルの [クエリ] ページが開かれ、Singers テーブルの行を更新するために編集したテンプレート UPDATE ステートメントと SELECT ステートメントを含む新しいクエリタブが表示され、更新の結果が表示されます。両方のステートメントの WHERE 句で、更新する行が SingerId 3 の行であることを示しています。

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='',
      FirstName='Kena',
      LastName='',
      SingerInfo=''
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    
  2. UPDATE ステートメントの SET 句を編集して、BirthDate 列のみを更新します。

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='1961-04-01'
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    
  3. [実行] をクリックします。

    Cloud Spanner がステートメントを実行します。完了すると、[結果] タブには、最初のステートメントで 1 行が更新され、テーブルのデータを表示するリンクが示されます。

  4. [結果] タブで [テーブル] リンクをクリックします。Singers テーブルの SingerId 3 の行に BirthDate 値が追加されました。

    3 行で構成される Singers テーブルデータのスクリーンショット(3 行目に BirthDate 値が含まれている)

データの削除

  1. Singers テーブルの [データ] ページで、SingerId 2 の行の横にあるチェックボックスをオンにして、[削除] をクリックします。
  2. 表示されるダイアログで [確認] をクリックします。

    Singers テーブルの行が 2 つになりました。

    SingerId 2 の行が削除された後、2 行で構成される Singers テーブルデータのスクリーンショット

クエリの実行

  1. example-db の [概要] ページのサイドメニューで [クエリ] をクリックし、example-db の [クエリ] ページを表示します。

  2. [新しいタブ] をクリックして、新しいクエリタブを作成します。次のクエリを入力します。

    SELECT * FROM Singers;
    
  3. [実行] をクリックします。

    Cloud Spanner がクエリを実行します。完了すると、[結果] タブにクエリの結果が表示されます。

    クエリ結果のスクリーンショット

これで、Cloud Spanner データベースを作成し、クエリエディタを使用して SQL ステートメントを実行することができました。

クリーンアップ

Cloud 請求先アカウントにこれ以上料金が発生しないようにするには、作成したデータベースとインスタンスを削除します。

データベースの削除

  1. Google Cloud Console で、Cloud Spanner の [インスタンス] ページに移動します。

    インスタンス ページに移動

  2. [Test Instance] をクリックします。

  3. [example-db] をクリックします。

  4. [データベースの詳細] ページで [データベースの削除] をクリックします。

  5. データベースを削除することを確認し、[削除] をクリックします。

インスタンスの削除

インスタンスを削除すると、そのインスタンス内に作成されたすべてのデータベースが自動的に削除されます。

  1. Google Cloud Console で、Cloud Spanner の [インスタンス] ページに移動します。

    インスタンス ページに移動

  2. [Test Instance] をクリックします。

  3. [インスタンスの削除] をクリックします。

  4. インスタンスを削除することを確認し、[削除] をクリックします。

次のステップ