シャード表を作成します。作業は中央管理ノードで行います。
詳細は“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が作成される