Neo4j勉強会#3
ということで雨の中、新宿までNeo4j勉強会に行ってきましたよ。
- 会場はほぼ満杯。参加者の熱意が伺える。
Neo4jユーザグループからのお知らせ
- 勉強会は定期的にやるよ
- 出版、翻訳に関する提案
- 入門サイト構築ヘルプ!
- OSCへの参加。名古屋、北海道、沖縄、京都。
- OSC北海道は別件で俺も行くんだよな・・・たぶん。
セッション1:Neo4j 2.2の話
- いっぺいさんの話
- 性能とスケーリングは2.2の改善の目玉。
- ネタ:グラフデータベース、Neo4jに関する英語書籍は結構多く出版されている。
Cypherの改善
- コストベースオプティマイザの話。
- コストベースに変更したことによって、100倍以上の高速化。
- Visual Query Plans:実行計画を図式化してくれるツール。
□の間の矢印幅が検索結果の量を示す。
検索のネックになっている箇所を見出す。
- ルールベースとコストベースの両方を併用。手動で方式を選択可能。
- profileコマンドとexplainコマンド
Neo4jデモの説明(実際にデモをしたわけではない)
-
- 商品と供給元の関係を示すデータを使ったデモ
- 豆腐⇒購入者の関係から、特定の購入者を求め、その購入者が購入している商品を見つけるなど。
- そのデモの中で、Visual Query Plansを使っている。
- クエリテンプレートツールの説明。
- 商品と供給元の関係を示すデータを使ったデモ
ユーザセッション1:Cypher QL レコメンデーション・エンジンとしてのポテンシャル(デモ)
デモ概要
- 販売履歴の解析(ユーザ、商品、価格)
- ユーザ別レコメンデーション商品の割り出し
- 元データはCSV:Q.データ件数は?
- 「ユーザ」と「商品」のノード、「買った」というエッジ。
クエリ例
- 購入した商品数が多いユーザTOP10
- 前項のユーザTOP10が購入した商品一覧
- 前項の商品TOP10の中で商品単価TOP10
- 前項の商品単価TOP10を購入したユーザは?
- 特定のユーザが購入した商品を買っているユーザ・・・などなど
- 売上金額TP10の商品の中で、どれかを購入したユーザが、購入した商品TOP10 など複雑な分析もOK
- MATCHの連鎖的な記述で「単価TOP10を買ったユーザ」なども1つのQLで書ける。
クエリの応用例
- ここでも重要なのは入れ子でQLが書けること。
- ABCを買っていない顧客のなかで、優良顧客にABCを勧める
- ABCを買っていない顧客のなかで、XYを購入している顧客にABCを勧める
- ABCのどれかを買っている顧客のなかで、優良顧客にXYを勧める
- ABCのどれかを買っている顧客に、ABCのうち購入していない商品を勧める
- むむ、そのデモは合ってる?
- 同様に商品数を売上額などの計算結果でもOK。
- ビジュアル判断でなく、countなどの集約結果で見ることもできる。
- うーん、個人的には、もう少しQLを詳細に解説してほしかった。
- あるいは同種の操作をSQLで表現したらどうなるか、を示してくれると嬉しかったかな。
ユーザセッション2:ファーストパーティ詐欺の詐欺検知アプリデモ
グラフ型データベースの書籍企画について
- 執筆をユーザグループ内でやってみたいとのこと。
- グラフデータベースの基礎、Neo4jの基礎、初心者向けの内容。
- 本を書きたい人は長瀬さんへ連絡。(yoshi@tech-arts.co.jp)
- 「Neo4j書籍に興味あり」みたいなメールを投げてもらえばOK。
- 正式には来月くらいに決定らしい。
- 章単位で分担を決める。
- マージと一時手直しは長瀬さん。その後、編集へ。
- 執筆者は名前が乗るよー!
勉強会案内
- 丸の内Neo4j勉強会
- 元々丸の内MongoDB勉強会の人が主催。5/20 19:00-
- あ、さっき勉強会の休憩時間に登録した勉強会だw
恒例:Tシャツ争奪会
- 今回は2枚。
- 俺は前回、Getしたので今回は自重w
懇親会
- 一応、顔を出した。
- 一部の人は自分のことを「ラーメンの人」ということで覚えていたらしいw
- たぶん最初の勉強会LTでラーメンデータベースのユーザ間グラフの可視化の話をしたから。