Neo4jユーザーグループ勉強会 #7 に行ってきたよ
ということでNeo4jユーザーグループ勉強会 #7 に行ってきましたよ。
今回は恵比寿ガーデンプレイスタワーにあるクラウドワークスさんで開催。
久々の恵比寿です。
前回、恵比寿に行ったのって、岩合光昭氏の写真展「ネコライオン」を観に行った時以来かなあ。
最初に注意が
- データの注意点・・・?
- かなり個人情報に触れるデータを使っているので配布資料はなし。
- デモ用の?データはCSVだけでなく、Neo4jフォーマットでの配布もある!
パナマ文書の概要
- パナマ文書、わくわくw
- PanamaPaper特集・・・と言いながら、Graph Connect Europeイベントには実は誰も出席していないとw
- その代わりビデオは一通り見たと。
- 15分、20枚のスライド。
- Mar Cabraさん@ICIJがデータ分析PJのトップ。
- 以前はオフショアリークス、という分析を以前行った。
- 香港・中国関係
- ルクセンブルグ、スイス
- パナマ文書のサイズ:2.6TB 21万社の企業。
- 3人でパナマ文書のデータ解析をやった。
- パナマ文書からわかったことの一部
- ターゲット。政治家、政治家の親族(ここがグラフデータベースの強み)
- 世界中の大きな銀行が関わっている。英国の不動産業者も。
- ICIJでこの情報をどう扱っているのか。
- Oxwall(OSSのジャーナリスト間のデータ共有ソフトウェア)
- Neo4jで扱っているのは、Database format、300万ファイル。
- これだけ多いのでまだ未分析のものも多い。
- Blacklightというソフトでポータルサイトを構築。
- オフショアリークの時にはSQL Server+Javascriptで可視化していた。
- パナマ文書のときには、Neo4j+LINKURIOUSを採用
- 前処理としてETLを実施。talendを使用。
- 出来上がったデータ
- 950000 node, 1.2million edge (4GBデータ)
v3.0発表
- Creationlineの李さんから説明。
V2までのおさらい。
3.0の話
- Scale and Performance
- データ数制限が実質上なし?(340億ノード)
- Dynamic poinnter compression.
- インデックスフリーの隣接性改善
- pointer hop という技法でエッジなしでもトラバース可能にする?これでウルトラ高速化!とのこと。
- オプティマイザ改善
- 2.0まではWriteはRuleベースだった。
- 3.0からはRead/WriteもCostベース
- 開発者向け機能
- Docker上でもクラウド上でも使えるように。
- 座標情報関数のサポート。つまりGis対応はじまた?
- 最短経路(shortestPath)改善。
- 3.0への移行
- 3.0はJDK8対応。
- 旧バージョンからの移行はそんなに大変ではない。
- configure fileが1つに統合された。このへんは要注意。
パナマ文書:データ分析作業の話。
- 4種類のCSVになっていて、それをNeo4jにロード可能。
- なお、Neo4jフォーマットでも入手できる。
- パナマの法律事務所(Mossack Fonseca)がデータ元。
- そこがハッキングされて外部流出している(と事務所側は主張している)。
- ドイツの新聞社がまずそれを受け取った。
- 新聞社で独自に解析。Nuixでメタデータ抽出を試みたが失敗。
- そこでICIJと協業することに。
- ETL/Neo4jでデータベースか、Linkriousで可視化。5/9にデータ公開。211MB、840Kノード、1.27Mエッジ。
- これは2ndPlatform側
- ノードの抽出
- クライアント、企業、住所、役員(企業、個人)
- 属性情報(ドキュメント番号、日付等)
- 関係柄の抽出
- 直接的なものは、データベースそのもの見れば分かる。
- 間接的なもの:同じ住所、メール、似たような名前。
- 今後、ICIJで拡張を考えていること。
- 1st Platform(イメージ、PDF等)側の分析。
- 個人企業と関連ドキュメントの関係、人間関係の関係、企業登記情報
- ここが機械化できない。自動化できている2nd Platformと連携。
ETL(Talend)の話
- Talendはオープン版、商用版の2つがある。
- 日本の顧客、いろいろ使っている。DATAやCOMでも使っている。
- ICIJでも使っていた。
- 某キャリアでのNW機器情一元管理・・・どこなんだろう・・・。
- システム移行
- Talend Hadoop, NoSQL, DWHとの連携コンポーネント
- もちろんNeo4jとも連携可能。
- MySQL/PostgreSQLとも連携可能
- GUIで開発。
- スケールアウト(Haddopベース)
- クラウド(AWS)でも使える
- 新技術に積極的に対応。
- コミュニティ活動も活発らしい。
- Talendは単なるETLではないよ。データの統合連携基盤だよ。
- 無償版と有償版の違い
- 無償版はデスクトップ向け、有償版はサーバ上、運用監視など。
- Neo4jとあんまり関係なかったけど、Talendは調査しておかないといけないかな(社畜的に)
Neo4jを使用したパナマ文書データ検索デモ
- クリエーションラインの木内さん。
- デモに使ったデータは加工・匿名化してる。
- 4種類のノード
- Ofiicer(役員), Address(住所), Entity(オフショア会社・個人), Intermediary(仲介業者)
Officer ----> Addeess | | | +------------+ | | o o Entity <---- Intermediary
- ETL済み、配布ファイルは210MB、展開後470MB
- プロパティは実はディスク上に置かれている。ノードとエッジをオンメモリに。
- インデックスもオンメモリに。
- これ、知らんかった。基本、ノードとエッジがオンメモリだから探索が高速なのか。
- CSVロードしちゃうと時間めっさかかるよー。なぜならクエリ内で変換しちゃうから。
- リレーションはMATCH/MERGE文を使って手動でつけないといけない。エッジが多いととてつもなく時間がかかる。
- クエリ例
- 日本人は何人いる? (2317人)
- もっとも日本人ではない名前もあるし、逆もしかり。
- 日本人は何人いる? (2317人)
- パナマ文書で明らかになった人数は。
- ある人間からリレーションをたどるデモ。
- Officerが一杯・・・しかも同一住所。
- 香港にEntityが何社あるか。
- ただし、struck_off_date (活動停止)の会社も含む。
- じゃあ、アクティブな会社は?
- 香港のとある地区の活動中の会社役員の日本人の数は?
- あるノードからあるノードを辿りつつ条件を指定できるのがCypherQueryの特徴。
- 何らかの理由で繋がっている日本人の組
恒例:Neo4jじゃんけん大会
- Neo4jTシャツと、Neo4j水ボトル、Neo4jガラス、Cpypher本、シール10枚
- 残念、今回は勝てなかった。
懇親会
- 恵比寿ガーデンプレイス内のビアホールで。