SlideShare a Scribd company logo
DataStax Enterpriseによる
大規模グラフ解析
2018/01/29 データ解析について
スピーカー
森下 雄貴
(yuki@datastax.com)
Solutions Architect @ DataStax Japan合同会社
Apache Cassandraコミッター
2
DataStax
Enterprise
Apache Cassandraを
中核にした製品
+ サポート
+ プロフェッショナル
サービス
+ トレーニング
グラフデータベースとは?
- 高度に入り組んだ複雑な関係の(グラフ構造)データを格納、管理、問い合わせるため
のデータベース
- グラフデータベースのアーキテクチャは、大量のデータが織り成す関係の中から価値
を導き出したり、共通項や例外を見つけ出したりするのに特に適している
プロパティグラフ
- ノード(頂点/Vertex)  エンティティ
- エッジ(辺/Edge)  リレーション
- プロパティ  エンティティやリレーションの属性
Resides
Purchased
Purchase
d
Has
Belongs
To
Ships To
セキュリティと不正検知
- 不正、セキュリティリスクを伴う、あるいはコンプライアンス上懸念があるエンティ
ティや取り引き、またはやりとりをすばやく特定するにはどうすれば良いか。
- グラフデータベースは、ユーザー、エンティティ、取り引き、イベント、やりとりが
織り成す複雑で高度に入り組む網の中で、数えきれない量の金融取引が関わる関係性
とイベントの干草の中から悪い針をすばやく見つけることが可能。
レコメンデーション/パーソナライズ
- 顧客に商品を購入してもらったり、他の顧客に商品をレコメンドしてもらったりする
ために、顧客にすばやく、最も効果的に影響を与えるにはどうすれば良いか。
- グラフは、ユーザーのデータや相互関係、過去の振る舞い、やりとりに基づいて、商
品や次のアクションを勧めたり、あるいは宣伝を提示したりするのに最も適している。
マスターデータ管理(MDM)
- さまざまな事業部にまたがって統合化されている業務データとそれらの相互関係をす
ばやく理解して分析し、顧客の全体像を把握するにはどうすれば良いか。
- グラフにおけるMDMの事例としては、複雑な階層構造やその他の相互関係を持つ
商品カタログやカスタマー360アプリケーションがある。
IoT/資産管理/ネットワーク
- 個別に調べるよりも全体として見たほうが、より興味深い傾向がある、データ要素間
で形成される数々の関係を簡単に分析するにはどうすれば良いか。
- グラフはまた、ネットワーク資産(およびそれらの特性や設定)やそれらの時間経過
に伴う相互関係を管理するのにも適したモデル。
RDBMS vs. グラフ
- グラフデータベースとRDBMSの主要な違いの一つは、エンティティ/頂点の間の関係が優先付けされ管
理される方法。
- RDBMSでは外部キーを使ってエンティティを二次的に繋ぐのに対し、グラフデータベースにお
かえるエッジ(リレーション)は、第1級の重要性を持つ。
- リレーションがグラフデータモデルに明示的に組み込まれる。
- グラフ型のビジネス課題とは、個別のエンティティでなく、エンティティ(頂点)間のリレーション
(エッジ)が関心事であるもの。
RDBMS グラフ
「何か」識別できるもの、あるいは追跡するオブジェクト エンティティ ノード(Vertex)
2つのオブジェクトの間のつながりまたは参照 リレーション エッジ(Edge)
オブジェクトの特性 属性 プロパティ
DataStax Enterprise (DSE) Graph
Apache Cassandra™との統合
- DSE Graphは、常時オン、どこでも書き込み・読み取り・アクティブの機能、リニア
なスケーラビリティ、安定的な低レイテンシーのレスポンスタイム、成熟した運用手
法をはじめとするCassandraの主要な利点を引き継ぐ
- その基礎の上に、DSE Graphは適応型のクエリーオプティマイザー、局所性優先のグ
ラフデータパーティショナー、分散クエリー実行エンジン、各種のグラフ固有イン
デックス構造などを含む、パフォーマンス強化のための機能を追加
DSE Graphとは
- 複雑で高度に入り組んだデータをリアルタイムで管理する必要のあるクラウドアプリ
ケーションのためのスケールアウト型のグラフデータベース
- DSEの中で、Apache Cassandra™に合わせてエンジニアリングしたプロパティグラ
フモデルをネイティブでサポート
- 大規模なグラフの中でデータ間の関係をすばやく簡単に格納・検索
- DSEとの密接なインテグレーションを介してリアルタイムサーチ、分析グラフクエ
リーを組み込みでサポート
- DSEのマルチモデルプラットフォームの一要素
DSE Graphのアーキテクチャ
DataStax Enterprise Graph
Apache TinkerPop™
SparkGraphComputer
Apache TinkerPop™
Gremlin Server
Apache Spark™
Apache Cassandra™
Storage / Indexing
Apache Solr™
Indexing
アプリケーション
(DataStax Driver)
DataStax Studio
Apache TinkerPop™
Gremlin Console
3rdパーティ
グラフ可視化ツール
DSE Server
OLAP OLTP
Apache TinkerPop™
- グラフデータベース(OLTP)やグラフデータ分析システム(OLAP)のためのオープン
ソースのグラフコンピューティングフレームワーク
- グラフのデータ構造(プロパティグラフ)そのものと、それを処理するためのフレーム
ワークを提供
- Gremlin: グラフデータベースのための標準言語
- Apache TinkerPop™対応グラフデータベース
- DSE Graph
- Microsoft Azure CosmosDB
- Amazon Neptune
- Neo4j
- JanusGraph (Titan DBのフォーク)
- …
Gremlin
- グラフトラバーサル言語
// Lisaが購入した全ての注文を探す
g.V().has('customer', 'name', 'Lisa')
.out('ordered')
.values('number')
// Lisaの友人が購入した全ての商品を探す
g.V().has('customer', 'name', 'Lisa')
.outE('related').has('Type', 'friend')
.inV().out('ordered').out('purchased')
.values('name’)
1
Customer
Name:[Lisa]
Age:[32]
2
Order
Number:[1234]
5
Product
Name:[Socks]
Size: [XL]
4
Customer
Name:[Frank]
Age:[28]
6
Product
Name:[Shirt]
Size: [XL] 7
Address
Stree:[123 West Street]
Zip Code:[44534]
11
12 13
14
15
16
17
3
Tag
Type:[Color]
Value: [White]
18
19
orders
Date:[1/1/2016]
related
Type:Friend
resides
Since:1/1/2000
ships
Shipment Date:1/2/2016
purchased
Qty: 42
purchased
Qty: 1
has
Valid: 1/1/2012
has
Valid: 1/1/2012
Gremlinコンソール
DataStax Studio
DSEのためのビジュアル開発ツール(Gremlin/CQL)
アプリケーションからの接続
DataStax ドライバー
グラフデータベースのOLTPとOLAP
グラフのOLTPアクセス
- ひとつまたは少数のノードからグラフをたどり、答えにたどり着く
- 例
- この商品をいつ、だれが購入したか。
- この商品を買った人は、ほかにこのような商品も買っています。
- 協調フィルタリング
© DataStax, All Rights Reserved.21
デモ
- Northwindデータベース
- SQL Serverのデモ用データベース
© DataStax, All Rights Reserved.22
デモ
- Northwind のデータ(のサブセット)をグラフ形式で取り込み
- http://sql2gremlin.com
- Northwindデータセットを用いてSQLからgremlinへ
- https://github.com/datastax/graph-examples/tree/master/northwind
- DSE Graph Loaderを用いてDSEへNorthwindデータを取り込み
© DataStax, All Rights Reserved.23
デモ
- ある商品をいつだれが買ったか
© DataStax, All Rights Reserved.24
g.V().has("product", "id", 3171).
in("is").as("item").
in("contains").order().by("orderDate", decr).limit(10).as("order").
in("ordered").as("customer").
select("customer", "order", "item").by("name").by("orderDate").by("quantity")
デモ
- この商品を買った人は、ほかにこのような商品も買っています。
© DataStax, All Rights Reserved.25
g.V().has("customer", "id", 50).as("customer").
out("ordered").out("contains").out("is").aggregate("products").
in("is").in("contains").in("ordered").where(neq("customer")).
out("ordered").out("contains").out("is").where(without("products")).
groupCount().order(local).by(values, decr).
select(keys).limit(local, 5).unfold().values("name")
グラフのOLAPクエリ
- 非常に密なグラフや大量のブランチがある場合、メモリーやCPUの制限から結果を時
間内に返せない(ディープクエリ)
- グラフ内のすべてもしくは大部分のノードやエッジに一度にアクセスする必要がある
(スキャンクエリ)
このような場合、グラフのOLAPクエリを用いることでパフォーマンスよく回答を得る
ことができる。
DSE Graphは以下の二つのOLAPクエリをサポート (DSE Analytics(Spark)機能)
- Gremlin OLAP
- DSE Graph Frame
© DataStax, All Rights Reserved.26
Gremlin OLAP
GremlinクエリをSparkGraphComputerを用いて、Sparkクラスタ上で分散実行
© DataStax, All Rights Reserved.27
DataStax Enterprise Graph
Apache TinkerPop™
SparkGraphComputer
Apache TinkerPop™
Gremlin Server
Apache Spark™
Apache Cassandra™
Storage / Indexing
Apache Solr™
Indexing
DSE Server
OLAP OLTP
デモ
- ある従業員の1996年7月の売り上げを取得 → OLTP
- 全従業員の1996年7月の売り上げからTOP5を取得 → OLAP
© DataStax, All Rights Reserved.28
g.V().hasLabel("employee").has("id", within(138, 146)).as("e")
out("sold").has("orderDate", between(Instant.parse('1996-07-01T00:00:00Z'),
Instant.parse('1996-08-01T00:00:00Z'))).
out("contains").group().by(select("e")).
by(fold().match(
__.as("i").unfold().local(values("quantity", "unitPrice").fold(1,
mult)).sum().as("s")).select("s")).
next().sort{-it.value}.take(5)
g.V().hasLabel("employee").as("e").
out("sold").has("orderDate", between(Instant.parse('1996-07-01T00:00:00Z'),
Instant.parse('1996-08-01T00:00:00Z'))).
out("contains").group().by(select("e")).
by(fold().match(
__.as("i").unfold().local(values("quantity", "unitPrice").fold(1,
mult)).sum().as("s")).select("s")).
next().sort{-it.value}.take(5)
DSE Graph Frame
https://www.datastax.com/dev/blog/dse-graph-frame
- GraphFrames(http://graphframes.github.io/)の拡張
- ノードのDataFrameとエッジのDataFrameを提供
- Sparkから直接グラフ(ノードとエッジ)へアクセス
- Gremlin APIの一部を実装
- グラフデータのバルク処理
- グラフデータとグラフ以外のデータ両方を用いた処理
© DataStax, All Rights Reserved.29
デモ
- 商品カテゴリ別商品数
© DataStax, All Rights Reserved.30
val g = spark.dseGraph("northwind")
val category = g.V.hasLabel("category").df
val inCategory = g.E.hasLabel("inCategory").df
// inCategoryエッジをカテゴリーごとに集計 == カテゴリーごとのプロダクト数
// カテゴリー名を取得するためにJOIN
val productsByCategory = inCategory.join(category, inCategory.col("dst") ===
category.col("id")).select("name").groupBy("name").count()
Gremlin OLAP vs DSE GraphFrame
Gremlin OLAP
- Studio(Gremlin言語)を用いてインタラクティブにグラフ分析
DSE GraphFrame
- Sparkアプリケーションとしてグラフ分析
- バルクインサート/アップデート
- データのインポート/エクスポート
- 単純なフィルタリングや集計処理(Gremlin OLAPよりも速い)
© DataStax, All Rights Reserved.31

More Related Content

PDF
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
 
PDF
DataStax EnterpriseでApache Tinkerpop入門
Yuki Morishita
 
PPTX
分散グラフデータベース DataStax Enterprise Graph
Yuki Morishita
 
PPTX
Azure Datalake 大全
Daiyu Hatakeyama
 
PPTX
サンプルで学ぶCassandraアプリケーションの作り方
Yuki Morishita
 
PPTX
Data x AI x API で考えるビジネスインフラ
Daiyu Hatakeyama
 
PPTX
Azure Search 大全
Daiyu Hatakeyama
 
PPTX
事例で学ぶApache Cassandra
Yuki Morishita
 
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
 
DataStax EnterpriseでApache Tinkerpop入門
Yuki Morishita
 
分散グラフデータベース DataStax Enterprise Graph
Yuki Morishita
 
Azure Datalake 大全
Daiyu Hatakeyama
 
サンプルで学ぶCassandraアプリケーションの作り方
Yuki Morishita
 
Data x AI x API で考えるビジネスインフラ
Daiyu Hatakeyama
 
Azure Search 大全
Daiyu Hatakeyama
 
事例で学ぶApache Cassandra
Yuki Morishita
 

What's hot (20)

PDF
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
Hideo Takagi
 
PDF
Datastax Enterpriseをはじめよう
Yuki Morishita
 
PDF
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
de:code 2017
 
PDF
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
Hideo Takagi
 
PDF
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Koichiro Sasaki
 
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
 
PDF
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
Hideo Takagi
 
PDF
トレジャーデータのバッチクエリとアドホッククエリを理解する
Takahiro Inoue
 
PDF
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
 
PDF
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
Insight Technology, Inc.
 
PPTX
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
 
PDF
(LT)Spark and Cassandra
datastaxjp
 
PDF
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Hideo Takagi
 
PDF
PHP開発者のためのNoSQL入門
じゅん なかざ
 
PDF
20190516_DLC10_PGStrom
Kohei KaiGai
 
PDF
トレジャーデータ新サービス発表 2013/12/9
Treasure Data, Inc.
 
PDF
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
Kazuhiro Miyajima
 
PDF
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
 
PPT
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
kishimotosc
 
PDF
今こそクラウドへ!データの移行、連携、統合のコツ
株式会社クライム
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
Hideo Takagi
 
Datastax Enterpriseをはじめよう
Yuki Morishita
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
de:code 2017
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
Hideo Takagi
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Koichiro Sasaki
 
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
Hideo Takagi
 
トレジャーデータのバッチクエリとアドホッククエリを理解する
Takahiro Inoue
 
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
 
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
Insight Technology, Inc.
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
 
(LT)Spark and Cassandra
datastaxjp
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Hideo Takagi
 
PHP開発者のためのNoSQL入門
じゅん なかざ
 
20190516_DLC10_PGStrom
Kohei KaiGai
 
トレジャーデータ新サービス発表 2013/12/9
Treasure Data, Inc.
 
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
Kazuhiro Miyajima
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
 
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
kishimotosc
 
今こそクラウドへ!データの移行、連携、統合のコツ
株式会社クライム
 
Ad

Similar to DataStax Enterpriseによる大規模グラフ解析 (20)

PPTX
Pysparkで始めるデータ分析
Tanaka Yuichi
 
PPTX
Apache Sparkを使った感情極性分析
Tanaka Yuichi
 
PDF
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 
ODP
ビジネスインテリジェンス入門~OSSでBIを始めよう~version2(公開版)
Kensuke SAEKI
 
PDF
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
 
PDF
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
MapR Technologies Japan
 
PPTX
Bluemixを使ったTwitter分析
Tanaka Yuichi
 
PDF
BIG DATA サービス と ツール
Ngoc Dao
 
PPTX
DX実践!~ビジネスアジリティ向上とマイクロサービス技術GraphQLの活用~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
PDF
About NoSQL
hideaki honda
 
PPTX
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
 
PDF
社会ネットワーク分析第7回
Satoru Mikami
 
PDF
避けては通れないビッグデータ周辺の重要課題
kurikiyo
 
PDF
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
datastaxjp
 
PDF
Data platformdesign
Ryoma Nagata
 
PDF
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
 
PDF
大規模データ分析を支えるインフラ系オープンソースソフトウェアの最新事情
nagix
 
PDF
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
Insight Technology, Inc.
 
PDF
Db tech showcase 2016
datastaxjp
 
Pysparkで始めるデータ分析
Tanaka Yuichi
 
Apache Sparkを使った感情極性分析
Tanaka Yuichi
 
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 
ビジネスインテリジェンス入門~OSSでBIを始めよう~version2(公開版)
Kensuke SAEKI
 
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
MapR Technologies Japan
 
Bluemixを使ったTwitter分析
Tanaka Yuichi
 
BIG DATA サービス と ツール
Ngoc Dao
 
DX実践!~ビジネスアジリティ向上とマイクロサービス技術GraphQLの活用~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
About NoSQL
hideaki honda
 
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
 
社会ネットワーク分析第7回
Satoru Mikami
 
避けては通れないビッグデータ周辺の重要課題
kurikiyo
 
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
datastaxjp
 
Data platformdesign
Ryoma Nagata
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
 
大規模データ分析を支えるインフラ系オープンソースソフトウェアの最新事情
nagix
 
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
Insight Technology, Inc.
 
Db tech showcase 2016
datastaxjp
 
Ad

More from Yuki Morishita (6)

PPTX
Apache cassandra v4.0
Yuki Morishita
 
PPTX
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
 
PPTX
Apache Cassandra最新情報まとめ
Yuki Morishita
 
PDF
How you can contribute to Apache Cassandra
Yuki Morishita
 
PDF
CQL3 in depth
Yuki Morishita
 
PPT
Cassandraのしくみ データの読み書き編
Yuki Morishita
 
Apache cassandra v4.0
Yuki Morishita
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
 
Apache Cassandra最新情報まとめ
Yuki Morishita
 
How you can contribute to Apache Cassandra
Yuki Morishita
 
CQL3 in depth
Yuki Morishita
 
Cassandraのしくみ データの読み書き編
Yuki Morishita
 

Recently uploaded (10)

PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 

DataStax Enterpriseによる大規模グラフ解析

Editor's Notes

  • #25: // ある商品(Boston Crab Meat)をいつだれが買ったか g.V().has("product", "id", 3171). in("is").as("item"). in("contains").order().by("orderDate", decr).limit(10).as("order"). in("ordered").as("customer"). select("customer", "order", "item").by("name").by("orderDate").by("quantity")
  • #26: // リアルタイム協調フィルタリング g.V().has("customer", "id", 50).as("customer"). out("ordered").out("contains").out("is").aggregate("products"). in("is").in("contains").in("ordered").where(neq("customer")). out("ordered").out("contains").out("is").where(without("products")). groupCount().order(local).by(values, decr). select(keys).limit(local, 5).unfold().values("name")
  • #29: //g.V().hasLabel("employee").has("id", within(138, 146)).as("e") g.V().hasLabel("employee").as("e"). out("sold").has("orderDate", between(Instant.parse('1996-07-01T00:00:00Z'), Instant.parse('1996-08-01T00:00:00Z'))). out("contains").group().by(select("e")).by(fold().match(__.as("i").unfold().local(values("quantity", "unitPrice").fold(1, mult)).sum().as("s")).select("s")). next().sort{-it.value}.take(5)