SlideShare a Scribd company logo
1 of 10
ULS
Copyright © 2011-2018 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
PGX ユーザーグループ グラフ・データベース完全入門! LT
Graph DB のユニークさについて考えてみた
2018/12/01
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 1
自己紹介
– 名前: 田上 悠樹
– 職業: ITエンジニア
– 所属: ウルシステムズ株式会社
– 活動: PGX ユーザーグループでのLTなど
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 2
各Databaseの魅力
堅牢な構造 / 多機能・高機能
直感的な構造 / クールなクエリ
柔軟な構造 / 圧倒的な非機能性能
ー RDB ー ー No SQL DB ー
ー Graph DB ー
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 3
― こういった特徴差は、どこから来るのか考えてみた ―
 データ構造の視点
 データ検索の視点
Question
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 4
データ構造に対するアプローチ
Table, Bucket, Collection
など呼び方は色々あるが、基本的に
1種類の構造物からなる。
リソースやイベントを保持するNode と
その関係性を保持するEdge の
2種類の構造物からなる。
Table 1 Table 2 Table 3 Node
1
Node
3
Node
2
Node
4
Edge 1
Edge 2
Edge 3
ー RDB / No SQL DB ー ー Graph DB ー
※ FKは、構造物というより制約と捉えた。
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 5
データ構造の表現の差
– 部署と 従業員の関係性の表現方法(兼務ありのケース)
従業員
従業員番号
氏名
部署
部署コード
部署名
所属
部署コード
従業員番号
所属期間 From
所属期間 To
1 * * 1
人事部
総務部
A さん
C さん
B さん
所属:
XX年Y月 ~ XX年Y月
所属:
XX年Y月 ~ XX年Y月
所属:
XX年Y月 ~ XX年Y月
RDBの場合:
Graph DBの場合:
本来、関係性の役割を果たすデータも Table
として表現せざるを得ないので人工的な表現。
Edgeが関係性の役割を
果たすことで、直接的に
繋がりを表現できる。
構造物が2つあることで
表現の幅が広がる。
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 6
データ検索に対するアプローチ
Graph DBは、Database が従来果たしてきた『抽出』、『集計』という検索機能に
加えて、『辿る(トラバース)』 という新しい検索の切り口を与えてくれた。
ある集合の中から特定の条件を
満たす要素を抽出したり、集計
すること。
ある要素を起点に特定の条件を
満たす要素を辿ること。
ー RDB / No SQL DB ー ー Graph DB ー
SELCT 要素 FROM 集合 MATCH (要素) -> (要素) -> (要素)
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 7
データを辿るということ
- ネットワークを辿る - - 階層を辿る -
- 好みを辿る -
[購入] [購入]
[購入]
[購入]
[購入]
[購入]
[購入]
本人
(商品)
[友人]
[友人]
[友人]
[友人]
[友人]
[友人]
上長を辿る 部品構成を辿る
[構成]
[構成]
[構成]
(部品)
(部品)
(部品)
(部品)
[構成]
(商品)
(商品)
(人物)
(人物)
(人物)
(ユーザー)
(ユーザー)
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 8
データを辿るときの主役
– MATCH 句
 従来のFROM句と異なり、データのアクセス先を可変的に指示できる。
 同じLabelに対しても再帰的に辿れる。 N 対 Nのリレーションも辿れる。
– Edge
 Edgeを介して、データの繋がりを 直接的かつ “流ちょう” に記述できる。
 逆にNodeがたくさんあっても、Edgeがないと辿れない。。Edgeの存在が重要。
(※ その点 RDBの JOINはデータさえ投入すれば、すぐにJOINできる手軽さは素晴らしい。)
MATCH句に従いデータの荒野を
駆け巡るイメージ
FROM句にある巨大なデータの集塊を
ろ過するイメージ
FROM table1
JOIN table2 ON xxxxx
JOIN table3 ON xxxxx
アクセス先を最初に固定する
MATCH
(node1) –[2..5]-> (node2),
(node2) –[1..*]-> (node3)
可変的なアクセスが可能
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 9
まとめ
– データ構造の視点
 Node(リソース)とEdge(関係性)の2種類の構造物があることで、表現の幅が広がる。
(※ 反面、Nodeにすべきか Edgeにすべきか 新しい悩みが発生することも… )
– データ検索の視点
 Graph DBは、データを『辿る』という新しい検索の切り口を与えてくれた。
 Match句の可変的なアクセスや Edgeの存在が、流ちょうなクエリ記述と合う。
Graph DBで、データが『連鎖』していく感覚が味わえると楽しい ♪

More Related Content

Similar to Graph DB のユニークさについて考えてみた

[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide HanataniInsight Technology, Inc.
 
BASEでデータ処理の幅を広げよう
BASEでデータ処理の幅を広げようBASEでデータ処理の幅を広げよう
BASEでデータ処理の幅を広げようkoutarou watanabe
 
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」(株)TAM
 
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.Hibino Hisashi
 
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)Yosuke Katsuki
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案Toshiyuki Shimono
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo FallYusukeKuramata
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...Insight Technology, Inc.
 
Table storage&sql azure jazug
Table storage&sql azure jazugTable storage&sql azure jazug
Table storage&sql azure jazugSurf174
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Ryota Watabe
 
ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~Kensuke SAEKI
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu GotoInsight Technology, Inc.
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介Orb, Inc.
 
Big Data Visual Analytics Realized By Hadoop and Tableau
Big Data Visual Analytics Realized By Hadoop and TableauBig Data Visual Analytics Realized By Hadoop and Tableau
Big Data Visual Analytics Realized By Hadoop and TableauDataWorks Summit
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現Ryoma Nagata
 
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略歩 柴田
 

Similar to Graph DB のユニークさについて考えてみた (20)

[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
 
BASEでデータ処理の幅を広げよう
BASEでデータ処理の幅を広げようBASEでデータ処理の幅を広げよう
BASEでデータ処理の幅を広げよう
 
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
 
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
 
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
 
Table storage&sql azure jazug
Table storage&sql azure jazugTable storage&sql azure jazug
Table storage&sql azure jazug
 
Strata conference 2012
Strata conference 2012Strata conference 2012
Strata conference 2012
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
 
ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~
 
EDB Postgres Vision 2019
EDB Postgres Vision 2019 EDB Postgres Vision 2019
EDB Postgres Vision 2019
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
Big Data Visual Analytics Realized By Hadoop and Tableau
Big Data Visual Analytics Realized By Hadoop and TableauBig Data Visual Analytics Realized By Hadoop and Tableau
Big Data Visual Analytics Realized By Hadoop and Tableau
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介
 
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
 

More from Yuki Tagami

Start Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4JStart Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4JYuki Tagami
 
グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点Yuki Tagami
 
PGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony OptimizationPGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony OptimizationYuki Tagami
 
RL4J で始める深層強化学習
RL4J で始める深層強化学習RL4J で始める深層強化学習
RL4J で始める深層強化学習Yuki Tagami
 
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )Yuki Tagami
 
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )Yuki Tagami
 
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)Yuki Tagami
 
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)Yuki Tagami
 
PGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始めPGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始めYuki Tagami
 
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースPgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースYuki Tagami
 
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリングいまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリングYuki Tagami
 
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312Yuki Tagami
 

More from Yuki Tagami (12)

Start Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4JStart Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4J
 
グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点
 
PGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony OptimizationPGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony Optimization
 
RL4J で始める深層強化学習
RL4J で始める深層強化学習RL4J で始める深層強化学習
RL4J で始める深層強化学習
 
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
 
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
 
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
 
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
 
PGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始めPGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始め
 
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースPgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
 
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリングいまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
 
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
 

Graph DB のユニークさについて考えてみた

  • 1. ULS Copyright © 2011-2018 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by PGX ユーザーグループ グラフ・データベース完全入門! LT Graph DB のユニークさについて考えてみた 2018/12/01
  • 2. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介 – 名前: 田上 悠樹 – 職業: ITエンジニア – 所属: ウルシステムズ株式会社 – 活動: PGX ユーザーグループでのLTなど
  • 3. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 各Databaseの魅力 堅牢な構造 / 多機能・高機能 直感的な構造 / クールなクエリ 柔軟な構造 / 圧倒的な非機能性能 ー RDB ー ー No SQL DB ー ー Graph DB ー
  • 4. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 ― こういった特徴差は、どこから来るのか考えてみた ―  データ構造の視点  データ検索の視点 Question
  • 5. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 データ構造に対するアプローチ Table, Bucket, Collection など呼び方は色々あるが、基本的に 1種類の構造物からなる。 リソースやイベントを保持するNode と その関係性を保持するEdge の 2種類の構造物からなる。 Table 1 Table 2 Table 3 Node 1 Node 3 Node 2 Node 4 Edge 1 Edge 2 Edge 3 ー RDB / No SQL DB ー ー Graph DB ー ※ FKは、構造物というより制約と捉えた。
  • 6. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 データ構造の表現の差 – 部署と 従業員の関係性の表現方法(兼務ありのケース) 従業員 従業員番号 氏名 部署 部署コード 部署名 所属 部署コード 従業員番号 所属期間 From 所属期間 To 1 * * 1 人事部 総務部 A さん C さん B さん 所属: XX年Y月 ~ XX年Y月 所属: XX年Y月 ~ XX年Y月 所属: XX年Y月 ~ XX年Y月 RDBの場合: Graph DBの場合: 本来、関係性の役割を果たすデータも Table として表現せざるを得ないので人工的な表現。 Edgeが関係性の役割を 果たすことで、直接的に 繋がりを表現できる。 構造物が2つあることで 表現の幅が広がる。
  • 7. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 データ検索に対するアプローチ Graph DBは、Database が従来果たしてきた『抽出』、『集計』という検索機能に 加えて、『辿る(トラバース)』 という新しい検索の切り口を与えてくれた。 ある集合の中から特定の条件を 満たす要素を抽出したり、集計 すること。 ある要素を起点に特定の条件を 満たす要素を辿ること。 ー RDB / No SQL DB ー ー Graph DB ー SELCT 要素 FROM 集合 MATCH (要素) -> (要素) -> (要素)
  • 8. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 データを辿るということ - ネットワークを辿る - - 階層を辿る - - 好みを辿る - [購入] [購入] [購入] [購入] [購入] [購入] [購入] 本人 (商品) [友人] [友人] [友人] [友人] [友人] [友人] 上長を辿る 部品構成を辿る [構成] [構成] [構成] (部品) (部品) (部品) (部品) [構成] (商品) (商品) (人物) (人物) (人物) (ユーザー) (ユーザー)
  • 9. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 8 データを辿るときの主役 – MATCH 句  従来のFROM句と異なり、データのアクセス先を可変的に指示できる。  同じLabelに対しても再帰的に辿れる。 N 対 Nのリレーションも辿れる。 – Edge  Edgeを介して、データの繋がりを 直接的かつ “流ちょう” に記述できる。  逆にNodeがたくさんあっても、Edgeがないと辿れない。。Edgeの存在が重要。 (※ その点 RDBの JOINはデータさえ投入すれば、すぐにJOINできる手軽さは素晴らしい。) MATCH句に従いデータの荒野を 駆け巡るイメージ FROM句にある巨大なデータの集塊を ろ過するイメージ FROM table1 JOIN table2 ON xxxxx JOIN table3 ON xxxxx アクセス先を最初に固定する MATCH (node1) –[2..5]-> (node2), (node2) –[1..*]-> (node3) 可変的なアクセスが可能
  • 10. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9 まとめ – データ構造の視点  Node(リソース)とEdge(関係性)の2種類の構造物があることで、表現の幅が広がる。 (※ 反面、Nodeにすべきか Edgeにすべきか 新しい悩みが発生することも… ) – データ検索の視点  Graph DBは、データを『辿る』という新しい検索の切り口を与えてくれた。  Match句の可変的なアクセスや Edgeの存在が、流ちょうなクエリ記述と合う。 Graph DBで、データが『連鎖』していく感覚が味わえると楽しい ♪