SlideShare une entreprise Scribd logo
1  sur  88
Télécharger pour lire hors ligne
Neo4j User Group.
異次元のグラフデータベースNeo4j
2018/09/17
Neo4j User Group
LEE CHANGHWAN(李 昌桓)
Neo4j User Group.
Neo4jユーザグループ
• Connpass
https://jp-neo4j-usersgroup.connpass.com/
• Facebook
https://www.facebook.com/neo4jusersgroup
• グラフ型データベース入門 - Neo4jを使う
https://www.amazon.co.jp/dp/B01EUK5RRQ
2
Neo4j User Group.
設立
• 2006年1月
事業概要
• クラウドインテグレーション事業
• データ分析サービス事業
• DevOps関連サービス事業
クリエーションラインのホームページ
• https://www.creationline.com
クリエーションライン株式会社
3
Neo4j User Group.
自己紹介
李 昌桓 (LEE CHANGHWAN,@awk256)
データベースが大好きなサーバサイドのエンジニア。NoSQLを中核としたビックデータ処理基盤構築のアーキテクトとして
活動している。現在、クリエーションライン在職中…
クリエーションライン www.creationline.com
Neo4jユーザーグループ jp-neo4j-usersgroup.connpass.com
ScyllaDBユーザーグループ scylladb-usergroup-jp.connpass.com
[ブログ]
www.creationline.com/lab/neo4j
www.qiita.com/aw256
[著書]
グラフデータベースNeo4jの他
www.amazon.co.jp/李昌桓/e/B004LWEKOU
4
Neo4j User Group. 5
データベースのルネサンス時代
Neo4j User Group. 6
出典:RDB技術者のための
NoSQLガイド,秀和システ
ム,2016
Hadoop
・Apache Hadoop
・Cloudera
・MapR
・Hortonworks
スループット重視
(レポーティング指向)
ターンアラウンドタイプ重視
(オペレーション指向) RDB(OLAP, DWH)
・Oracle Exadata
・Teradata
・Netezza
・Redshift
RDB(OLTP)
・Oracle
・SQL Server
・MySQL*
・PostgreSQL*
グラフDB
・Neo4j
スケールアウトできない
(*シャーディングでスケールアウト可)
スケールアウトできる
KVS
・Redies
・Memcache
ワイドカラム
・Cassandra
・ScyllaDB
ドキュメント
・MongoDB
・Couchbase
NoSQL
Neo4j User Group.
キーバリュー、ワイドカラム、ドキュメント、グラフ
7
ドキュメント(JSON) グラフ
001:‟aaa‟
002.‟bbb‟
003:‟ccc‟
001,title : “Amazo EC2”
001:price : 3000
001:Author : aaa
002:title : “Cassandra入門”
002:Price : “2000”
{ _id :001,
title : “Amazo EC2”,
price : 3000,
author : {
name : „aaa,
address : „xxx‟
phone : „123-1234‟
}
}
writed
Neo4j User Group. 8
区分 NoSQL
データベース KVS ドキュメントDB グラフDB
データモデル キーバリュー ワイドカラム ドキュメント グラフ
OSS ・Redis
・Memcachd
・Riak
・Cassandra
(Datastax)
・HBase(Hdoop)
・MongoDB
・Couchbase
・Neo4j Community
商用製品 ・Oracle NoSQL DB Neo4j EE
Oracle
クラウド ・Google Cloud
Databas
・Amazon
ElasticCache
・Azure Redis Cache
・Amazon
Dynamo DB
・Google
BigTable(HBase)
・Azure Cosmos(ド
キュメントAPP)
・IBM Cloudant
・AWS Neptune
・Azure Cosmos Graph
APP
出典:RDB技術者のためのNoSQLガイド,秀和システム,2016
Neo4j User Group.
• マスタ―型(Neo4j)
• P2P型(Peer to Peer, マスターレス)
データベースのアーキテクチャー
9
M
S S
コピー
01-30
01-30 01-30
01-05 06-10
11-15
16-2021-25
26-30
・ 1台のマスターと、複数レプリカで構成
・キャパシティーの拡張はスケールアップ
・論理的なデータ数制限はない
・スケールアウトできない
01-05
06-10
01-05
26-30
06-10
11-15
11-15
16-20
16-20
21-25
21-25
01-05
・ノード間でクロスでN個のレプリカを持つ
・キャパシティの拡張は水平分散スケールアウト
・高可用性と拡張性の両方を満たす構造
・単一障害点(spof)がない
Neo4j User Group. 10
Neo4j User Group.
データ収集PFのツールマッピング
11
Real Time Process
Message Pool
画像/音声
File Store
Near Real Time
Process
Batch Process
Data Store
テキスト
GW
MQTT?
データマート
データレイク
データソース
Data Mart
Service
Queue
画像処理
Neo4j User Group. 12
グラフデータベースとは
Neo4j User Group. 13
Neo4j User Group.
グラフとは
14
18世紀頃から続く数学の一分野で
現代においては、 学術や 産業界で
幅広く応用されている
• ケーニヒスベルクの橋(プロイセン王国)の問題
• この橋を「一筆書き」のように歩き渡ることができるか
• オイラという学者がグラフを書いて、不可能であることを証明
グ ラ フ は 、 現 実 で 不 要 な も の を 捨 象 化 し 、
本質だけをとらえることによって未知の問題の解決に挑むと
ころから生まれた学問である
Neo4j User Group.
プロパティグラフ
15
• コンピューターによる、現代的なグラフ型データ処理の原型
• ノード(点、頂点)とリレーションシップ(線、辺)に属性(情報{Key:Value})を持つ
Neo4j User Group.
究極的なリレーショナル
16
大雑把にいうと、RDBのリレーションをレコードレベルで繋がった状態のデータを形成する。
レコードレベルの関係性はSQL文の
なかで紐解きながらデータ処理を行
う
既に繋がっている関係性に基づいて
より複雑な関係性を探索する
Neo4j User Group.
グラフデータベースの登場
17
ビュー
API/クエリ言語
アプリケーションフレームワークから
データストア
GDBMSへ
ライブ
ラリ
プログラ
ム
ビュー データ
レポー
ティング
管理
• 学者, 研究者
• 神技を持った人
• 汎用化
• 大衆化
Neo4j User Group. 18
グラフフォーマットにデータを蓄積し、SQLライクなクエリを投げて分析を行う。
現代のグラフデータ処理
Neo4j User Group.
• AllegroGraph
• AnzoGraph
• ArangoDB
• AWS Neptune
• Azure Cosmos Graph APP
• DataStax Enterprise Graph
• InfiniteGraph
• MarkLogic
• Microsoft SQL Server 2017
• Neo4j
• OpenLink Virtuoso
• Oracle Spatial and Graph
• OrientDB
• SAP HANA
• Sparksee
• Sqrrl Enterprise
• Teradata Aster
List of graph databases
19
グラフデータベースを名乗るものは何十種類もある。
そのなかでも、Neo4jは唯一無二の存在である。
Neo4j User Group.
グラフ処理の言語を名乗るものも数々存在する。
• AQL (ArangoDB Query Language)
• Cypher Query Language (Cypher)
• GraphQL
• Gremlin
• SPARQL
APIs and graph query-programming languages
20
Neo4j User Group. 21
デモNeo4jの演習データベース使用
Neo4j User Group.
デモ(Neo4jの演習データベース使用)
22
・Keanu Reevesさんを検索
MATCH (p:Person)
WHERE p.name="Keanu Reeves"
RETURN p
・Keanu Reevesさんが出演した映画に出演した俳優を検索
MATCH (p1:Person)-[r1:ACTED_IN]->(m:Movie)<-[r2:ACTED_IN]-(p2:Person)
WHERE p1.name="Keanu Reeves"
RETURN p1,p2,m,r1,r2
・脚本を書いて、プロヂュースし、監督までしている人と映画を検索する。
MATCH (a:Person)-[r:WROTE|PRODUCE|DIRECTED]->(b), (a)-[:WROTE]->(b), (a)-[:PRODUCED]->(b)
RETURN *
Neo4j User Group.
Neo4jのWebUI
23
とても高機能で、主に開発でデバックのために利用する。
Neo4j User Group.
Keanu Reevesさんを検索
24
レスポンスは、グラフ表現も、テ
キストやJSON、SVGなども可能で
ある。
これは、レコードです。
カラムではありません。
Neo4j User Group.
Keanu Reevesさんが出演した映画に出演した俳優を検索
25
MATCH (p1:Person)-[r1:ACTED_IN]->(m:Movie)<-[r2:ACTED_IN]-(p2:Person)
WHERE p1.name="Keanu Reeves"
RETURN p1,p2,m,r1,r2
//RETURN p1.name,type(r1),m.title,type(r2),p2.name
Neo4j User Group.
脚本を書いて、プロヂュースし、監督までしている人材を検索する。
26
実は、レポート呼ばれるものの大半はデータの関係性を理解するために存在する。
Neo4jは、多重の関係性にダイレクトにクエリを投げられる。
Neo4j User Group. 27
Neo4jとは
Neo4j User Group.
Neo4j = 世界で最も知名度の高いグラフ・データベース
アプリケーションのコア・エンジン
• AI・機械学習
• ナレッジグラフ
• マスターデータ・マネジメント
• パーソナル・リコメンド
• 不正利用検知
28
Neo4j User Group.
他のグラフデータエンジンと異なる特徴
• ネイティブのグラフ処理エンジン
グラフは互いに繋がっているデータである。その特性をインデックスのように生かし、高速データ処理を行う。
• ネイティブのグラフデータストア
RDBやNoSQL、XMLなどに依存しない、グラフデータ構造専用のデータストアを持つために性能面での
圧倒的な優位性を持つ
29
Neo4j User Group.
データベースとしての特徴
• スキーマレス
• Cypher(サイファー,クエリ言語)による究極的なジョイン
• 複数ノードのトランザクション処理
ACID一貫性モデル(強い信頼性と一貫性のある書き込み, すべて成功しないとロールバック)
一般的にNoSQLは、BASE一貫性モデル(結果整合性)
• プロシーシャー/ファンクションの実装で分析能力の拡張
• リッチなビュー
• 高速処理
30
Neo4j User Group.
Neo4j社
• 2007創業
本社:米国シリコンバレー
社員数90名以上
https://neo4j.com/
• 他拠点:
イギリス、ドイツ、パリ
スウェーデン
• 導入数:
民間企業:250社以上
教育期間:20,000校以上
31
Neo4j User Group.
開発の歴史
32
年度 内容 備考
2000* RDBのパフォーマンス問題解決のためのにNeo4jプロタイプ開発(プロパティグラフモデル)
2003 初の現代的なグラフデータベースの製品発表 v1.x
2007 オープンソース版配布開始 v1.x
2011* グラフデータベース業界初のCypher Query言語発表 v1.x
2012 ラベルなどグラフデータモデルの拡張 v1.x
2013* スケーラビリティ、パフォーマンス、Cypher Queryの充実化 v2.x
2015 Cypher Queryのオープンソース化 v2.x
2016* スケーラビリティ、パフォーマンス、標準SDK、ユーザビリティ v3.x発表
2017 社名変更(NeoTechnology社からNeo4j社へ)
2018* Neo4jエコスステム(ETL,BLOOM,グラフアルゴリズム) v3.x
Neo4j User Group.
Neo4j’s Graph Platform
33
グラフデータ分析フラットフォームを目指している
neo4j-etl
Bloom
Graph Algorithms
Procedure
Bolt Driver
Neo4j User Group.
エンタプライズ版 vs コミュニティ版
34
GPL v3ライセンス
この範囲では、コミュ
ニティ版とエンタプラ
イズ版で同じソース
を共有し、公開され
ている
エンタプライズ版
Neo4j社の独自実装
が含まれており、ソ
ース非公開
コミュニティ版との
差はパフォーマンス
と運用面の優位性
Neo4j User Group. 35
ユースケース
Neo4j User Group.
様々な業種・業態におけるプロジェクト適用
36
どの企業もビジネスを巡って、攻めと守りの戦略に苦心している。
Neo4jは、まったく異なる観点からのアプローチを提供し、これまで処理困難
だったデータの処理を可能にしている。
Neo4j User Group.
THE PANAMA PAPERS
37
1150万点に及ぶ「パナマ文書」は、ドイツの日
刊紙「南ドイツ新聞」が匿名の情報源から入手
し、米非営利組織「国際調査報道ジャーナリス
ト連合」(The International Consortium of
Investigative Journalists=ICIJ、本部ワシント
ン)が世界の100を超える報道機関に公開。同国
のタックスヘイブン(租税回避地)を利用して
各国指導者や富裕層らが脱税や資金洗浄を行っ
ている証拠を示すものになった。
Neo4jがバックエンドのデータストア
であり、Neo4jのCypherが分析ツール
として使われている。
Neo4j User Group.
The Basic JCIJ Data Model
38
これは、実際に使われたデータモデルの一部である。
Neo4j User Group. 39
関係性の数を数え
てみると、見えて
いるだけで27個で
ある。おそれく、
もっとある。
このようなデータ
をRDBでモデリン
グし、SQLを発行
することは不可能
である。
Neo4j User Group.
Retail Banking - First Party Fraud Impact
• Tens of billions of dollars every year lost by U.S. Banks.(1)
• 25% of total consumer credit charge-offs in the United States.(2)
• 10%-20% of unsecured bad debt at leading U.S. and European
banks is misclassified, and is actually first party fraud.(3)
(1): Experian: http://www.experian.com/assets/decision-analytics/white-papers/first-partyfraud-wp.pdf
(2): Experian: http://www.experian.com/assets/decision-analytics/white-papers/first-partyfraud-wp.pdf
(3): Business Insider: http://www.businessinsider.com/how-to-use-social-networks-in-the-fight-against-
first-party-fraud-2011-3
40
消費者金融において被害額は想像を絶する
Neo4j User Group.
Retail Banking – First-Party Fraud
• What is it?
– When “people” open many lines of credit with no intention of paying them back
41
この詐欺集団は、善良な市民を
装い、作ったカードで支払いを
行うなど普通に生活しながら、
信用を得た後、ある日突然、限
度額までを引き出し、姿を消す
という。
Neo4j User Group.
Retail Banking - Synthetic Identities and Fraud Rings
Fraud ring with 4 synthetic identities, 4-5 accounts for each identity, totaling 18 accounts.
Assuming an average of $4K in credit exposure per account, the bank‟s loss could be as high as
$72K.
42
この例示では、4つの偽造IDで、それぞれ4~5個のアカウントを作り、18個の口座やカードを持つ
詐欺リングを表している。
Neo4j User Group.
Retail Banking - Traditional Approaches
Gartner’s Layered Fraud Prevention Approach (4)
(4): Gartner at http://www.gartner.com/newsroom/id/1695014
伝統的な手法で、この類の犯罪を摘発することは困難であるという。
Neo4j User Group.
Retail Banking - Modeling a Fraud Ring as a Graph
44
グラフモデルでは、わずかな手掛かりの関係性を繋げて詐欺リングの可能性を探索できる。
Neo4j User Group.
Insurance Fraud – “Whiplash for Cash”
• The impact of fraud on the insurance industry is estimated to be $80
billion annually in the US… and growing.(5)
• In the UK, insurers estimate that bogus whiplash claims add $144 per
year to each driver’s policy. (6)
• Auto insurance fraud adds $200-$300 a year to your individual
insurance premium, according to estimates from the National
Insurance Crime Bureau (NICB)(7).
(5): Coalition against insurance fraud: http://www.insurancefraud.org/article.htm?RecID=3274#.UnWuZ5E7ROA
(6): Insurance Fraud Organization: http://www.insurancefraud.org/IFNS-detail.htm?key=17499#.UmmsJyQhZ0o
(7): Edmunds: http://www.edmunds.com/auto-insurance/auto-insurance-fraud-what-it-costs-you.html
45
偽の交通事故による被害補償もその被害額は想像を絶するという。
Neo4j User Group.
Insurance Fraud - “Whiplash for Cash” Example
Six-person collusion results in three false accidents:
Each person plays the role of “driver” once and “passenger” twice. Assuming an average claim of $20K per injured person,
and $5K per car, the ring can claim $390K in total.
46
加害者と被害者、お医者さん、弁護士など役割分担をしている正当な身分を持つグループが、お小遣い
稼ぎ(?)をする
Neo4j User Group.
Insurance Fraud - Exponential Impacts
Ten people collude to commit insurance fraud, five false accidents are staged
Assuming an average claim of $40K per injured person and $5K per car, the ring can claim up to $1.6M for 40 people
injured! where each person plays the role of the driver once, a witness once and a passenger three times.
47
時をおいて、被害者が加害者になったりしながら詐欺行為を繰り返す。
Neo4j User Group.
Insurance Fraud - Traditional Approaches
Gartner’s Layered Fraud Prevention Approach (4)
(4): Gartner at http://www.gartner.com/newsroom/id/1695014
伝統的な手法で、この類の犯罪を摘発することは困難であるという。
Neo4j User Group.
Insurance Fraud - Modeling Insurance Fraud as a Graph
View of Fraud Ring Inside of a Graph Database
49
グラフモデルでは、わずかな手掛かりの関係性を繋げて詐欺リングの可能性を探索できる。
Neo4j User Group.
Knowledge Graph
50
https://neo4j.com/blog/nasa-critical-data-knowledge-graph/?ref=solutions#what-is-knowledge-architecture
NASAほどの膨大な文献をもっている組織がいるでしょうか。
Neo4j User Group.
Knowledge Graph
51
従来のインデックシング方式では検索結果に不確実性が多い。
グラフデータモデルで新しい文献検索システムを開発している。
Neo4j User Group.
Knowledge Graph
52
Neo4j User Group.
MDM - Employee Hierarchy
53
この図は、組織の表面的な構成を表しているだけである。
Neo4j User Group.
MDM - Hierarchies in the Real World are Actually Graphs
54
実際のコミュニケーションのフローは、とても複雑である。
Neo4j User Group.
MDM - Employee Roles, Activities, Skills, Degrees, Teams Graph
55
グラフモデルでは、複雑な現実世界をありのままデータモデルにし、クエリが実行できる。
Neo4j User Group. 56
開発
Neo4j User Group.
Cypher(サイファー)
57
・究極的なジョイン、グラフサーチ、分析が可能なクエリ―言語である
・言語ドライバー(Bolt Driver)、C#、Java、JavaScript、Python
Neo4j User Group.
グラフデータモデル
58
データの蓄積・探索のための雛形である
これは、「Neo4jの演習データベース」
Movie
[参考]
https://neo4j.com/developer/guide-data-modeling/
https://neo4j.com/graphgists/
Neo4j User Group.
どのようにデータ構成になっているのか
59
データベース データファイルが格納されているフォルダ
ラベル テーブル格
ノード レコード格
リレーションシップ ★ノードとノードの関係定義するもの(グラフ固有)
属性 フィルド格のもので{ キー:バリュー}で表現
★ノードのリレーションシップの両方に持つ
Neo4j User Group.
「俳優〇〇さんが、映画〇〇に出演している」ー基本的なデータ表現の単位
60
:People
{name:‟Kenau Reeves‟, born:1964}
:Movie
{title:‟The Matrix‟, released:1999}
ACTED_IN
{roles:‟Neo‟}
グラフ固有の定義
ノード
リレーションシップ
[:TYPE {key: value, key: value})
(:ラベル { key: value, key: value})
ノード
Neo4j User Group.
これがデータベースの中身だとすると
61
テーブル格
リレーションシップの定義
レコード格
Neo4j User Group.
多様な表現が可能である。
例えば、()は、すべてのノードという意味になる
• ()
• (識別子)
• (:ラベル)
• (識別子:ラベル)
ノードの表現
62
Neo4j User Group.
有向グラフと無向グラフ(検索のみ)の表現が可能である。
ワイルドカードや、何ホップ以内、関係性の名称(タイプ)指定などが可能性である。
• ()-->()
• ()<--()
• ()--()
• ()-[*]->()
• ()-[*..n]->()
• ()-[:タイプ]->()
• ()-[:タイプ*]->()
• ()-[:タイプ*..n]->()
• ()-[識別子:タイプ]->()
リレーションシップの表現
63
Neo4j User Group.
キーとバリューで指定できる。
{Key:Value, Key:Value, Key:Value, …}
• Number, an abstract type, which has the subtypes Integer and Float
• String
• Boolean
• The spatial type Point
• Temporal types: Date, Time, LocalTime, DateTime, LocalDateTime and Duration
属性の表現
64
Neo4j User Group.
ノードを登録する
→Web UI、CLI、APIで実行できる
65
CREATE
(movie:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real
World'})
CREATE
(keanu:Person {name:'Keanu Reeves', born:1964})
映画の登録
俳優さんの登録
CREATE (識別子:ラベル {キー:バリュー,キー:バリュー, ・・・})
Neo4j User Group.
• CREATE (keanu)-[:ACTED_IN {roles:['Neo']}]->(movie)
関係性を登録する
66
Neo4j User Group.
• CREATE
CREATE
• READ
MATCH
[WHERE]
RETURN
• UPDATE/DELETE
MATCH
[WHERE]
SET/REMOVE
UPDATE/DELETE
CRUD・・・SQLライクなシンプルな構文で実行する
67
CRATE (ノード)<-[関係性 ]-(ノード)
MATCH (ノード)<-[関係性 ]-(ノード)
WHERE ノード.名称 = „value‟
RETURN ノード
MATCH (ノード)<-[関係性 ]-(ノード)
WHERE ノード.名称 = „value‟
UPDATE SET[REMOVE] ノード.名称= „value‟
[ DELETE ノード)
Neo4j User Group.
大量データをロードする場合(LOAD CSV)
68
LOAD CSV FROM 'file:///C:/temp/csv/artists.csv' AS line
CREATE (:Artist { name: line[1], year: toInt(line[2])})
• データを読み込んでCyhper Queryに食べさせる
• 既存のデータベースへ追加できる
• 比較的に尐量のデータの追加・変更などに便利
• パフォーマンスが良くない
Neo4j User Group.
大量データをロードする場合(neo4j-import)
69
neo4j-import --into /opt/disk1/data/neo4j/graph1.db --nodes movies.csv --nodes
actors.csv --relationships roles.csv
• off-lineで新規データベースを作る
• とても高速であり、マイグレーション、
off-lineでの分析DB作成などで使う
• データはIDを付与し、グラフとしての整合性のとれた
状態であることが求められる。
Neo4j User Group.
• JDBC Driver
MySQL, PostgreSQl, Oracle, SQL Servr
• 課題
差分抽出
neo4j-etl
ETL(抽出→転送→ロード)
70
ETL
データソース
Neo4j
Neo4j User Group.
Cyhperが難しいですか?
多様なデータモデルとCypherの例示が見られます!
71
https://neo4j.com/docs/developer-manual/3.3/cypher/
https://neo4j.com/graphgists/
Neo4j User Group.
Cyhperが難しいですか?
思い切り、RDB的なことをやってみたらどうでしょうか
72
MATCH (y:Year {year:2014})-->(m:Month {month:9})-->(d)-->(h)-->(o)<-[:PLACED]-(u)
WITH u, sum(o.number * o.price) AS total
WITH
CASE WHEN u.born > 1994 AND u.gender="man" THEN sum(total) END AS lt20m,
CASE WHEN u.born > 1994 AND u.gender="woman" THEN sum(total) END AS lt20w,
CASE WHEN u.born > 1984 AND u.born <= 1994 AND u.gender="man" THEN sum(total) END AS lt30m,
CASE WHEN u.born > 1984 AND u.born <= 1994 AND u.gender="woman" THEN sum(total) END AS lt30w,
CASE WHEN u.born > 1974 AND u.born <= 1984 AND u.gender="man" THEN sum(total) END AS lt40m,
CASE WHEN u.born > 1974 AND u.born <= 1984 AND u.gender="woman" THEN sum(total) END AS lt40w,
CASE WHEN u.born > 1964 AND u.born <= 1974 AND u.gender="man" THEN sum(total) END AS lt50m,
CASE WHEN u.born > 1964 AND u.born <= 1974 AND u.gender="woman" THEN sum(total) END AS lt50w,
CASE WHEN u.born > 1954 AND u.born <= 1964 AND u.gender="man" THEN sum(total) END AS lt60m,
CASE WHEN u.born > 1954 AND u.born <= 1964 AND u.gender="woman" THEN sum(total) END AS lt60w,
CASE WHEN u.born <= 1954 AND u.gender="man" THEN sum(total) END AS gt60m,
CASE WHEN u.born <= 1954 AND u.gender="woman" THEN sum(total) END AS gt60w
WITH collect(lt20m) AS lt20am,
collect(lt20w) AS lt20aw,
collect(lt30m) AS lt30am,
collect(lt30w) AS lt30aw,
collect(lt40m) AS lt40am,
collect(lt40w) AS lt40aw,
collect(lt50m) AS lt50am,
collect(lt50w) AS lt50aw,
collect(lt60m) AS lt60am,
collect(lt60w) AS lt60aw,
collect(gt60m) AS gt60am,
collect(gt60w) AS gt60aw
RETURN
head(lt20am) AS 男年齢20以下,
head(lt20aw) AS 女年齢20以下,
head(lt30am) AS 男年齢30以下,
head(lt30aw) AS 女年齢30以下,
head(lt40am) AS 男年齢40以下,
head(lt40aw) AS 女年齢40以下,
head(lt50am) AS 男年齢50以下,
head(lt50aw) AS 女年齢50以下,
head(lt60am) AS 男年齢60以下,
head(lt60aw) AS 女年齢60以下,
head(gt60am) AS 男年齢60上,
head(gt60aw) AS 女年齢60上
男年齢20以下 女年齢20以下 男年齢30以下 女年齢30以下 男年齢40以下 女年齢40以下 男年齢50以下 女年齢50以下
男年齢60以下 女年齢60以下 男年齢60上 女年齢60上
2,697,130 3,381,830 5,130,839 5,522,689 5,471,666 3,766,844 5,734,831 4,794,380 5,682,058 4,630,580 3,285,838 3,143,985
クロス集計やってみた2014年9月の年齢別男女別の売
上金額
https://www.creationline.com/lab/10192
Neo4j User Group.
Blotドライバ―を公式サポートしている。
• .NET
• Java
• Python,
• JavaScript
https://neo4j.com/docs/developer-manual/current/drivers/
アプリケーション開発
73
Neo4j User Group.
v3.xからグラフデータ処理モデルのアルゴリズムを実装しつつある。
https://neo4j.com/docs/graph-algorithms/3.3/procedures/
2.xまでは全くやっていなかった。Neo4jは、汎用型のグラフデータベースである。グラフアルゴリズムに特化されている
わけではない。 Neo4jの普及とともにニーズが出てきたようである。
プロシーシャーとしてインストールして使う。
https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases
dbms.security.procedures.unrestricted=algo.*
CALL algo.list()
グラフアルゴリズム
74
Neo4j User Group.
様々な規定を機能がインストールするだけで簡単に使える(300近いの機能)。
• APOC(A Package Of Componen)
https://neo4j-contrib.github.io/neo4j-apoc-procedures/index33.html
• 例えば、foo@bar.comからドメインだけを切り出すとか
サードパーティーのプロシージャー
75
WITH 'foo@bar.com' AS email
RETURN apoc.data.domain(email) as value // will
return 'bar.com'<
value
"bar.com"
Neo4j User Group.
Neo4j Desktop
76
統合開発環境であり、Neo4j EEをローカル環境で使える(無償)
Neo4j User Group.
Neo4j Desktop-Bloom
77
コードレスの探索、 ストーリーボード設計でCypherが書けないユーザによるグラフ分析を実現
Neo4j User Group.
可視化では、以下のような選択も
• D3.js https://d3js.org/
• GraphViz http://www.graphviz.org/
• Cytoscape http://www.cytoscape.org/
• LINKURIOUS (Sigma.js) https://linkurio.us/
• KeyLines https://cambridge-intelligence.com/keylines/
サードパーティの可視化ライブラリ
78
Neo4j User Group. 79
運用
Neo4j User Group.
高可用性 (EEのみ)
80
• マスターのデータを複数のスレーブにレプリケーション
• スレーブから読み込みできるが、本来は負荷分散が目的ではない
• Neo4jは、クエリをどのノードに投げてもMasterに伝播される
Neo4j User Group.
高可用性+性能拡張(Causal cluster, EEのみ)
81
• コアは、HA構成になっている
• コアからリードレプリカを拡張する(読み取り負荷分散)
マルチデータセンター
サポートも(新機能)
Neo4j User Group.
増分バックアップを実行し、障害直前の状態をリストアできる。ただし、バックアップは、最後のスナップショットであり、ポ
イントインタイムリカバリはできない。
• フールバックアップ
bin/neo4j-admin backup --backup-dir=/mnt/neo4j-backup --name=graph.db-backup --
pagecache=2G
• インクリメンタルバックバックアップ(フールバックアップ先にオプション付けで実行する)
bin/neo4j-admin backup --backup-dir=/mnt/neo4j-backup --name=graph.db-backup --
fallback-to-full=true --check-consistency=true --pagecache=2G
• リストア
bin/neo4j stop
bin/neo4j-admin restore --from=/mnt/backup/graph.db-backup --database=graph.db --
force
ホットバックアップ(EEのみ)
82
Neo4j User Group.
• 認証/認可
adminの他、ユーザ作成可能であり、IDとパスワードで管理
ユーザ毎にデータベースへの特権を与える(ロールベースの権限管理)
• 実行プロシーシャー制限可能
dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
• SSLフレームワークの標準実装
セキュリティ
83
Neo4j User Group.
v3.xに入ってから、監視機能が大幅に強化されている。
• メトリック(EEのみ)
様々なメトリックを提供しており、例えば、遅延クエリが監視できる。
dbms.logs.query.enabled=true(defaultはfalse)
dbms.logs.query.threshold=<xx秒(ms、又はミリ秒(s) defaultは 0(すべて出力)>
• ロギング(EEのみ)
ロギングの設定によっては、クエリ実行時間の詳細までが取れる。
ex)
2017-11-22 12:38 ... INFO 78 ms: (planning: 40, cpu: 74, waiting: 0) - 6347592 B - 0 page hits, 0 page faults ...
• クエリマネジメント
遅延トランザクション処理のタイムアウト時間を設定きるう。
• 大規模分散処理の監視
監視
84
Neo4j User Group.
実は、グラフ問題に苦労していませんか
• AI&Machine Learning
• Fraud Detection
• Indetity and Access
• Knlowledge Graph
• Master Data Management
• Network and IT Operations
• Privacy, Risk and Compliance
• Recommendation Engine
• Social Networks
85
Neo4j User Group.
Q:Neo4jのリソースサイジングをどうしたらいいですか
A:次のURLを参照してください。
[データサイズを積算]
https://neo4j.com/developer/guide-sizing-and-hardware-calculator/#_neo4j_s_architecture
[リソースを計算]
https://neo4j.com/hardware-sizing/
https://neo4j.com/developer/guide-performance-tuning/
Q:読み取り一貫性が保障されますか。
A:常に、クエリを投げて時点での整合性の取れたデータが読み取れます。Neo4jは、データの一貫性を保障するた
めにACIDモデルを使用し、常に一貫性のある書き込みを行っていますから。
https://neo4j.com/blog/acid-vs-base-consistency-models-explained/
QA集め
86
Neo4j User Group.
Q:Neo4jのトランザクション処理は
A:トランザクション処理を開始した時点から複数行の更新が実行できます。
すべて成功しなければ、ロックバックします。
COMMITするまでは、HEAPメモリに保持し、COMMITすると、永続化される。
https://neo4j.com/docs/developer-manual/current/cypher/introduction/transactions/
https://neo4j.com/docs/developer-manual/current/http-api/#http-api-transactional
87
Neo4j User Group.
Thanks
88

Contenu connexe

Tendances

Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 Hiroshi Ito
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)Takeshi Mikami
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Preferred Networks
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかKoichiro Matsuoka
 

Tendances (20)

Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 

Similaire à 異次元のグラフデータベースNeo4j

グラフタイプデータの可視化ツールーTom Sawyer
グラフタイプデータの可視化ツールーTom Sawyerグラフタイプデータの可視化ツールーTom Sawyer
グラフタイプデータの可視化ツールーTom SawyerChanghwan Lee
 
グラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectivesグラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectives昌桓 李
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みRecruit Technologies
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTterurou
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosionRakuten Group, Inc.
 
Heroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーションHeroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーションMasashi Shinbara
 
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓Insight Technology, Inc.
 
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]創史 花村
 
20221202-WHOIS教室 Ver3.0.pdf
20221202-WHOIS教室 Ver3.0.pdf20221202-WHOIS教室 Ver3.0.pdf
20221202-WHOIS教室 Ver3.0.pdfAkira Nakagawa
 
ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンHayashi Yuichi
 
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法智志 片桐
 
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxチームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxRakuten Commerce Tech (Rakuten Group, Inc.)
 
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析Ryuichi Matsumoto
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4アシアル株式会社
 
AnsibleでAzureの インフラを管理する話 + α
AnsibleでAzureの インフラを管理する話 + αAnsibleでAzureの インフラを管理する話 + α
AnsibleでAzureの インフラを管理する話 + αyaegashi
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤aitc_jp
 

Similaire à 異次元のグラフデータベースNeo4j (20)

グラフタイプデータの可視化ツールーTom Sawyer
グラフタイプデータの可視化ツールーTom Sawyerグラフタイプデータの可視化ツールーTom Sawyer
グラフタイプデータの可視化ツールーTom Sawyer
 
グラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectivesグラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectives
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion
 
Heroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーションHeroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーション
 
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
 
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]
Neo4jでつなぐ知見のネットワーク [Pycon2016 LT]
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
20221202-WHOIS教室 Ver3.0.pdf
20221202-WHOIS教室 Ver3.0.pdf20221202-WHOIS教室 Ver3.0.pdf
20221202-WHOIS教室 Ver3.0.pdf
 
ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターン
 
JavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjugJavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjug
 
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
 
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptxチームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
 
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析
pixivのタグ情報+cytoscape+PHPで、「魔法少女まどか☆マギカ」をネットワーク分析
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
AnsibleでAzureの インフラを管理する話 + α
AnsibleでAzureの インフラを管理する話 + αAnsibleでAzureの インフラを管理する話 + α
AnsibleでAzureの インフラを管理する話 + α
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
 

Plus de 昌桓 李

Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介
Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介
Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介昌桓 李
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019昌桓 李
 
MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019昌桓 李
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)昌桓 李
 
MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得昌桓 李
 
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&AtlasMongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas昌桓 李
 
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説昌桓 李
 

Plus de 昌桓 李 (8)

Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介
Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介
Neo4j Stream, [RDB/NoSQL]Kafka Connector CDC(Change Data Captuer)の紹介
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得
 
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&AtlasMongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
 
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
 

異次元のグラフデータベースNeo4j