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

5.14 スケールアウトとFUJITSU Enterprise Postgresの機能の組み合わせ

スケールアウトとFUJITSU Enterprise Postgresが提供する機能との組み合わせについて説明します。

pgx_dmpall、pgx_rcvall

5.12 ノードのバックアップ”および“5.13.3.2 物理バックアップを使用したリカバリ”を参照してください。

透過的データ暗号化

シャード表やレプリケーションテーブルなどのデータも、各ノードの暗号化テーブル空間に配置することで、暗号化可能です。キーストアはノードごとに作成してください。

データ秘匿化

データノード上のテーブルに対し秘匿化ポリシーを作成していた場合、データノードに対して直接アクセスした場合と比較して、結果が異なる場合があります。

例えば、下記のようなケースで説明します。

データノードに直接アクセスし、“select c1 from t1, t2 where c1 = c2”というSQLを実行すると、(0)の1行のみが返却されます。これは、SQLを実行した結果に対して秘匿化ポリシーが適用されるためです。一方で、中央管理ノード経由で同じSQLを実行すると、アクセスプランによっては、(0), (0), (0), (0)の4行が返却されるケースがあります。これは、中央管理ノード経由でSQLを実行すると、各テーブルのデータを取得するために内部的にデータノードに対してSQLを実行します。この内部で実行されるSQLが返却されたタイミングで秘匿化ポリシーが適用されるため、中央管理ノードからはt1とt2には両方とも(0), (0)の2行があるように見えるためです。

これを防ぐために、中央管理ノードからデータノードに対して内部的に実行されるSQLでは秘匿化ポリシーを適用せず、中央管理ノード上で秘匿化ポリシーを適用する必要がでてきます。これを実現するために、下記を実施します。

pgx_loader

接続したノードに閉じた範囲でロードができます。

複数ノードに跨るデータをロードする場合には、データをノードごとに分割し、ノードごとにデータをロードしてください。

インメモリ機能

中央管理ノードに集計を実施するSQLを実行した場合、データノードにVertical Clustered Index (VCI)を作成している場合でも、VCIは利用されません。これは、中央管理ノードからデータノードに内部的に実行されるSQLは集計のクエリとならず、VCIが利用されないためです。

監査ログ

Session Audit Loggingでは、pgaudit設定ファイル内のruleセクションで、出力するログを絞り込むためのルールを指定します。スケールアウトでは、自動で実行されるSQLがあります。以下に、これらのSQLのログ出力を制御するために追加で必要な情報を示します。

Npgsql

接続ルーティング機能はConnection Managerを使用しますが、NpgsqlがConnection Managerに対応していないため、Npgsqlで接続ルーティングを使用することはできません。

Npgsqlを使用したアプリケーションを動作させる場合、各ノードに直接アクセスしてください。

oracle_fdw、dblink、postgres_fdw

中央管理ノード経由でデータノードを更新した場合、postgres_scaleout_fdwが自動的に二相コミットを使用します。一方で、oracle_fdw、dblink、postgres_fdwは二相コミットに対応していません。そのため、中央管理ノード経由で、データノードとデータノード以外のインスタンスにoracle_fdwなどで接続した場合には、トランザクションの原始性は保たれません。

auto_explain、pg_hint_plan

auto_explainの使用”および“pg_hint_planの使用”を参照してください。

スケートで利用できない機能

下記の機能は、スケールアウトでは利用できません。

上記以外の機能

データノードまたは中央管理ノードに閉じた範囲であれば使用可能です。