データ プレースメントの作成と管理

このページでは、Spanner でデータ プレースメントを作成して管理する方法について説明します。

地域別パーティショニングの仕組みの詳細については、地域別パーティショニングの概要をご覧ください。

データ プレースメントを作成する

Spanner パーティションデータベースを作成したら、プレースメントを作成します。

Console

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

    Instances

  2. ユーザーが作成したパーティションがあるインスタンスを選択します。

  3. データをパーティショニングするデータベースを選択します。

  4. ナビゲーション メニューで [Spanner Studio] をクリックします。

  5. [Spanner Studio] ページで、 [新しいタブ] をクリックするか、空のエディタタブを使用します。

  6. CREATE PLACEMENT DDL ステートメントを入力します。

    たとえば、次のコマンドを実行して、パーティション europe-partition にプレースメント テーブル europeplacement を作成できます。

      CREATE PLACEMENT `europeplacement` OPTIONS(instance_partition="europe-partition");
    

    省略可: [オブジェクト エクスプローラ] ペインを使用して、プレースメント オブジェクトを表示、検索、操作することもできます。詳細については、データを探索するをご覧ください。

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

gcloud

gcloud CLI コマンドを使用してプレースメントを作成するには、gcloud spanner databases ddl update を使用します。

たとえば、パーティション europe-partition にプレースメントを作成します。

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"

データ プレースメントを削除する

プレースメントを削除することはできません。プレースメントとそれに関連するデータを削除するには、データベースを削除する必要があります。詳細については、データベースを削除するをご覧ください。

プレースメント キーを使用してテーブルを作成する

コンソール

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. CREATE TABLE DDL ステートメントを入力します。

    たとえば、プレースメント キーを使用して歌手データをパーティショニングする Singers テーブルを作成できます。

    CREATE TABLE Singers (
      SingerId INT64 NOT NULL,
      Name STRING(MAX) NOT NULL,
      ...
      Location STRING(MAX) NOT NULL PLACEMENT KEY
    ) PRIMARY KEY (SingerId);
    

gcloud

テーブルを作成するには、gcloud spanner databases ddl update を使用します。

たとえば、プレースメント キーを使用して歌手データをパーティショニングする Singers テーブルを作成できます。

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId)"

プレースメント キーを使用してテーブルを編集する

プレースメント キーをテーブルから削除することはできません。また、テーブルの作成後にプレースメント キーをテーブルに追加することもできません。ただし、ALTER TABLE DDL ステートメントを使用して、プレースメント以外のキー列の追加や削除を行うなど、テーブル内の他のフィールドを変更することはできます。

プレースメント キーを使用してテーブルを削除する

プレースメント キーを含むテーブルを削除する前に、まず次の操作を行う必要があります。

  1. テーブル内のすべての行を削除する。
  2. データベースの version_retention_period が合格するまで待つ。詳しくは、ポイントインタイム リカバリをご覧ください。次に、以下の手順で操作します。

Console

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. DROP TABLE DDL ステートメントを入力します。

    たとえば、Singers テーブルを削除します。

    DROP TABLE Singers;
    

gcloud

テーブルを削除するには、gcloud spanner databases ddl update を使用します。

たとえば、Singers テーブルを削除します。

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="DROP TABLE Singers"

プレースメント テーブルに行を挿入する

Console

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. INSERT INTO DDL ステートメントを入力します。

    たとえば、歌手 Marc Richards を Singers テーブルに追加し、europeplacement でパーティショニングします。

      INSERT INTO Singers(SingerId, Name, Location)
      VALUES (1, 'Marc Richards', 'europeplacement')
    

gcloud

テーブルにデータを書き込むには、gcloud spanner rows insert を使用します。

たとえば、歌手 Marc Richards を Singers テーブルに追加し、europeplacement でパーティショニングします。

gcloud spanner rows insert --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'

プレースメント テーブルの行を更新する

コンソール

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. DML またはミューテーションを使用して、プレースメント テーブルのデータを更新します。

    たとえば、Singers テーブルの singerid=1 の名前を Catalina Smith に更新します。

    UPDATE Singers s
    SET s.name='Catalina Smith'
    WHERE s.id=1;
    

gcloud

プレースメント テーブルのデータを更新するには、gcloud spanner rows update を使用します。

たとえば、Singers テーブルの singerid=1 の名前を Catalina Smith に更新します。

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'

プレースメント テーブルの行を移動する

コンソール

  1. 新しいパーティションとプレースメントをまだ作成していない場合は作成します。
  2. ナビゲーション メニューで [Spanner Studio] をクリックします。
  3. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  4. DML またはミューテーションを使用して、データを新しいパーティションに移動します。

    たとえば、Singers テーブルの singerid=1asiaplacement に移動します。

    UPDATE Singers s
    SET s.location='asiaplacement'
    WHERE s.id=1;
    

gcloud

データを移動するパーティションとプレースメントを作成したら、gcloud spanner rows update を使用します。

たとえば、Singers テーブルの singerid=1asiaplacement に移動します。

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,Location='asiaplacement'

プレースメント テーブルの行を削除する

コンソール

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. DML またはミューテーションを使用してデータを削除します。

    たとえば、Singers テーブルの singerid=1 を削除します。

    DELETE FROM Singers s
    WHERE s.id=1;
    

gcloud

データを削除するには、gcloud spanner rows delete を使用します。

たとえば、Singers テーブルの singerid=1 を削除します。

gcloud spanner rows delete --table=Singers --database=example-db \
  --instance=test-instance --keys=1

プレースメント テーブルのデータをクエリする

Console

  1. ナビゲーション メニューで [Spanner Studio] をクリックします。
  2. [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
  3. クエリを実行します。

    たとえば、Singers テーブルに対してクエリを実行します。

    SELECT * FROM Singers s WHERE s.SingerId=1;
    

gcloud

データをクエリするには、gcloud spanner databases execute-sql を使用します。

たとえば、Singers テーブルに対してクエリを実行します。

gcloud spanner databases execute-sql example-db \
  --sql='SELECT * FROM Singers s WHERE s.SingerId=1'

次のステップ