18.2 オプションを使用したプロパティ・グラフの作成
グラフ最適化、および頂点が欠落しているエッジの処理の様々なオプションについて学習します。
CREATE PROPERTY GRAPH
文でOPTIONS句を使用すると、次の各項で説明するオプションを指定できます。
グラフ最適化オプションの使用
問合せや分析、または更新操作を実行するためのグラフをロードできます。要件に応じて、CREATE PROPERTY GRAPH
文のOPTIONS句を使用して、読取りまたは更新のパフォーマンスを最適化できます。
次の表に、OPTIONS
句でサポートされる有効なオプションを示します。
表18-1 グラフ最適化オプション
オプション | 説明 |
---|---|
OPTIMIZED_FOR_READ |
これは、読取り集中型のシナリオに使用できます。 |
OPTIMIZED_FOR_UPDATES |
これはデフォルトのオプションで、高速更新に使用できます。 |
SYNCHRONIZABLE |
これにより、フラッシュバック・テクノロジを介してグラフを同期できるようになります。ただし、エッジ・キーのいずれかがコンポジット・キーであるか、または数値以外のキーである場合は、例外がスローされます。このような場合、通常はグラフのロードはできますが、PGXによって新しい(コンポジット以外および数値の)エッジ・キーが生成されます。そのため、このようなエッジをデータベースと同期することはできません。 |
たとえば、次のグラフは、OPTIMIZED_FOR_UPDATES
およびSYNCHRONIZABLE
オプションを使用して設定されます。
CREATE PROPERTY GRAPH hr
VERTEX TABLES (
employees LABEL employee, departments LABEL department
)
EDGE TABLES (
departments AS managed_by
SOURCE KEY ( department_id ) REFERENCES departments (department_id)
DESTINATION employees
NO PROPERTIES
) OPTIONS (OPTIMIZED_FOR_UPDATES, SYNCHRONIZABLE)
ノート:
SYNCHRONIZABLE
オプションは、OPTIMIZED_FOR_UPDATES
およびOPTIMIZED_FOR_READ
と組み合せて使用できます。ただし、OPTIMIZED_FOR_UPDATES
とOPTIMIZED_FOR_READ
は一緒には使用できず、一緒に使用すると例外がスローされます。- 同期可能なグラフを作成する場合は、頂点キーとエッジ・キーが数値であり、コンポジットではないことを確認します。
オプションを使用した頂点が欠落しているエッジの処理
エッジのソース頂点または宛先頂点のいずれか、あるいはその両方が欠落している場合は、CREATE PROPERTY GRAPH
文のOPTIONS句で次のいずれかの値を構成できます。
IGNORE EDGE ON MISSING VERTEX
: 欠落した頂点のエッジを無視する必要があることを指定します。IGNORE EDGE AND LOG ON MISSING VERTEX
: 欠落した頂点のエッジを無視し、無視されたすべてのエッジをログに記録する必要があることを指定します。IGNORE EDGE AND LOG ONCE ON MISSING VERTEX
: 欠落した頂点のエッジを無視し、最初の無視されたエッジのみをログに記録する必要があることを指定します。ERROR ON MISSING VERTEX
(デフォルト): 頂点が欠落しているエッジに対してエラーをスローする必要があることを指定します。
たとえば、次のグラフはERROR ON MISSING VERTEX
オプションを使用して設定されます。
CREATE PROPERTY GRAPH region_graph
VERTEX TABLES (
regions KEY (region_id),
countries KEY (country_id)
)
EDGE TABLES (
countries AS countries_regions
SOURCE KEY ( country_id ) REFERENCES countries(country_id)
DESTINATION KEY (region_id) REFERENCES regions(region_id)
NO PROPERTIES
) OPTIONS ( ERROR ON MISSING VERTEX)
実行すると、次のエラー・レスポンスが表示されます。
unknown vertex ID received in destination 4 of edge 5
IGNORE EDGE AND LOG ON MISSING VERTEX
またはIGNORE EDGE AND LOG ONCE ON MISSING VERTEX
オプションを使用する場合は、/etc/oracle/graph/logback.xml
のデフォルトのLogback構成ファイルと、/etc/oracle/graph/logback-server.xml
のグラフ・サーバー(PGX)ロガー構成ファイルを更新して、DEBUGログを記録する必要があります。そのようにすることでのみ、無視されたエッジを/var/opt/log/pgx-server.log
ファイルで確認できます。
親トピック: グラフ・サーバー(PGX)に対するPGQL問合せの実行