コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
Google Cloud コンソールを使用してデータベースを作成しクエリを実行する

Google Cloud コンソールを使用してデータベースを作成しクエリを実行する

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

  • Spanner インスタンスを作成する
  • データベースを作成します。
  • スキーマを作成します。
  • データを挿入し変更します。
  • クエリを実行する。

Spanner を使用する料金については、料金をご覧ください。

始める前に

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

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  4. Cloud Spanner API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  7. Cloud Spanner API を有効にします。

    API を有効にする

インスタンスを作成する

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

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

    Spanner インスタンスに移動

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

  3. インスタンス名に、「テスト・インスタンス」などの名前を入力します。

  4. インスタンス ID は、例えば test-instance など、インスタンス名に基づき自動的に入力されます。必要に応じて変更します。

  5. [構成を選択する] で、デフォルトのオプション [リージョン] を保持し、プルダウン メニューから構成を選択します。

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

  6. [コンピューティング容量の割り当て] で、1,000 処理単位のデフォルト値のままにします。

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

    更新されたインスタンス作成ページ。

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

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

データベースの作成

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

    Spanner インスタンスに移動

  2. テスト インスタンスなどの作成したインスタンスをクリックします。

  3. 開いたインスタンスの [概要] ページで、[データベースを作成する] をクリックします。

  4. データベース名には、example-db などの名前を入力します。

  5. データベース言語を選択します。

    PostgreSQL のサポートや、言語の選択に関するガイダンスについては、PostgreSQL Interface をご覧ください。 Google 標準 SQL を選択した場合は、このクイックスタートの次のセクションの [スキーマを定義する] テキスト フィールドでスキーマを定義します。

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

    更新されたデータベース作成ウィンドウ。

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

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

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

  1. データベースの [概要] ページの [テーブル] セクションで、[テーブルを作成する] をクリックします。

  2. [DDL ステートメントを書き込む] ページで、次のように入力します。

    Google 標準 SQL

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

    PostgreSQL

    CREATE TABLE Singers (
      SingerId   BIGINT PRIMARY KEY,
      FirstName  VARCHAR(1024),
      LastName   VARCHAR(1024),
      SingerInfo BYTEA,
      BirthDate  TIMESTAMPTZ
    );
    
  3. [送信] をクリックします。

    Google Cloud コンソールがデータベースの [概要] ページに戻り、[スキーマの更新] が進行中であることが表示されます。更新が完了すると、次のようなページが表示されます。

    Google 標準 SQL

    更新された概要ページ。

    PostgreSQL

    更新された概要ページ。

    PostgreSQL でテーブル名が小文字に変換されていることに注意します。

データの挿入と変更

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

データの挿入

  1. データベースの [概要] ページのテーブルで、Singers テーブルをクリックします。

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

  2. ナビゲーション・メニューで、[データ] をクリックして、Singers テーブルの [データ] ページを表示します。

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

    Google Cloud Console には、Singers テーブルに行を挿入し、その挿入の結果を表示するために編集するINSERT ステートメントと SELECT ステートメントを含む新しいクエリタブを有する、Singers テーブルの [クエリ] ページが表示されます。

    Google 標準 SQL

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

    PostgreSQL

      -- 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: bigint
        <birthdate>, -- type: timestamp with time zone
        <firstname>, -- type: character varying
        <lastname>, -- type: character varying
        <singerinfo> -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=<singerid>;
    

    なお、PostgreSQL では、列名がすべて小文字に変換されます。

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

    Google 標準 SQL

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

    PostgreSQL

      -- 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: bigint
        NULL, -- type: timestamp with time zone
        'Marc', -- type: character varying
        'Richards', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=1;
    
  5. [実行] をクリックします。

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

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

    Google 標準 SQL

    1 行で構成される更新された Singers テーブルデータ。

    PostgreSQL

    1 行で構成される更新された Singers テーブルデータ。

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

    Google Cloud Console には、同じ INSERT ステートメントと SELECT ステートメントを含む新しいクエリタブを有する Singers テーブルの [クエリ] ページが再表示されます。

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

    Google 標準 SQL

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

    PostgreSQL

      -- 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: bigint
        NULL, -- type: timestamp with time zone
        'Catalina', -- type: character varying
        'Smith', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=2;
    
  9. [実行] をクリックします。

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

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

    Google 標準 SQL

    2 行で構成される更新された Singers テーブルデータ。

    PostgreSQL

    2 行で構成される更新された Singers テーブルデータ。

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

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

    Cloud Spanner には、同じINSERTステートメントとSELECTステートメントを含む新しいクエリタブを有するSingers テーブルのクエリページが再表示されます。

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

    Google 標準 SQL

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

    PostgreSQL

      -- 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: bigint
        NULL, -- type: timestamp with time zone
        'Kena', -- type: character varying
        '', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=3;
    

    なお、姓の列に指定された値は、NULL 値ではなく、空の文字列('')です。

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

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

  4. テーブルのリンクをクリックします。Singers テーブルには 3 つの行があり、3 の 主キー値を有する行には、LastName 列に空の文字列があります。

    Google 標準 SQL

    3 行で構成される更新された Singers テーブルデータ。

    PostgreSQL

    3 行で構成される更新された Singers テーブルデータ。

データの編集

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

    Spanner には、編集できるテンプレート UPDATE ステートメントと SELECT のステートメントを含む新しいタブを有する [クエリ] ページが表示されます。なお、両方のステートメントの WHERE 句は、更新する行が 3 の主キー値を持つ行であることを示しています。

    Google 標準 SQL

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

    PostgreSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      singers
    SET
      birthdate=NULL,
      firstname='Kena',
      lastname='',
      singerinfo=NULL
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  2. UPDATE ステートメントの SET 句を編集して、生年月日のみを更新します。

    Google 標準 SQL

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

    PostgreSQL

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

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

  4. [結果] タブで、[テーブル] リンクをクリックします。

    更新された行には、生年月日の値が入っています。

    Google 標準 SQL

    更新された行がある更新された Singers テーブルデータ。

    PostgreSQL

    更新された行がある更新された Singers テーブルデータ。

データの削除

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

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

    Google 標準 SQL

    2 行で構成される更新された Singers テーブルデータ。SingerId 2 の行が消えました。

    PostgreSQL

    2 行で構成される更新された Singers テーブルデータ。SingerId 2 の行が消えました。

クエリの実行

  1. データベースの [概要] ページで、ナビゲーション メニューの [クエリ] をクリックします。

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

    Google 標準 SQL

    SELECT * FROM Singers;
    

    PostgreSQL

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

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

    Google 標準 SQL

    クエリ結果

    PostgreSQL

    クエリ結果

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

クリーンアップ

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

データベースの削除

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

    Spanner インスタンスに移動

  2. テスト・インスタンスなど、削除するデータベースがあるインスタンスの名前をクリックします。

  3. example-db など、削除するデータベースの名前をクリックします。

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

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

インスタンスの削除

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

    Spanner インスタンスに移動

  2. [テスト インスタンス] など、削除するインスタンスの名前をクリックします。

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

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

次のステップ