このページでは、Spanner でデータ プレースメントを作成して管理する方法について説明します。
地域別パーティショニングの仕組みの詳細については、地域別パーティショニングの概要をご覧ください。
データ プレースメントを作成する
Spanner パーティションとデータベースを作成したら、プレースメントを作成します。
Console
Google Cloud コンソールの [インスタンス] ページに移動します。
ユーザーが作成したパーティションがあるインスタンスを選択します。
データをパーティショニングするデータベースを選択します。
ナビゲーション メニューで [Spanner Studio] をクリックします。
[Spanner Studio] ページで、
[新しいタブ] をクリックするか、空のエディタタブを使用します。CREATE PLACEMENT
DDL ステートメントを入力します。たとえば、次のコマンドを実行して、パーティション
europe-partition
にプレースメント テーブルeuropeplacement
を作成できます。CREATE PLACEMENT `europeplacement` OPTIONS(instance_partition="europe-partition");
省略可: [オブジェクト エクスプローラ] ペインを使用して、プレースメント オブジェクトを表示、検索、操作することもできます。詳細については、データを探索するをご覧ください。
[実行] をクリックします。
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')"
データ プレースメントを削除する
プレースメントを削除することはできません。プレースメントとそれに関連するデータを削除するには、データベースを削除する必要があります。詳細については、データベースを削除するをご覧ください。
プレースメント キーを使用してテーブルを作成する
コンソール
- ナビゲーション メニューで [Spanner Studio] をクリックします。
- [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
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 ステートメントを使用して、プレースメント以外のキー列の追加や削除を行うなど、テーブル内の他のフィールドを変更することはできます。
プレースメント キーを使用してテーブルを削除する
プレースメント キーを含むテーブルを削除する前に、まず次の操作を行う必要があります。
- テーブル内のすべての行を削除する。
- データベースの
version_retention_period
が合格するまで待つ。詳しくは、ポイントインタイム リカバリをご覧ください。次に、以下の手順で操作します。
Console
- ナビゲーション メニューで [Spanner Studio] をクリックします。
- [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
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
- ナビゲーション メニューで [Spanner Studio] をクリックします。
- [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
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'
プレースメント テーブルの行を更新する
コンソール
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'
プレースメント テーブルの行を移動する
コンソール
gcloud
データを移動するパーティションとプレースメントを作成したら、gcloud spanner rows update
を使用します。
たとえば、Singers
テーブルの singerid=1
を asiaplacement
に移動します。
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,Location='asiaplacement'
プレースメント テーブルの行を削除する
コンソール
gcloud
データを削除するには、gcloud spanner rows delete
を使用します。
たとえば、Singers
テーブルの singerid=1
を削除します。
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
プレースメント テーブルのデータをクエリする
Console
- ナビゲーション メニューで [Spanner Studio] をクリックします。
- [Spanner Studio] ページで、[ 新しいタブ] をクリックするか、空のエディタタブを使用します。
クエリを実行します。
たとえば、
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'
次のステップ
地域別パーティショニングの詳細を確認する。
パーティションを作成して管理する方法を学習する。