16.2.1.3 グラフ構成のオプション
グラフ構成のオプションについて学習します。
次の表に、すべてのグラフ構成に共通するJSONフィールドを示します。
表16-4 グラフ構成JSONフィールド
| フィールド | 型 | 説明 | デフォルト | 
|---|---|---|---|
| name | string | グラフの名前。 | 必須 | 
| array_compaction_threshold | number | [グラフが更新用に最適化されている場合にのみ関連]デルタログを新規配列に圧縮するタイミングを決定するために使用されるしきい値。エンジン min_array_compaction_threshold値より小さい場合は、かわりにmin_array_compaction_thresholdが使用されます | 0.2 | 
| attributes | object | グラフ・データの読取りおよび書込みに必要な追加属性。 | null | 
| data_source_id | string | RDBMSインスタンスへの接続に使用するデータ・ソースID。 | null | 
| edge_id_strategy | enum[no_ids, keys_as_ids, unstable_generated_ids] | このグラフのエッジに使用するID戦略を示します。指定しない(または nullに設定されている)場合、戦略は、ロード中に、またはデフォルト値を使用して決定されます。 | null | 
| edge_id_type | enum[long] | エッジIDのタイプ。これを longに設定するには、エッジ・プロバイダのIDがグラフ間で一意である必要があります。これらのIDはグローバルIDとして使用されます。これをnullに設定(または省略)すると、異なるエッジ・プロバイダ間でIDの繰返しが許可され、PGXにより、エッジに対してグローバルに一意のIDが自動的に生成されます。 | null | 
| edge_providers | オブジェクトの配列 | このグラフのエッジ・プロバイダのリスト。 | [] | 
| error_handling | object | エラー処理構成。 | null | 
| external_stores | オブジェクトの配列 | 外部文字列プロパティが存在する外部ストアの指定。 | [] | 
| jdbc_url | string | RDBMSインスタンスを指すJDBC URL | null | 
| keystore_alias | string | データベースへの接続時に使用するキーストアの別名。 | null | 
| loading | object | 使用するロード固有の構成。 | null | 
| local_date_format | 文字列の配列 | local_dateプロパティのロードおよび格納時に使用するlocal_date形式の配列。形式の文字列の詳細は、DateTimeFormatterを参照してください | [] | 
| max_prefetched_rows | integer | resultsetデータベースの各ラウンドトリップ中にプリフェッチされた行の最大数。 | 10000 | 
| num_connections | integer | RDBMS表との間でデータの読取りおよび書込みを行う接続の数。 | <no-of-cpus> | 
| optimized_for | enum[read, updates] | グラフで、読取り集中型のシナリオや高速更新のために最適化されたデータ構造を使用するかどうかを示します。 | read | 
| password | string | データベースに接続する際に使用するパスワード。 | null | 
| point2d | string | 空白で区切られた浮動小数点値としての経度と緯度。 | 0.0 0.0 | 
| prepared_queries | オブジェクトの配列 | 引数が指定された準備済問合せの追加リスト。'queries'と同じように機能します。1つ以上の問合せに一致するデータもロードされます。 | [] | 
| queries | 文字列の配列 | データベースからロードするデータの決定に使用される問合せのリスト。1つ以上の問合せに一致するデータがロードされます。問合せを設定しないと、グラフ全体がロードされます。 | [] | 
| redaction_rules | オブジェクトの配列 | リダクション・ルールの配列。 | [] | 
| rules_mapping | オブジェクトの配列 | ユーザーおよびロールへのリダクション・ルールのマッピング。 | [] | 
| schema | string | RDBMSオブジェクトの読取りまたは書込みに使用するスキーマ | null | 
| source_name | string | データベース・グラフの名前(グラフがデータベースからロードされる場合)。 | null | 
| source_type | enum[pg_view] | データベース・グラフのソース・タイプ。 | null | 
| time_format | 文字列の配列 | 時間プロパティのロードおよび格納時に使用する time形式。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| time_with_timezone_format | 文字列の配列 | 時間(タイムゾーン付き)プロパティをロードおよび格納する際に使用する 時間(タイムゾーン付き)の形式。形式の文字列の詳細は、DateTimeFormatterを参照してください。 | [] | 
| timestamp_format | 文字列の配列 | タイムスタンプ・プロパティのロードおよび格納時に使用する タイムスタンプ形式。形式の文字列の詳細は、DateTimeFormatterを参照してください。 | [] | 
| timestamp_with_timezone_format | 文字列の配列 | タイムスタンプ(タイムゾーン付き)プロパティをロードおよび格納する際に使用するタイムスタンプ(タイムゾーン付き)の形式。形式の文字列の詳細は、DateTimeFormatterを参照してください。 | [] | 
| username | string | RDBMSインスタンスに接続する際に使用するユーザー名。 | null | 
| vector_component_delimiter | character | ベクトル・プロパティの様々なコンポーネント用の区切り文字。 | ; | 
| vertex_id_strategy | enum[no_ids, keys_as_ids, unstable_generated_ids] | このグラフの頂点に使用するID戦略を示します。指定しない(または nullに設定されている)場合、戦略は自動的に検出されます。 | null | 
| vertex_id_type | enum[int, integer, long, string] | vertex IDのタイプ。同種のグラフで指定されていない(または nullに設定されている)場合、デフォルトで特定の値(データの元によって異なる)に設定されます。 | null | 
| vertex_providers | オブジェクトの配列 | このグラフの頂点プロバイダのリスト。 | [] | 
ノート:
グラフ構成で指定されたデータベース接続フィールドは、基礎となるデータ・プロバイダ構成でこれらのフィールドを指定しない場合のデフォルトとして使用されます。プロバイダ構成JSONファイルのオプション
プロバイダ構成を使用して、各プロバイダのデータに関するメタ情報を指定できます。プロバイダ構成には、プロバイダ・データに関する次の情報が含まれます。
- データの場所: ファイル、複数ファイルまたはデータベース・プロバイダ
- プロパティに関する情報: プロパティの名前とタイプ
表16-5 プロバイダ構成JSONファイルのオプション
| フィールド | 型 | 説明 | デフォルト | 
|---|---|---|---|
| format | enum[pgb, csv, rdbms] | プロバイダ形式。 | 必須 | 
| name | string | エンティティ・プロバイダ名。 | 必須 | 
| attributes | object | グラフ・データの読取りおよび書込みに必要な追加属性。 | null | 
| destination_vertex_provider | string | このエッジ・プロバイダに使用される入力頂点プロバイダの名前。 | null | 
| error_handling | object | エラー処理構成。 | null | 
| has_keys | boolean | 指定されたエンティティ・データにキーがあるかどうかを示します。 | true | 
| key_type | enum[int, integer, long, string] | キーのタイプ。 | long | 
| keystore_alias | string | データベースへの接続時に使用するキーストアの別名。 | null | 
| label | string | このプロバイダからロードされたエンティティのラベル。 | null | 
| loading | object | ロード固有の構成。 | null | 
| local_date_format | 文字列の配列 | local_dateプロパティのロードおよび格納時に使用するlocal_date形式の配列。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| password | string | データベースに接続する際に使用するパスワード。 | null | 
| point2d | string | 空白で区切られた浮動小数点値としての経度と緯度。 | 0.0 0.0 | 
| props | オブジェクトの配列 | このエンティティ・プロバイダに関連付けられたプロパティの指定。 | [] | 
| source_vertex_provider | string | このエッジ・プロバイダに使用される出力頂点プロバイダの名前。 | null | 
| time_format | 文字列の配列 | 時間プロパティのロードおよび格納時に使用する時間形式。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| time_with_timezone_format | 文字列の配列 | 時間(タイムゾーン付き)プロパティをロードおよび格納する際に使用する時間(タイムゾーン付き)の形式。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| timestamp_format | 文字列の配列 | タイムスタンプ・プロパティのロードおよび格納時に使用するタイムスタンプ形式。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| timestamp_with_timezone_format | 文字列の配列 | タイムスタンプ(タイムゾーン付き)プロパティをロードおよび格納する際に使用するタイムスタンプ(タイムゾーン付き)の形式。形式の文字列に関するドキュメントは、DateTimeFormatterを参照してください。 | [] | 
| vector_component_delimiter | character | ベクトル・プロパティの様々なコンポーネント用の区切り文字。 | ; | 
プロバイダ・ラベル
プロバイダ構成のlabelフィールドを使用すると、プロバイダからロードされたエンティティのラベルを設定できます。labelが指定されていない場合、プロバイダからのすべてのエンティティに、プロバイダの名前のラベルが付けられます。2つの異なるプロバイダに同じラベルを設定できるのは、プロパティが厳密に同じ(名前とタイプが同じ)場合だけです。
                  
プロパティ構成
プロバイダ構成のpropsエントリは、次のJSONフィールドを含むオブジェクトです。
                  
表16-6 プロパティ構成
| フィールド | 型 | 説明 | デフォルト | 
|---|---|---|---|
| name | string | プロパティの名前を指定します。 | 必須 | 
| type | enum[boolean, integer, vertex, edge, float, long, double, string, date, local_date, time, timestamp, time_with_timezone, timestamp_with_timezone, point2d] | プロパティのタイプ。 ノート:dateは非推奨です。かわりに、local_date/time/timestamp/time_with_timezone/timestamp_with_timezoneのいずれかを使用します。 | 必須 | 
| aggregate | enum[identity, group_key, min, max, avg, sum, concat, count] | [現在サポートされていません]どの集計関数を使用しても、常に頂点キーによって集計が行われます。 | null | 
| column | value | プロパティ・データを保持する列の名前または索引(0から開始)。指定しない場合、ローダーはプロパティ名を列名として使用しようとします(CSV形式のみ)。 | null | 
| default | value | データ・ソースで指定されていない場合、このプロパティに割り当てられるデフォルト値。date型の場合: 文字列は yyyy-MM-dd HH:mm:ssでフォーマットされます。デフォルトが存在しない場合(null)、存在しないプロパティにはデフォルトのJava型(プリミティブ)または空の文字列(string)または01.01.1970 00:00(date)が含まれます。 | null | 
| dimension | integer | プロパティのディメンション。 | 0 | 
| drop_after_loading | boolean | [現在サポートされていません]集計にのみ使用されるヘルパー・プロパティを示します。これはロード後に削除されます | false | 
| field | value | プロパティ・データを保持するJSONフィールドの名前。ネストはドット区切りで示されます。ドットを含むフィールド名を使用できますが、この場合、バックスラッシュを使用してドットをエスケープし、あいまいさを解決する必要があります。厳密に指定されているオブジェクトのみがロードされ、存在しない場合はデフォルト値が使用されます。 | null | 
| format | 文字列の配列 | プロパティの形式の配列。 | [] | 
| group_key | string | [現在サポートされていません]プロパティ/キーがグループ化式の一部である場合にのみ使用できます。 | null | 
| max_distinct_strings_per_pool | integer | [string_pooling_strategyがindexedの場合のみ関連]プーリングを停止するまでのプロパティごとの個別の文字列数。制限に達すると、例外がスローされます。nullに設定すると、グローバルPGX構成からのデフォルト値が使用されます。 | null | 
| stores | オブジェクトの配列 | このプロパティが存在する場所を示すストレージ識別子のリスト。 | [] | 
| string_pooling_strategy | enum[indexed, on_heap, none] | 使用する文字列プール戦略を示します。 nullに設定すると、グローバルPGX構成からのデフォルト値が使用されます。 | null | 
ロード構成
loadingエントリは、次のフィールドを含むJSONオブジェクトです。
                  
表16-7 ロード構成
| フィールド | 型 | 説明 | デフォルト | 
|---|---|---|---|
| create_key_mapping | boolean | trueの場合、ロード中に、エンティティ・キーと内部IDの間のマッピングが準備されます。 | true | 
| filter | string | [現在サポートされていません]フィルタ式 | null | 
| grouping_by | 文字列の配列 | [現在サポートされていません]アグリゲータに使用されるエッジ・プロパティの配列。頂点の場合、IDのみを使用できます(デフォルト) | [] | 
| load_labels | boolean | 使用可能な場合にエンティティ・ラベルをロードするかどうか。 | false | 
| strict_mode | boolean | trueに設定すると、ローダーで入力ファイルに関する問題(無効な形式、繰返しキー、欠落フィールド、不一致、その他潜在的なエラーなど)が発生した場合は常に例外がスローされ、ERRORレベルでログに記録されます。falseに設定すると、ローダーでロード・フェーズ中のメモリー使用量が削減されますが、入力ファイルが不規則である場合は予期しない動作が発生する可能性があります。 | true | 
エラー処理構成
error_handlingエントリは、次のフィールドを含むJSONオブジェクトです。
                  
表16-8 エラー処理構成
| フィールド | 型 | 説明 | デフォルト | 
|---|---|---|---|
| on_missed_prop_key | enum[silent, log_warn, log_warn_once, error] | 欠落しているプロパティ・キーに対するエラー処理。 | log_warn_once | 
| on_missing_vertex | enum[ignore_edge, ignore_edge_log, ignore_edge_log_once, create_vertex, create_vertex_log, create_vertex_log_once, error] | 頂点データ・ソース内のエッジの欠落した出力頂点または入力頂点に対するエラー処理。 | error | 
| on_parsing_issue | enum[silent, log_warn, log_warn_once, error] | 不正なデータ解析に対するエラー処理。silent、 log_warnまたはlog_warn_onceに設定すると、ロードの続行が試行されます。解析に関する問題にはリカバリできないものもあり、ロードが終了される場合もあります。 | error | 
| on_prop_conversion | enum[silent, log_warn, log_warn_once, error] | プロパティ・タイプが指定されたものとは異なる場合のエラー処理。ただし、強制できます。 | log_warn_once | 
| on_type_mismatch | enum[silent, log_warn, log_warn_once, error] | プロパティ・タイプが指定されたものとは異なる場合のエラー処理。ただし、強制できません。 | error | 
| on_vector_length_mismatch | enum[silent, log_warn, log_warn_once, error] | 適切なディメンションのないベクトル・プロパティに対するエラー処理。 | error | 
ノート:
on_missing_vertexエラー処理構成でサポートされる設定は、ignore_edgeのみです。