カスタム頂点IDの作成
カスタム頂点IDを作成する方法およびタイミング。
頂点作成時に通常生成される標準の自動生成頂点IDを置き換えるために、カスタム頂点IDを作成できます。カスタム頂点IDの作成ユース・ケースは次のとおりです。
- DSE Graphに格納されているデータが、その他のDSEデータベース・キースペースまたは別のデータベースなど、その他のデータ・ソースと連動している場合。
- カスタムグラフのパーティション分割が必要な場合。
注: DSE 6.0では、標準の自動生成IDは廃止されました。カスタムIDにはいくつかの変更が加えられ、
たとえば、センサー時系列データはDSEデータベースに格納されます。DSEデータベースへの時系列クエリーに加えて、センサーのネットワーク接続方法、センサーの場所など、センサーに関する関係情報が望まれます。関係を調べるためにグラフにデータを読み込むが、時系列データおよびグラフ・データにもアクセスできるアプリケーションを作れるように、両方のデータベース・モデルにまたがるカスタム頂点IDを作成します。partitionKey
およびclusteringKey
を使用して頂点IDを指定する方法が一般的になる可能性が高くなります。注意: カスタム頂点IDを使用する場合は、グラフ内でグローバルに一意である必要があります。そうでない場合、重複する頂点がグラフに読み込まれる可能性があります。DSE Graphは、カスタム頂点IDを確認しません。標準の自動生成頂点IDは一意であることが保証されます。
手順
-
カスタム・パーティション分割キー
sensor_id
を持つ頂点ラベルを作成します。頂点ラベルの作成で使用する前に、プロパティ・キーsensor_id
が存在することが必要で、複数のカーディナリティ・プロパティにすることはできません。schema.vertexLabel('FridgeSensor').partitionKey('sensor_id').create()
-
頂点ラベル
FridgeSensor
を使用する頂点を追加します。graph.addVertex(label, 'FridgeSensor','sensor_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66')
-
カスタム・パーティション分割キー
city_id
とクラスター化キーsensor_id
を持つ頂点ラベルを作成します。schema.vertexLabel('FridgeSensor').partitionKey('city_id').clusteringKey('sensor_id').create()
-
頂点ラベル
FridgeSensor
を使用する頂点を、パーティション・キーおよびクラスター化キーと一緒に追加します。graph.addVertex(label, 'FridgeSensor','sensor_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66', 'city_id', 100)
-
city_id
およびsensor_id
をパーティション分割キーの一部として使用して、カスタム複合パーティションを持つ頂点ラベルを作成します。schema.vertexLabel('FridgeSensor').partitionKey('city_id', 'sensor_id').create()