このページでは、Spanner のパーティションを作成して管理する方法について説明します。
始める前に
パーティションを使用するには、空のデータベースに opt_in_dataplacement_preview
データベース オプションを設定する必要があります。
コンソール
Google Cloud コンソールの [インスタンス] ページに移動します。
パーティションを追加するインスタンスを選択します。
データをパーティショニングする空のデータベースを選択します。
ナビゲーション メニューで [Spanner Studio] をクリックします。
[Spanner Studio] ページで、
[新しいタブ] をクリックするか、空のエディタタブを使用します。次の
ALTER DATABASE
DDL ステートメントを入力します。GoogleSQL
ALTER DATABASE DATABASE_ID SET OPTIONS (opt_in_dataplacement_preview = true);
DATABASE_ID は、データベースの一意の識別子に置き換えます。
PostgreSQL
ALTER DATABASE DATABASE_ID SET "spanner.opt_in_dataplacement_preview" = TRUE;
DATABASE_ID は、データベースの一意の識別子に置き換えます。
[実行] をクリックします。
gcloud
opt_in_dataplacement_preview
データベース オプションを設定するには、gcloud spanner databases ddl update
を使用します。
GoogleSQL
gcloud spanner databases ddl update DATABASE_ID \
--instance=INSTANCE_ID \
--ddl="ALTER DATABASE DATABASE_ID SET OPTIONS (opt_in_dataplacement_preview = true);"
以下のように置き換えます。
DATABASE_ID
: Spanner データベースの永続的な識別子。INSTANCE_ID
: Spanner インスタンスの永続的な ID。
PostgreSQL
gcloud spanner databases ddl update DATABASE_ID \
--instance=INSTANCE_ID \
--ddl="ALTER DATABASE DATABASE_ID SET "spanner.opt_in_dataplacement_preview" = TRUE"
以下のように置き換えます。
DATABASE_ID
: Spanner データベースの永続的な識別子。INSTANCE_ID
: Spanner インスタンスの永続的な ID。
パーティションを作成する
Console
Google Cloud コンソールで、[Spanner] ページを開きます。
パーティションを追加するインスタンスを選択します。
ナビゲーション メニューで [パーティション] を選択します。
[パーティションを作成] をクリックします。
パーティションを永続的に識別するためのパーティション ID を入力します。パーティション ID も Google Cloud プロジェクト内で一意にする必要があります。パーティション ID は後で変更できません。
[構成を選択] セクションで、[リージョン] または [マルチリージョン] を選択します。または、リージョン間で仕様を比較する場合は、[リージョン構成の比較] をクリックします。
プルダウン メニューから構成を選択します。
[コンピューティング容量を割り当てる] セクションの [単位] で、次のいずれかをクリックします。
- 小規模なインスタンス パーティションの処理ユニット。
- 大規模なインスタンスなら [Nodes]。ノードは 1,000 処理ユニットです。
選択した単位の値を入力します。
パーティションには、少なくとも 1 つのノードまたは 1,000 個の処理ユニットが必要です。
[作成] をクリックしてパーティションを作成します。
gcloud
パーティションを作成するには、gcloud beta spanner instance-partitions create
を使用します。
gcloud beta spanner instance-partitions create PARTITION_ID \ --config=PARTITION_CONFIG \ --description="PARTITION_DESCRIPTION" \ --instance=INSTANCE_ID \ [--nodes=NODE_COUNT | --processing-units=PROCESSING_UNIT_COUNT]
以下のように置き換えます。
- PARTITION_ID: Google Cloud プロジェクト内で一意の永続的なパーティション ID。パーティション ID を後で変更することはできません。
- PARTITION_CONFIG: パーティション構成の永続的な ID。パーティションの地理的位置を定義し、データの保存場所に影響します。
- PARTITION_DESCRIPTION: Google Cloud コンソールに表示されるパーティションの名前。パーティション名は、Google Cloud プロジェクト内で一意である必要があります。
- INSTANCE_ID: このパーティションが存在する Spanner インスタンスの永続的な ID。
- NODE_COUNT: ノード数で表されるパーティションのコンピューティング容量。1 ノードは 1,000 処理ユニットに相当します。
- PROCESSING_UNIT_COUNT: 処理ユニット数で表されるインスタンスのコンピューティング容量。パーティションには少なくとも 1,000 個の処理ユニットが必要です。数量は 1,000 の倍数(1,000、2,000、3,000 など)で入力します。
たとえば、eur3
に 5 つのノードを持つパーティション europe-partition
を作成するには、次のコマンドを実行します。
gcloud beta spanner instance-partitions create europe-partition --config=eur3 \
--description="europe-partition" --instance=test-instance --nodes=5
クライアント ライブラリ
C++
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
C#
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Go
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Java
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Node.js
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
PHP
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Python
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
パーティションの説明を取得する
gcloud
パーティションの説明を取得するには、gcloud beta spanner instance-partitions describe
を使用します。
gcloud beta spanner instance-partitions describe PARTITION_ID \ --instance=INSTANCE_ID
以下のように置き換えます。
- PARTITION_ID: パーティションの永続的な ID。
- INSTANCE_ID: インスタンスの永続的な識別子。
たとえば、パーティション europe-partition
の説明を取得するには、次のコマンドを実行します。
gcloud beta spanner instance-partitions describe europe-partition
--instance=test-instance
パーティションを一覧表示する
Console
Google Cloud コンソールで、[Spanner] ページを開きます。
リストからインスタンスを選択します。
ナビゲーション メニューで [パーティション] を選択します。
そのインスタンスに関連付けられているパーティションのリストが表示されます。
gcloud
パーティションを一覧表示するには、gcloud beta spanner instance-partitions list
を使用します。
gcloud beta spanner instance-partitions list --instance=INSTANCE_ID
gcloud CLI によって、各パーティションの ID、表示名、構成、コンピューティング容量とともに Spanner パーティションの一覧が出力されます。
パーティションを編集する
次のセクションでは、パーティションのコンピューティング容量を変更する方法について説明します。パーティション ID、名前、構成は変更できません。
コンピューティング容量を変更する
CPU 使用率とストレージ使用率が推奨最大値を超えないように、十分なコンピューティング容量をプロビジョニングする必要があります。詳細については、Spanner の割り当てと上限をご覧ください。
パーティションのコンピューティング容量を増やすには、コンピューティング容量を追加するだけの十分な割り当てが Google Cloud プロジェクトに必要です。増加リクエストが完了するまでの時間は、リクエストのサイズによって異なります。ほとんどの場合、リクエストは数分以内に完了します。まれに、スケールアップが完了するまでに最大 1 時間かかることがあります。
Console
Google Cloud コンソールで、[Spanner] ページを開きます。
リストからインスタンスを選択します。
ナビゲーション メニューで [パーティション] を選択します。
パーティションのリストで、[操作] 列の [その他の操作] をクリックし、[編集] を選択します。
コンピューティング容量を変更するには、測定単位(処理ユニットまたはノード)を選択し、数量を入力します。処理単位を使用する場合は、1,000 の倍数(1,000、2,000、3,000 など)で数量を入力します。各ノードは 1,000 の処理ユニットに相当します。
パーティションには、少なくとも 1 つのノード(1,000 処理ユニット)が必要です。
[保存] をクリックします。
コンピューティング容量を追加するのに十分な割り当てがないというダイアログが表示された場合は、指示に従って割り当ての増加をリクエストします。
gcloud
パーティションのコンピューティング容量を変更するには、gcloud beta spanner instance-partitions update
を使用します。このコマンドを使用するときは、コンピューティング容量をノードまたは処理ユニットの数として指定します。
gcloud beta spanner instance-partitions update PARTITION_ID / --instance=INSTANCE_ID / [--nodes=NODE_COUNT | --processing-units=PROCESSING_UNIT_COUNT] [--async]
以下のように置き換えます。
- PARTITION_ID: パーティションの永続的な ID。
- INSTANCE_ID: インスタンスの永続的な識別子。
- NODE_COUNT: ノード数で表されるパーティションの新しいコンピューティング容量。1 ノードは 1,000 処理ユニットに相当します。
- PROCESSING_UNIT_COUNT: パーティションの新しいコンピューティング容量(処理単位数で表されます)。パーティションには 1,000 以上の処理ユニットが必要です。数量は 1,000 の倍数(1,000、2,000、3,000 など)で入力します。
オプションのフラグ:
--async
: このフラグは、処理中のオペレーションの完了を待たずに、リクエストをすぐに返す場合に使用します。
リクエストのステータスを確認するには、gcloud spanner operations describe
を実行します。
パーティションを削除する
プレースメントまたはデータに関連付けられているパーティションは削除できません。パーティションを削除する前に、まずパーティション内のデータの移動を行うか、パーティションを使用するプレースメント テーブルを削除する必要があります。
Console
Google Cloud コンソールで、[Spanner] ページを開きます。
リストからインスタンスを選択します。
ナビゲーション メニューで [パーティション] を選択します。
パーティションのリストで、[アクション] 列の [その他のアクション] をクリックし、[削除] を選択します。
手順に沿って、パーティションを削除することを確認します。
[削除] をクリックします。
gcloud
gcloud beta spanner instance-partitions delete
コマンドを使用します。
gcloud beta spanner instance-partitions delete PARTITION_ID --instance=INSTANCE_ID
次のステップ
- プレースメント テーブルとキーを作成、管理する方法を学習する。