DSEデータベースとグラフ設定の指定

グラフのDSEデータベースとグラフ設定の設定方法。

一部のDSE Graphオプションはグラフごとに設定します。Gremlin ConsoleでシステムAPIまたはスキーマAPIのいずれかの呼び出しを使用することにより、設定を変更して読み込みます。これらのオプション値はDSEテーブルに格納され、dse.yamlファイルでは設定されません。オプションの完全なリストについては、DSE Graphのリファレンスを参照してください。DSE Graphの他の設定は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')のように使用して秒または分単位で入力することもできます。
    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データベースの場合と同様に、グラフのレプリケーション係数は、データを追加する前に設定する必要があります。
    gremlin>  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は、一部のトランザクション設定を設定するために使用されます。
  • allow_scanオプションは、1つのノードで行われるトランザクション内のすべてのアクションに対して、1つのグラフ・レベルで設定するか、ここに示すように設定できます。この設定は、システム・テーブルにオプション変更を書き込むためにクォーラム(過半数)を集めることができない場合に便利です。
    graph.tx().config().option("allow_scan", true).open()
    null