カスタム頂点IDの作成

カスタム頂点IDを作成する方法およびタイミング。

頂点作成時に通常生成される標準の自動生成頂点IDを置き換えるために、カスタム頂点IDを作成できます。カスタム頂点IDの作成ユース・ケースは次のとおりです。
  • DSE Graphに格納されているデータが、その他のDSEデータベース・キースペースまたは別のデータベースなど、その他のデータ・ソースと連動している場合。
  • カスタムグラフのパーティション分割が必要な場合。
注: DSE 6.0では、標準の自動生成IDは廃止されました。カスタムIDにはいくつかの変更が加えられ、partitionKeyおよびclusteringKeyを使用して頂点IDを指定する方法が一般的になる可能性が高くなります。
たとえば、センサー時系列データはDSEデータベースに格納されます。DSEデータベースへの時系列クエリーに加えて、センサーのネットワーク接続方法、センサーの場所など、センサーに関する関係情報が望まれます。関係を調べるためにグラフにデータを読み込むが、時系列データおよびグラフ・データにもアクセスできるアプリケーションを作れるように、両方のデータベース・モデルにまたがるカスタム頂点IDを作成します。
注意: カスタム頂点IDを使用する場合は、グラフ内でグローバルに一意である必要があります。そうでない場合、重複する頂点がグラフに読み込まれる可能性があります。DSE Graphは、カスタム頂点IDを確認しません。標準の自動生成頂点IDは一意であることが保証されます。

手順

  1. カスタム・パーティション分割キーsensor_idを持つ頂点ラベルを作成します。頂点ラベルの作成で使用する前に、プロパティ・キーsensor_idが存在することが必要で、複数のカーディナリティ・プロパティにすることはできません。
    schema.vertexLabel('FridgeSensor').partitionKey('sensor_id').create()
  2. 頂点ラベルFridgeSensorを使用する頂点を追加します。
    graph.addVertex(label, 'FridgeSensor','sensor_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66')
  3. カスタム・パーティション分割キーcity_idとクラスター化キーsensor_idを持つ頂点ラベルを作成します。
    schema.vertexLabel('FridgeSensor').partitionKey('city_id').clusteringKey('sensor_id').create()
  4. 頂点ラベルFridgeSensorを使用する頂点を、パーティション・キーおよびクラスター化キーと一緒に追加します。
    graph.addVertex(label, 'FridgeSensor','sensor_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66', 'city_id', 100)
  5. city_idおよびsensor_idをパーティション分割キーの一部として使用して、カスタム複合パーティションを持つ頂点ラベルを作成します。
    schema.vertexLabel('FridgeSensor').partitionKey('city_id', 'sensor_id').create()