コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

コンソールを使用したクイックスタート

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

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

始める前に

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

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

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

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

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

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

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

    Cloud Spanner API を有効にする

インスタンスを作成する

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

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

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

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

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

  4. [インスタンス ID] に「test-instance」と入力します。

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

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

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

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

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

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

データベースの作成

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

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

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

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

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

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

    PostgreSQL のサポートや、言語の選択に関するガイダンスについては、PostgreSQL Interface をご覧ください。

  6. GoogleSQL を選択した場合、ここでは [Define your schema] テキスト フィールドを空白のままにします。スキーマは、このクイックスタートの次のセクションで定義します。

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

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

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

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

    Google Cloud コンソールに [DDL ステートメントの記述] ページが表示されます。

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

    GoogleSQL

    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 コンソールがデータベースの example-db[概要] ページに戻り、[スキーマの更新] が進行中であることが表示されます更新が完了すると、次のようなページが表示されます。

    GoogleSQL

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

    PostgreSQL

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

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

データの挿入と変更

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

データを挿入する

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

    Google Cloud コンソールで、テーブルの Singers[スキーマ] ページが表示されます

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

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

    Google Cloud コンソールは、Singersテーブルに行を挿入してその挿入結果を表示するために編集するテンプレート ステートメントと INSERT および SELECT ステートメントを含む新しいクエリタブがあるSingersテーブルの [クエリ] ページを表示します。

    GoogleSQL

      -- 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 句を編集します。

    GoogleSQL

      -- 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 つ追加されました。

    GoogleSQL

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

    PostgreSQL

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

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

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

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

    GoogleSQL

      -- 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 つになりました。

    GoogleSQL

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

    PostgreSQL

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

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

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

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

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

    GoogleSQL

      -- 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 の行では、姓の列が空の文字列になっています。

    GoogleSQL

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

    PostgreSQL

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

データの編集

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

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

    GoogleSQL

      -- 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='',
      firstname='Kena',
      lastname='',
      singerinfo=''
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  2. UPDATE ステートメントの SET 句を編集して、生年月日のみを更新します。

    GoogleSQL

      -- 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. [結果] タブで、[テーブル] リンクをクリックします。

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

    GoogleSQL

    更新された行がある Singers テーブルデータのスクリーンショット

    PostgreSQL

    更新された行がある Singers テーブルデータのスクリーンショット

データの削除

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

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

    GoogleSQL

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

    PostgreSQL

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

クエリの実行

  1. example-db [概要] ページのナビゲーション メニューで [クエリ] をクリックし、example-db の [クエリ] ページを表示します。

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

    GoogleSQL

    SELECT * FROM Singers;
    

    PostgreSQL

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

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

    GoogleSQL

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

    PostgreSQL

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

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

クリーンアップ

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

データベースの削除

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

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

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

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

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

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

インスタンスの削除

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

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

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

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

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

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

次のステップ