Neo4jユーザグループ再結成&Neo4j無料セミナー

ということで、Neo4jユーザグループ再結成&Neo4j無料セミナーへ行ってきましたよ。
Neo4jの日本でのセミナーは久々だなあ。ユーザグループが停止状態だったというのもあるだろうけど。

概要

  • 日時:2015-02-10 19:00-21:00
  • 場所:代々木TechBuzzSpace
    • 代々木駅から徒歩数分。
    • 会場はこんな感じ。


Neo4jユーザグループ再結成

  • 発表者は長瀬氏@株式会社テクノロジックアート
  • ユーザグループの紹介
  • 今後の活動
    • 今後、Neo4jの勉強会や、事例発表などを展開していく。
    • OSCへの出展も考えているらしい・・・
    • 3/11にNeo4jのCEOが来日セミナー開催するかも。



Introducing Neo4j The Graph Database.

  • David氏@Neo Technology社の話。通訳つき。
    • Neo Technology社はヨーロッパ、米国に展開している会社。開発者は現在、60-70人名。
概要
  • 最初にNeo4jの紹介。
  • 後半は最新版2.2説明。
Neo4jの紹介
  • Neo4jはグラフデータベース内では筆頭。
    • 1M+ Downloads
    • 150+ enterpise subscription
  • Neo4jの歴史
    • グラフモデルの登場は2000年ころ(とあるコンテンツ管理システム。RDBの性能限界から。)
    • 2003年にグラフDB化。
    • オープンソース化したのは2007年。
    • 2009年に最初のユーザがついた。
    • 2011年。Query言語(Cypherのことかな)は2011年。
    • 2012年。オライリー
    • 2013年。にラベル付きプロパティの導入。
    • 2104年。150社以上、月間5万DL、など動きは活発。
    • $20Mの出資か・・・
  • さまざまな用途・業界で実は使われているNeo4j
    • 決して特殊用途のDBMSではない、と力説。
    • 「オブジェクトに対する関係性」を管理するのであれば適用できる?
    • ユースケース別の分類。ソーシャルだけでなく、レコメンド、文書と人間と事象、ネットワーク機器のつながり、マスタデータ管理(RBDMS的な管理よりも柔軟に)、位置情報(地図情報との組み合わせ)
  • グラフデータはなにかいいのか
    • データ表現の自由度がとても高くなる。
    • クエリによるリアルタイム検索が可能になる。
  • 最近のデータ管理の要件。
    • とにかくデータ量が多い
    • トランザクションも多い
    • 接続しないと処理できないシステムが増えている。
    • 他の要素から顧客を分析するような要件。複数データソースからの分析。
  • グラフデータベース自体の歴史は新しくはない。
    • でも、Linkedin,Google, facebookみたいな企業は(Neo4jではないようだけど)早くから取り込んでいた
  • Neo4jのクエリ言語 Cypher の話。下記例での説明。:Person がLABEL (確か2.0から導入された機能)になっている。
MATCH (:Person{name:"Dan"})-[:LOVES]->(:Person{name:"Ann"})
  • Cypherの特徴
    • 関係を示す自然な表記と性能を両立している。
    • SQLだと非常に複雑なクエリをCypherのMATCH/WHERE/RETURNで簡潔に記述する例。
      • 3階層のツリーを辿って部下の名前と部下数をカウントする例。
      • PostgreSQLなら、再帰クエリ使えばあそこまで長ったらしいクエリにならんかも?
  • RDBにおけるRelationshipの壁
    • RDBでは不可能ではないにせよ、データ同士の関係を複雑な構造で管理しないといけない。
    • 複雑な構造に対する、複雑な結合クエリ
    • スキーマの柔軟性がない。
  • NoSQLでのRelationshipの管理
    • どれもNoSQLデータを簡素化、検索の簡素化
    • 他のNoSQLにデータモデルがない。
    • クエリの有無、結合ロジックの有無
    • NoSQLはACIDが不十分
  • モデリングにおけるNeo4jの優位性
    • 自然な形でデータを格納、検索できるのが特徴。
    • ホワイトボードのモデルは物理モデル
    • データモデリングのプロセス。
      • ホワイトボードに書いたモデルが、そのままデータベースに落とし込める。
      • データベース技術者でなくても、業務の専門家だけでモデリングができる!?
  • Neo4jのfeatures
  • Native Graph Strage, Native Graph Processing, "Whiteboad Friendly" Data Modeling, High Data Integrity, Query Language, Scalabulity, Built-UIN ETL, Integration
    • MySQLアプリをNeo4j向けに書き換えたらコードが1/50まで削減されたという話。
Neo4j 2.2の新機能紹介
  • Initial Inport
    • CSVのローダか。
      • 以前はローダがなかったから、自分でJavaアプリとか組んでロードしてたんだよなあ。
    • New bulk import, 2.1のローダよりギガ速い。
  • Cypher Architecture
  • Authentication
    • やっとユーザ認証がついた?
質疑応答
  • Q. コストベース変更に伴い、統計情報はどう取得するようになった。(ぬこ質問)
    • ステージングするときに、各サーバからコスト的な情報を拾い集めて、オプティマイズしていると思うが、詳細は別途文書で。
  • Q. 運用・監視系のツールはある?
  • Q. 同時実行性を改善したということだが、ACIDとどう両立させたのか。
    • ノードとリレーションシップの排他を別々にやっているということか・・・?
    • このあたりの内部実装的な勉強会もやっていくといいんじゃまいか。



Neo4j導入事例

  • 講師:鈴木いっぺいさん
Neo4jの適用領域
  • Neo4jはソーシャルに限らずいろんな「リレーションシップ」を管理するもの
  • 大きく伸びている業界:医療、金融、テレコム
テレコム業界
  • ネットワーク機器依存度分析、資産管理
  • ソーシャルグラフ
  • コール分析(地域、カテゴリ、クレームの種別などからの多重分析?)
金融業界
  • 不正検知:異常な使い方を検知できる。
  • 商品レコメンデーション
  • アクセス権管理グラフ
    • ツリーではダメなケースで使うのかな。
医療業界
    • プロバイダーグラフ(医師の紹介)
    • 患者グラフ(医師レコメンデーション)
    • バイオ情報グラフ
Neo4j導入の理由
  • 従来のRDBシステムによる限界
  • Neo4jトライアルで好結果なので導入
  • モデリングの抜本的改善
  • 複数データソースとの統合(アグリゲート)、Facebook/twitter連携など。
導入事例
  • フランスのキャリア
    • 機器の関係をグラフ化
  • 卒業アルバムのオンラインシステム
    • 卒業後の同級生を探すもの
  • CrunchBase
  • 分析系システム。複雑な検索条件を設定可能なので導入。
  • eHarmony
    • オンラインデートサイト
    • 男女の相性マッチング=推奨エンジン=Neo4jを使うことに
    • 過去に自前でグラフDBを使おうとしたが失敗。



Neo4jの日本での事業活動

  • 鈴木氏@クリエーションライン社の発表。
  • Neo4jの日本でのビジネス展開
  • OpenStack、CloudStackなどと合わせ、Neo4jもインテグレーションサービスの一つとして検討しているっぽい。



クロージング

  • じゃんけん大会あり。
  • 見事にNeo4j Tシャツ(XLサイズ)をGet!
    • 今年の運を使い果たしたかもしれんw