カスタム頂点IDの作成

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

頂点作成時に生成された標準の頂点IDを置き換えるために、カスタム頂点IDを作成できます。カスタム頂点IDのユース・ケースは次のとおりです。
  • DSE Graphに格納されているデータが、その他のCassandraキースペースまたは別のデータベースなど、その他のデータ・ソースと連動している場合。
  • カスタムグラフのパーティション分割が必要な場合。
たとえば、センサー時系列データはCassandraに格納されます。Cassandraへの時系列クエリーに加えて、センサーのネットワーク接続方法、センサーの場所など、センサーに関する関係情報が望まれます。関係を調べるためにグラフにデータを読み込むけれども、時系列データおよびグラフ・データにもアクセスできるアプリケーションを作れるように、両方のデータベース・モデルにまたがるカスタム頂点IDを作成します。

手順

  1. カスタム・パーティション分割キーcity_idとクラスタ化キー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').partitionKey('sensor_id').create()