ページの先頭行へ戻る
Enterprise Postgres 16 SP1 スケールアウト運用ガイド

F.7.1 シャード表の作成

シャード表を作成します。作業は中央管理ノードで行います。

詳細は“5.1 シャード表とテーブル空間”を参照してください。

データノードでのシャードの割り当て

シャード表の作成対象となるデータノードのプライマリサーバおよびスタンバイサーバの両方で、事前に同じ絶対パスでテーブル空間用の空ディレクトリを作成します。

中央管理ノード(プライマリサーバ)でのシャード表の作成

中央管理ノード(プライマリサーバ)で、以下のようなSQLを実行してシャードとシャード表を作成します。

-- 1) シャードの作成
CREATE SHARD shard1 ON datanode1;

-- 2) テーブル空間の作成
-- パスは中央管理ノードでなく、データノード側のパスとして用意する必要あり
CREATE TABLESPACE tbs_shard1 LOCATION '/home/fsepuser/shard_tablespace/shard1' IN shard1;

-- 3) 親テーブルの作成
SET pgx_ddl_target_node = 'ALLNODES';
CREATE TABLE branches(branch_id varchar(64), branch_balance  bigint, accounts_num int) PARTITION BY LIST(branch_id);
CREATE TABLE accounts(account_id int, branch_id varchar(64), account_name text, account_balance int) PARTITION  BY LIST(branch_id);
RESET pgx_ddl_target_node;

-- 4) 子テーブルの作成
CREATE TABLE branch_a PARTITION OF branches FOR VALUES IN ('a') TABLESPACE tbs_shard1;
CREATE TABLE account_a PARTITION OF accounts FOR VALUES IN ('a') TABLESPACE tbs_shard1;
-- shard1にはblanch_idのaのbranch_aとaccount_aが作成される