Neo4j是什麼? 一次讓你了解Neo4j架構、資料庫、應用功能、優點
Posted On 2022 年 2 月 15 日

Neo4j 簡介
大數據時代來臨,當數據量龐大且數據關係複雜時,若使用傳統的 SQL 資料庫儲存需要大量的表格,花費大量的時間寫程式描述數據間的關係。
因此若遇到複雜關聯、龐大的資料,可以使用 Neo4j 開源的圖形數據庫 ( Graph DB ) 不但可以靈活存取也可以達到快速查詢的功能。
Neo4j 介紹
相較於傳統的 SQL 以行、列、資料表格的方式儲存,Neo4j 是以 Graph DB ( 圖形數據庫 ) 的儲存方式藉由許多的 nodes (節點)、relations (關係)、properties (屬性)、label (標籤) 所組合而成。
Graph DB 有三大模型 :
1.Property Graphs
2.Hypergraphs
3.Triple Stores
Neo4j 就是Property Graphs的類型,而 Hypergraphs 適用於大量多對多關係的情境,Triple Stores 則是使用 W3C 的 RDF(資源描述框架)。
Neo4j 是什麼
Neo4j 是一個 NoSQL 非關聯性資料庫,將結構性資料儲存於網絡而不是表格中,目前大體上分為 4 個種類:
NoSQL 非關聯性資料庫 | 例子 |
鍵-值資料庫 | Hadoop HBase |
記憶體資料庫 | Redis |
文件資料庫 | Mongodb |
圖形資料庫 | Neo4j |
Neo4j 架構
單機 Standalone: 適合快速開發與測試環境。
因果叢集 Causal clustering
1.Core Server ( 核心伺服器 ):
讀與寫的功能,為 Neo4j 提供安全性單元,交易需要超過半數以上的 Core Server 確認,就可以安全的回傳給應用程式。
2.Read Replicas ( 唯讀伺服器 ):
僅有讀的功能,不參與拓樸決策,因此若損壞僅影響查詢功能。
唯獨伺服器為 Neo4j 提供可擴充性的單元,以同步核心伺服器的內容,
Neo4j 資料庫
(一)原生圖 ( Native Graph ) 的存儲和處理數據的方式,優化數據關係、提升執行效率,相較關係數據庫的數據快上千倍。
(二)資料同樣兼具 ACID 一致性,支援事務型 ( OLTP ) 和分析型 ( OLAP ) 應用。
(三)標籤屬性圖模型:運用靈活,並且支援豐富的數據語義描述。
Neo4j 主要應用及功能
Neo4j 在應用上非常廣泛,除了可以查詢社交網路人與人的關係,也可以進行數據關係分析達到零售店商推薦購買清單的功能、在金融產業可以藉由圖形數據庫的特性達到反洗錢的目的。
以下舉三個例子說明
應用場景:
(一)社交網路圖譜
Neo4j 可以進行複雜關係的查詢,讓使用者或其資料作為節點,使用者與資料的關係作為結點間的連結。
舉例來說,Neo4j 儲存公司、員工資料,便可進行查詢員工與公司的關係、員工與員工的關係、公司與其他類似公司的關係或與員工其他公司的關聯。
(二)企業網路圖譜
相較於單純的工商資訊查詢,藉由 Neo4j 的企業資訊查詢,可以更全面的了解企業資訊。
舉例來說,想了解一家企業的資訊,涵蓋了公司設立資訊、產品資訊、相關聯性資訊等等,利用 Neo4j 就可以查詢到相關聯的關係人資訊,如合作夥伴、客戶、投資人、供應商資料等等,藉由圖資料查詢可以層層挖掘資料,了解其中的複雜關係。
(三)金融產業應用:反洗錢的模型與反欺詐多維關聯分析場景
藉由 Neo4j 可以清楚知道有洗錢疑慮的網絡,相關的帳號、交易時間、手機 IMEI 碼等等,再進一步可進行關聯性的分析。
Neo4j 優點分析
高可用與高擴展性:部署一個 Neo4j 伺服器可以承載億個節點和關係,當數據量過多時,可以部署分布式集群擴展儲存。
高效能:資料庫會自動將 GraphQL 轉換為單個 Cypher 使開發人員查詢上更為便利。
開發介面友善 :Neo4j 對開發人員而言可以快速地建構 API 驅動應用程式,實現完全靈活的服務。
圖/文:簡安琪
專人協助
由偉康業務人員為您詳細說明偉康的解決方案,以及相關產業經驗。