DSE Graphのデータ型

DSE Graphのデータ型について説明します。

DSE Graphには多くのデータ型があり、Cassandra CQLのデータ型と連動しています。

表 1. DSE Graphのデータ型
DSE Graphのデータ型 説明
bigint 64ビット符号付きlong
blob 任意数のバイト(検証なし)で、base64文字列として表示される
boolean trueまたはfalse
decimal 可変精度の10進数
注: DataStaxでは、通貨を取り扱う際は、intに、またはintからシリアライズする通貨クラスを使用するか、10進数データ型を使用することをお勧めします。
double 64ビットIEEE-754の浮動小数点数
duration 時間分はミリ秒
float 32ビットIEEE-754の浮動小数点数
inet IPv4形式またはIPv6形式のIPアドレス文字列で、python-cqlドライバーとCQLネイティブ・プロトコルで使用される
int 32ビット符号付き整数
linestring 地理空間検索に使用される(ダブル....ポイント)
point 地理空間検索に使用される(ダブルx、ダブルy)
polygon 地理空間検索に使用される(ダブル....ポイント)
smallint 2バイト整数
text 文字列またはUTF-8エンコード文字列
timestamp 8バイトでエンコードされた、エポック以降の日付および時刻
uuid 標準UUID形式のUUIDまたはtimeuud形式
varint 任意精度の整数
timestampデータ型は有効なCassandraタイムスタンプとして指定する必要があります。
johnDoe.addEdge('rated', beefBourguignon, 
'timestamp', '2014-01-01T00:00:00.00Z', 
'stars', 5, 
'comment', 'Pretty tasty!')
3つのgeospatialデータ型、point、linestring、およびpolygonには、地理空間的形状で検索されるデータが格納されます。pointは、pointという名前のあらかじめ定義されたプロパティ・キーを使用して作成されます。
graph.addVertex(label,'author','name','Jamie Oliver','gender','M','point',Geo.point(1,2))
このときグラフ探索が作成され、ポイントが特定の円形内にあるかどうかを判定します。
// Geo.distance is (x,y,radius)
gremlin> g.V().has('point',Geo.inside(Geo.distance(0,0,10))).valueMap()
指定された円形のボリューム範囲内に含まれる頂点を返します。多角形を使用して頂点を決めることもできます。
// Geo.distance is (x,y,radius)
gremlin> g.V().has('point',Geo.inside(Geo.polygon(0.0,0.0,0.0,10.0,10.0,10.0,0.0,0.0))).valueMap()
類似したグラフ探索を構成して、特定のlinestringが存在するかどうか、または定義した円形または多角形内にpolygonが存在するかどうかを判定できます。