2015年2月10日火曜日

Neo4j 説明会「Neo4j導入事例集」鈴木いっぺい氏

先ほどの翻訳しつつ説明していた人による説明。
医療、金融、テレコムのEnterprise系で、ここ数年、特に導入が広がっており、投資も伸びている。

  1. テレコム業界:ネットワーク機器の機器構成。依存度の分析。依存度が高いものに障害が生まれる可能性があるため、どう分散させるか、のトポロジーのためにまず分析、で利用。資産管理にも。ソーシャライゼーション。ユーザどうしが意見を交わしたり、をグラフ化。コール分析。ヘルプデスクなどで、どの地域でどんなクレームが、等。マスターデータマネジメント。
  2. 金融業界:不正検知、クレジットリスク分析。遠くで使うと電話がかかってくる等、大量のトランザクションから異常条件にフラグをつける。人、カード、金融機関、商品、をグラフ化。不正の検知、予防。顧客の管理。組織の管理(BtoBで、組織によってサービスを変える)、レコメンデーション(人ともの)、アクセス管理などのセキュリティ。資産管理(ドキュメント、人、もの、金)、マスタデータマネジメント。
  3. 医療業界:患者と医者、保険会社。救急車などものが絡む世界。プロバイダーグラフ(医者の紹介。症状における医者のレコメンデーション)、患者グラフ(地域と症状)、バイオ情報(ゲノム分析、新薬開発)、マスターデータマネジメント(医療の資産、患者)、Collaborative Medicine(診療プロセス、臨床試験のモデル)

突き詰めるとかなり広い部分で適用できる。


【Neo4jの決め手】

従来のRDBの限界(データモデリングの限界、スキーマの変更が多発、性能面)。あまり新規で入る、というより何かの置き換えが事例として多い。
トライアルで好結果(データモデリングの根本改善、将来的な拡張)
複数のデータソースとの関係構築(FacebookとTwitterとSQLServerと地図情報と住民データベースとのアグリゲートでモバイル向けに……とか。Enterprise向けも増えている。)


【事例】

  • ebay
  • accenture(荷物の配送ルート管理。ロジスティックスの会社。地図情報、トラック、荷物をノード化、モデリング。ピーク時一秒2500個。常にトラックをいっぱいに、かつ最短に、のアルゴリズム。どう一筆書きするか)
  • glassdoor(オンラインジョブサーチ。人と人、会社。誰がどこで働いているか。自分の友達で行きたい会社につとめている人はいないか。)
  • SFT(フランス大手通信キャリア。データセンター内のスイッチ、ルータ。数千台の関係をグラフ化。柔軟な機器管理、問題発生可能性確認ルールエンジン。)
  • ドイツテレコム(ビデオ配信、時にスポーツの実況中継で、SNSでゲームの審判に対してユーザ意見を募る、ユーザ参加型スポーツチャンネル。視聴率UP)
  • telenor(顧客サービス)
  • cisco
  • clasmate-com(卒業アルバムサービス。オンライン化し、どこにいるかわからない同級生を探すSNS。複雑な検索条件を柔軟に。)
  • National Geographic(1888年創業のNPO。コンテンツの量、メディアの種類が多い。ジャーナル、雑誌、テレビ、音楽、ラジオ、本、映画、地図、…… どうやったら配信を最適化し、、たとえばライオンに興味を持ったらライオン保護募金広告を打つレコメンデーションエンジン等。PostgreSQLベースで800万人を100年分、で、性能面でにっちもさっちも。)
  • Acrobat
  • Draker(ソーラーパネル監視システム。ソーラーファーム、インバータ、電線。どのパネルが変電効率が良いか、障害が発生しているか。未然に問題を防ぐIoTアプリの実現。配線図がそのままデータモデルへ。)
  • CruchaBase(くらちべーす、とよむ。人と会社、もののデータベース配信サービス。複雑な検索ができるのが、他の業界DBと比べてすごい。)
  • eHarmony(恋人探しサイト。人と人とをつなげる。アメリカで最大のサイトで数千万人。人間のパーソナリティ(趣味、学校、地域、だけではなく、かなり細かいファクターまで)を持つ。従来RDBでやっていたがパンク。)

一つ一つの深さ、より、幅の広さの説明。定石以上の展開の仕方を、
日本国内で相談できる事業拠点が設立されている。IaaS上のインテグレーションを提供。上のレイヤーのミドルウェアを提供していく。(会社名:??)
日本語の情報が殆ど無いので、今後公式サイトとかホワイトペーパとかコミュニティ含め活動していく予定。

Neo4j 説明会「NeoTechnology社のオンラインプレゼンテーション」David Montag氏 (NeoTechnology COO)

スイスからオンラインでの話らしい! エンジニア。NeoTechnologyはスウェーデンにある会社で、シリコンバレーにもオフィスがある。アメリカ、ヨーロッパで半分半分くらいで開発。人数は60-70名(→80-100人)。最近出資を受けて開発人員増強中。
 Neo4j、ビックデータとの立ち位置、他のNoSQLとの違いについて語る予定。新しい2.2の説明も。
 ネット経由&スピーカ(&私がそもそも英語が苦手)のため聞きづらかったが、通訳がとても丁寧で助かった……。


【Neo4jの概要、強み、特徴とか】

Neo Technology Overview。世界をリードするグラフ型DB。グラフ型DBとしては筆頭くらいに知名度が高い。ダウンロード数も多く、コミュニティも大きい。NoSQLの中では伸び率が高い。2000年にモデルができた。コンテンツ管理の内部プロジェクト。RDBの性能上の問題を解消するために独自のデータモデルへ。2003年にFirst native grahp DB。2007にOpenSourceへ。(生まれたのは2007年と解釈。)2009年には世界で2000のCustomer。2012年にはオライリー書籍が出た。サイファーと呼ばれるQueryLanguageで他のNoSQLと差をつけている。2013年にラベル機能。現在150社の客。月に5万ダウンロード。イベントも活発(年間500以上)。
 非常に細かく、いろいろな範囲に適用されている。eBay、cisco、NetApp、hp等大手もあり。特定の用途ではなく汎用的に評価されている。人、モノ、機器など、オブジェクトに関する関係性を表す必要があるのはどの業界も同じ。データモデリングの仕組みで強い。Social、Recomendationエンジン、Search&Discovery(ドキュメントと人間、事象をつなげる)、Network&Data Center(ネットワーク機器の接続状態で障害予知検知)、MasterDataManagement(RDBの制限から開放される)、Identity&Access(誰が何に、誰が誰の上司、権利をどのレベルで、などモデル化しやすい)、GEO(位置情報。地図情報。ロジスティックス。最短距離計算)。
価値としては、従来のデータモデリング、管理の方式と比較し、制限から開放してくれる、が大きな特徴。データ表現のしかたの自由度が大きく広がる。付随して、アクセスをかけたときの性能が良い。リアルタイム検索。(スケーラブルにすると)大きくなっても速度に影響を与えない。
特に、ビジネス要件の「量が増える」(モバイル、IoT)に着目し、いかにリアルタイムで処理するか。トランザクションの量、つなぐべきDB、接続しなければならないデータソースの数。請求書処理一つとっても、数字だけではなく、請求先、過去の購買履歴、友人などで分析し、将来的なサービスの付加価値をつけるとか。データソースを統合した運用のしかたを。
Neo4jが目指すのは、一つのベクトルから分析、ではなく、周辺含め将来含めより広いところで分析を。従来、ある一つの答えを見出すソリューションだったのが、広い範囲で求められており、それができるデータ管理ソリューションを作っていくのが狙い。グラフ型DBはわりと早い段階から存在しており、それを使っていた会社は成功している。(Early adoptersとして、Linkedin、Google、Facebook)
Cypher(さいふぁー、とよむ。Cypher Query)はPowerful and Expressive Query Language。LABELとPROPERTY、NODE。
例:MATCH(:Person{name:"Dan"})-{:LOVES]->(:Person{name:"Ann"}
一秒に400万のマッチクエリを1コアのマシンで出せる。他のRDBにくらべて非常に早い。
企業の組織の中で上司がいて、その部下、さらにその部下の名前を出す、を検索するために、SQL Queryではかなり長いものを書くことになるが(A4を2枚びっしり、くらい)、Cypher Queryでは4行程度。ある変更が加わった時の変更労力が大きく異なる。
従来のRDB(Relational Database)では関係性(Relationships)をうまく扱えないし、パフォーマンスが落ちるし、JOINが増えるとQueryが複雑になるし、新しいRelationshipsを追加するとスキーマの再設計(Schema redesign)が必要。不可能ではなく、複雑な構造をとらざるを得ず、性能が影響受けてしまう。
また、NoSQLの他のDBも、関係性を取り扱うわけではない。MongoDB、CouchDB、Cassandra…… データを簡素化して検索する、に特化したDBで、関係性を表すクエリは作りこみが必要。JOIN構造を持つDB、ACID特性を維持できないものもある。
Neo4jは、グラフとしてデータをRe-Imagineする。Agile development、High performance、Verical and horizontal scale、Seamless evolution。データのモデリングを自然な形で構築し、自然な形で検索することで、開発労力を削減。Enterpriseでの実績もあり信頼の出来る技術に成長している。
ホワイトボードに書いたモデルが、Physical Modelになる。モデリングのプロセスとして、データの関係を表記すると、そのまま直結できる。データベースアーキテクトが要らない世界。技術者である必要もなく、マーケティング部門がアプリ設計時にDB関係柄をホワイトボードに書いてDBが設計できる、垣根の低い技術として評価されている。
特徴として、Native Graph Storage、Ntive Graph Processing、Whiteboard Friendry Data Modeling、High Data Integrity(Filly ACID transactions)、Powerful Expressive Query Language(10-100倍コードが短い。MySQLとくらべて1/50に減った例あり)、Scalability and High Availability(クラスタは商用版のみ?)、Built-in ETL、Integration。敷居が低いが保全性はRDB並み。


【Neo4j 2.2で変わったこと】

現在2.1。近々2.2。いくつか性能の問題が指摘されていたが、今回のリリースで大きく改善した。
  •  2.1ではInitial Import:csvからの初期時の読み込み(Load csv機能)。複数のcsvを同時に読み込み可能。DBpedia(?)  2.2ではオンプレミスだけではなくオンラインも読み込みができるNew Bulk Import機能。非常に高速。ベンチマークで非常に大量のロードを実施。
  •  Cypher Architecture。従来のRule-Based OptimizerからCost-Based Optimizerになり、クエリー速度を改善し、ベンチマークで1800ms→23ms、870→43、16→0.9。コストベースは、どういう順番で計算すればよいかを考えている。
  •  Concurrent Writes。ディスクへの書き込みの並列化。従来はシーケンシャル。Small Transaction(小さな書き込みを大量に)では5-15倍早くなった。(Transactions per second TPSで。)SSDだと5-100倍。並列処理でSmall Transactionの改善効果が大きい。特にSSDでは。
  •  Authentication。セキュリティ面の強化。ユーザ認証機能追加。(これまで無かったの???)

【質疑応答】

  • コストの計算方法は? →難しいので別途文章で。
  • RDBとのコスト計算の違いは? →
  • モニタリングは? →APIは準備している。OSSで公開されているサードパーティのはある。
  • ACID特性準拠による性能への影響は? ロックとか →ノードとリレーションシップとでロック(?) 解除されたら次が入る(?)

Neo4j 説明会「Ne4Jユーザグループ再結成」テクノロジックアート 長瀬嘉秀氏

2015/2/10、connpassで見つけた、Neo4j 説明会(NeoTechnology社 COO Lars Nordwall氏 来日講演) 行ってみた。代々木のHatchUp。
http://jp-neo4j-usersgroup.connpass.com/event/11754/?utm_campaign=event_participate_to_follower&utm_source=notifications&utm_medium=email&utm_content=detail_btn


ハッシュタグは、#Neo4jUsersGroup。
Google groupにグループあり。
Facebook:https://www.facebook.com/neo4jusersgroup
Twitter:https://twitter.com/Neo4jUsersGroup

 日本でNeoTechnologyによる販売が決まり、数年前にユーザーズグループ作っていたが再結成することになった。積極的に参加してほしいとのこと。
 ……あれ、すごく見覚えあるなぁと思ったら、先日のモデルベース開発での講演者ですか。
 これまでに二回ほど勉強会が実施されている。
 今後、勉強会、事例発表、製品情報、OSCへの出展等。現在は英語しか文献が出ていない。
 こうやったらグラフ型DB使えるよ、の発表予定。