DSEデータベースとグラフ設定の指定
グラフのDSEデータベースとグラフ設定の設定方法。
一部のDSE Graphオプションはグラフごとに設定します。Gremlin ConsoleでシステムAPIまたはスキーマAPIのいずれかの呼び出しを使用することにより、設定を変更して読み込みます。これらのオプション値はDSEテーブルに格納され、dse.yaml ファイルには設定されません。オプションの完全なリストについては、DSE Graphのリファレンスを参照してください。DSE Graphの他の設定はdse.yamlファイルにも記載されています。
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
手順
グラフごとのほとんどのオプションは、スキーマAPIを使用して設定されます。
-
構成設定のデフォルト以外の値をすべて確認します。
schema.config().describe()
graph.tx_groups.default.write_consistency: ALL graph.tx_groups.default.read_consistency: QUORUM
注: デフォルト設定は、この呼び出しでは表示されません。 -
特定の設定の値を確認します。
schema.config().option('graph.tx_groups.default.write_consistency').get()
ALL
-
構成設定の値を設定します。
schema.config().option('graph.tx_groups.default.write_consistency').set('ALL')
null
-
設定されているすべての探索ソースを取得するには、探索ソース・タイプ・オプションを持つ
get()
コマンドを使用します。schema.config().option('graph.traversal_sources.*.type').get()
REAL_TIME
-
探索が評価するのを待つ最大時間を設定します。
schema.config().option("graph.traversal_sources.g.evaluation_timeout").set('PT2H')
ヒント: タイムアウト値は、必要に応じて、set('1500 ms')
のように使用して秒または分単位で入力することもできます。重要: 1095日(最大の整数値)以上のタイムアウト値を設定すると、グラフ・セッションの限界を超過する可能性があります。新しいセッションを開始してタイムアウトを低い値に設定することで、ハング・セッションへのアクセスを回復できます。この注意事項は、すべてのタイムアウト(evaluation_timeout,、system_evaluation_timeout、analytic_evaluation_timeout、およびrealtime_evaluation_timeout)に適用されます。PT2H
注: dse.yamlファイルには、クエリーがOLTPクエリーであるかOLAPクエリーであるかに応じて使用される、タイムアウト値を決定するrealtime_evaluation_timeout_in_seconds
およびanalytic_evaluation_timeout_in_minutes
という設定があります。evaluation_timeout
を使用して上記のコマンドを実行すると、指定された探索ソースgのシステム・レベル設定がオーバーライドされます。OLTP探索の階層は、オーバーライド順になります。graph.traversal_sources.g.evaluation_timeout
>realtime_evaluation_timeout_in_seconds
>system_evaluation_timeout_in_seconds
。OLAP探索タイムアウトのオーバーライドの階層は、OLTPと同様です。graph.traversal_sources.a.evaluation_timeout
>analytic_evaluation_timeout_in_minutes
>system_evaluation_timeout_in_seconds
。
一部のオプションは、システムAPIを使用して設定する必要があります。
-
設定は、新しいグラフの作成中に行うこともできます。たとえば、グラフのレプリケーションはDSEデータベースのデフォルトを継承するため、レプリケーション係数は
1
に設定され、クラスはSimpleStrategy
になります。DSEデータベースの場合と同様に、グラフのレプリケーション係数は、データを追加する前に設定する必要があります。system.graph('gizmo'). replication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }"). ifNotExists().create()
-
グラフは、グラフ変数をDSEテーブルに格納するためのキースペースも作成します。このキースペースには重要な情報が格納されているため、レプリケーション係数を1つのレプリカよりも高く設定して、データが失われないようにする必要があります。
gremlin> system.graph('gizmo'). replication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }"). systemReplication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }"). ifNotExists().create()
-
追加のスキーマ設定は、グラフの作成時に構成できます。
system.graph('food2'). replication("{'class' : 'SimpleStrategy', 'replication_factor' : 1 }"). systemReplication("{'class' : 'SimpleStrategy', 'replication_factor' : 1 }"). option("graph.schema_mode").set("Development"). option("graph.allow_scan").set("false"). option("graph.default_property_key_cardinality").set("multiple"). option("graph.tx_groups.*.write_consistency").set("ALL"). create()
詳細は「スキーマAPIリファレンス」に記載されています。
グラフAPIは、一部のトランザクション設定を設定するために使用されます。
-
allow_scan
オプションは、1つのノードで行われるトランザクション内のすべてのアクションに対して、1つのグラフ・レベルで設定するか、ここに示すように設定できます。この設定は、システム・テーブルにオプション変更を書き込むためにクォーラム(過半数)を集めることができない場合に便利です。graph.tx().config().option("allow_scan", true).open()
null