config
グラフ・スキーマを構成する方法。
構文
schema.config().option(arg).[ set(value) | unset(value) | get() | exists() | describe() ]
スキーマはグラフごとにconfig()
コマンドを使用して構成できます。オプションと値はset()
またはunset()
にできます。オプションの値はget()
コマンドで取得できます。オプションが構成されたかどうかはexists()
コマンドで確認できます。オプションが手動で設定された場合、describe()
コマンドは値を返します。
オプションの引数 | 設定例 | 説明 | デフォルト |
---|---|---|---|
allow_scan | true | コストの高いグラフ・スキャン・クエリーを許可する設定。 | true |
schema_mode | Production | モードをProduction(プロダクション)またはDevelopment(開発)に設定します。 | Development |
default_property_key_cardinality | multiple | 特に指定しない限りデフォルトで使用するカーディナリティを設定します。 | single |
tx_autostart | true | トランザクションが自動的に開始されるか、手動で開く必要があるかどうかを設定します。 | false |
オプションの引数 | 設定例 | 説明 | デフォルト |
---|---|---|---|
evaluation_timeout | PT10S(10秒)または"1500 ms" | 探索の評価まで待機する最大時間 - 現在のTraversalSourceに対する他のシステム・レベルの設定をオーバーライドします。 | 0日 |
restrict_lambda | false | このTraversalSourceでのlambdasの使用を回避します。特定の探索ソースを識別できます。 | true |
type | read-only | TraversalSourceの型を指定します。特定の探索ソースを識別できます。 | default |
重要: 1095日(最大の整数値)以上のタイムアウト値を設定すると、グラフ・セッションの限界を超過する可能性があります。新しいセッションを開始してタイムアウトを低い値に設定することで、ハング・セッションへのアクセスを回復できます。この注意事項は、すべてのタイムアウト(evaluation_timeout,、system_evaluation_timeout、analytic_evaluation_timeout、およびrealtime_evaluation_timeout)に適用されます。
オプション | 設定例 | 説明 | デフォルト |
---|---|---|---|
authenticated_user | test_user | トランザクションの現在のユーザーとして使用するユーザー名。 | ANONYMOUS_USER |
cache | false | トランザクションレベル・キャッシュにあるトランザクション内のキャッシュ取得とデータ・ストアの呼び出し。この設定では、トランザクション内の分離のタイプが制限され(他のトランザクション内の変更の同時実行は表示されず、結果セットは呼び出し間で一貫性が保たれます)、より多くのメモリーを消費することによってパフォーマンスを改善できます。 | true |
deep_profiling | true | クエリーでprofile() のCQLトレーシングを有効にします。非常にコストの高いプロファイリングです。 |
false |
internal_vertex_verify | true | トランザクションが、内部で指定された自動生成頂点IDに対応する頂点が実際に存在することを確認するかどうかを設定します。 | false |
external_vertex_verify | false | トランザクションが、外部で指定されたユーザー定義の頂点IDに対応する頂点が実際に存在することを確認するかどうかを設定します。 | true |
logged_batch | true | 変更を行う場合は、ログに記録されたバッチを使用します。これにより、すべてのミューテーションは最終的にパフォーマンスの低下を伴って発生することが保証されます。 | false |
max_mutations | 5000 | 1回のトランザクションで追加または削除される頂点、プロパティ、およびエッジ(累積的)の最大数。 | 10000 |
max_profile_events | 5 | 個別の探索ステップについてレポートするプロファイリング・イベントの最大数。レポートするイベントの数を制限すると、出力は管理可能になりますが、重要な情報が非表示になることがあります。 | 10 |
prefetch | true | クエリー・エグゼキューターが、データを要求する前に検索で予想される実行に基づいてデータを非同期でプリフェッチする必要があるかどうかを設定します。これにより、トランザクション・レイテンシーは削減されますが、スループットが悪化する場合があります。 | true |
read_only | true | トランザクションを読み取り専用にするかどうかを設定します。 | false |
read_consistency | ALL | トランザクションの読み取り操作の整合性レベルを指定します。 | ONE |
single_thread | true | トランザクションが単一スレッドのみでアクセスされるかどうかを設定します。 | false |
thread_bound | true | トランザクションを特定のスレッドに結びつけるかどうかを設定します。 | false |
transaction_timestamp | このトランザクションのすべてのミューテーションを保持するタイムスタンプ。 | Instant.EPOCH | |
verify_unique | false | 一意性制約の強制をトランザクションが確認するかどうかを指定します。 | true |
vertex_cache_size | 4000 | 最近使用した頂点のトランザクションレベル・キャッシュの最大サイズ。 | 20000l |
vertex_dirty_size | これは、書き込みが多く、パフォーマンスに敏感なトランザクション・ワークロードに関するパフォーマンスのヒントです。設定した場合、トランザクションあたりで変更された頂点の平均にほぼ一致する必要があります。 | 32 | |
write_consistency | ANY | トランザクションの書き込み操作に対する整合性レベルを指定します。 | QUORUM |
説明
グラフを構成します。オプションは、set
、unset
、またはget
(値を取得)です。
例
現在のグラフが、Development
schema_mode
を使用するように設定します。schema.config().option('graph.schema_mode').set('Development')
現在のグラフが、現在別名で作成されているグラフでグラフのフルスキャンを許可するように設定します。
schema.config().option('graph.allow_scan').set('true')
restrict_lambda
をFALSE
に設定し、lambda関数をテストするには(プロダクション環境以外のシステムのみに適用)、次のようにします。schema.config().option('graph.traversal_sources.g.restrict_lambda').set('FALSE')
設定されているすべての探索ソースを取得するには、探索ソース・タイプ・オプションを持つ
get()
コマンドを使用します。schema.config().option('graph.traversal_sources.*.type').get()手動で設定されたオプションの値のリストになります。
REAL_TIME
リアルタイムの評価タイムアウトが設定されたことを示しています。データ読み込み時に、ユーザー定義の頂点IDが存在することを確認するには、
external_vertex_verify()
オプションを次のように設定します。schema.config().option('graph.tx_groups.default.external_vertex_verify').set('TRUE')この設定がtrueの場合、存在しないときには頂点は返されません。ただし、
external_vertex_verify()
をfalseに設定すると、IDを割り当てられた頂点が存在しない場合でも、頂点が返されます。アプリケーションは、頂点がexists()
メソッドを使用して存在し予想される動作を実行することを保証する必要があります。internal_vertex_verify()
設定は、自動生成頂点IDでも同じ様に使用されています。現在別名で作成されているグラフで、すべてのトランザクションのデフォルトの書き込み整合性を
ALL
に設定します。schema.config().option('graph.tx_groups.default.write_consistency').set('ALL')
現在別名で作成されているグラフで、すべてのトランザクションのデフォルトの書き込み整合性を取得します。
schema.config().option('graph.tx_groups.default.write_consistency').get()
オプションの設定が手動で設定されていることを確認するには、exists()コマンドを使用します。
schema.config().option('graph.tx_groups.default.write_consistency').exists()このコマンドは次の値を返します。
true
値に設定されている場合。それ以外の場合はfalse
を返します。探索クエリーのプロファイリング中にCQLトレーシングを有効にするには、deep_profiling()オプションを次のように設定します。
schema.config().option('graph.tx_groups.default.deep_profiling').set('TRUE')
グラフを作成する時点で、スキーマの設定を設定するには、オプションを
system.graph().create()
コマンド内にチェーンします。system.graph('food2'). replication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }"). systemReplication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }"). option("graph.default_property_key_cardinality").set("multiple"). option("graph.schema_mode").set("Development"). option("graph.allow_scan").set("true"). option("graph.tx_groups.*.write_consistency").set("ALL"). create()すべてのトランザクション・グループの書き込み整合性を設定するために、ワイルドカード
*
を使用していることに注意してください。グラフ作成後、オプションを変更した場合、schema.config()
コマンドを使用する必要があります。設定された構成オプションのリストを取得するには、次の
describe()
コマンドを使用します。:remote config alias g food2.g schema.config().describe()手動で設定されたオプションの値のリストになります。
==>graph.schema_mode: Development graph.allow_scan: true graph.tx_groups.*.write_consistency: ALL graph.default_property_key_cardinality: Multiple
schema_mode
またはallow_scan
の現在の設定値を取得するには、手動またはデフォルトで設定します。「 schema.getEffective* commands」を参照してください。
一部の構成オプションでは、デフォルトが他の構成オプションの値を使用して決められることがあります(値を明示的に設定しないなど)。たとえば、allow_scan
を明示的に設定しないと、デフォルト値は、schema_mode
がDevelopment
に設定されている場合はtrue
ですが、schema_mode
がProduction
に設定されている場合はfalse
になります。これらの構成オプションはデフォルトの設定に結び付けられておらず、schema.config().get()
を使用して設定値を検出すると、設定値ではなくデフォルト値が表示されるため、誤解を招く情報になるおそれがあります。
グラフのフルスキャン設定は次のようになります。
設定 | スキーマ・モード | 許可されたスキャン |
---|---|---|
dse.yaml schema_mode:Production | Production | なし |
dse.yaml schema_mode:Development | Development | あり |
graph.schema_mode:Production | Production | なし |
graph.schema_mode:Development | Development | なし |
graph.allow_scan:true | Production | あり |
graph.allow_scan:true | Development | あり |