iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
AI & Data

資料工程師修煉之路系列 第 7

[Day 7] Data Model(4) - Triple-Store Graph Model 和 總結

  • 分享至 

  • xImage
  •  

接續 Day 6

Triple-Stores and SPARQL

最後要談的就是 Triple-store Graph Model,跟之前講的 Property Graph Model 差不多,只是用不同的方式來表達相同的想法,

在 Tripe-store 中,所有的資訊都存在這 3 個宣告裡,(subject, predicate, object) ,例如 (Bob, likes, banana),Bob 是 subject (主旨), likes 是 predicate (述部,這裡當動詞),banana 是 object (物件)。

subject 等於 graph 裡的 vertex,但 object 可能會有 2 種不同意思:

  • 當基礎資料型態用,等於 vetex 中的 properties,例如 (lucy, age, 33) 就是 lucy 這個 vetex 中有 {age: 33} 這個 property

  • 當另一個 Graph 的 vetex,這時 predicate 就是 Graph 的 edge,subject 是起點 vetex,object 是終點 vetex,例如 (lucy, marriedTo, alain) 就是 lucy 跟 alain 都是 vetex,然後有條 marriedTo 的 edge 從 lucy 向 alain 連過去。

    figure_2-5-1

再來就示範怎麼用 triple 格式建 Graph:

figure_2-6-1

_: 開頭代表的是 vertex,還有要留意的是,當 object 是字串時,則 predicate 為 property,

當 object 是 vertex 時,則 predicate 為 edge,

我們也可以用另一種可讀性較高的簡潔寫法:

figure_2-6-2

SPARQL

SPARQL 是一種用 RDF 模型給 triple-stores 使用的查詢語言,它比 Cypher 早出現,Cypher 的 pattern match 就是參考 SPAKQL 來的。

RDF 全名為 Resource Description Framework ,是 W3C 提出的一組標記式語言技術規範,其目的能透過此種規範把各網頁的 meta 資料統一化,但實務上沒什麼人在用。

我們一樣用之前提到的查詢案例 有哪些人是從 US 搬到 Europe? 來看 SPARQL 怎麼查詢的,

PREFIX : <urn:example:>
SELECT ?personName WHERE {
  ?person :name ?personName.
  ?person :bornIn / :within* / :name "United States". 
  ?person :livesIn / :within* / :name "Europe".
}

可以看到,它跟 Cypher 看起來有點像。

(person) -[:BORN_IN]-> () -[:WITHIN*0..]-> (location) # Cypher

?person :bornIn / :within* ?location. # SPARQL

總結

我們已經介紹了 3 個主要 Data Model, Relational, Document, Graph ,當 relational model 主宰軟體世界這麼長時間以來,NoSQL 概念的火紅替 Data Model 帶來了 2 個不同的方向:

  1. Document model 目標是用 self-contained document 的方式儲存資料,資料關係 (join relation) 薄弱。
  2. Graph Model 的目標是把一切都連起來。

每個 Data Model 都有其適合的場景,以我的公司 ETtoday 數據系統舉例,我們 3 個都有用到,當我們要解 Identify resolution 問題時就用 Graph model、做視覺化時用的資料 Relational model、數據後台用的資料是 Document model,有效率的混用依舊是未來的方向。


上一篇
[Day 6] Data Model(3) - Graph-Like Data Model
下一篇
[Day 8] Storage and Retrieval (1) - Log structured and Hash Index
系列文
資料工程師修煉之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言