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