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

1.3.1 シャーディング

シャードとは、物理的には、特定のノードに関連付けられた複数のテーブル空間のグループです。同時に、アプリケーションが、特定のパーティションを保持するノードにアクセスするときの論理的な単位でもあります。 例えば、あるアプリケーションがアクセスするいくつかのテーブルをそれぞれパーティショニングし、それらを同じシャード上に配置できます。また、シャードは論理的なアクセスの単位であるため、パーティションだけでなく、通常のテーブルもシャードに紐付けることもできます。

子テーブルを各データノードに分散することを“シャーディング”と呼びます。具体的には、テーブルをパーティショニングした各パーティションを、シャード上に定義したテーブル空間に配置することです。シャード上のテーブル空間に配置されたテーブルの親テーブルを、“シャード表”と呼びます。

参考

シャード名を使った接続は、Connection Managerによって提供されます。詳細は、“第3章 スケールアウト環境のセットアップ”と“第4章 アプリケーション開発”を参照してください。

以下の図は具体的な配置例です。 銀行のIDをパーティショニングのキーとし、支店テーブルと口座テーブルをシャーディングしています。銀行Aを対象とするアプリケーションは、シャードAに接続することで、銀行Aのデータが配置されたノードにアクセスすることができます。

また、銀行Aのデータを、さらにパーティショニングし、異なるテーブル空間に配置してディスクの負荷を分散させることも可能です。ただし、これらのテーブル空間は、すべて同じシャード上に配置しなければなりません。