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