Neo4j是什麼? 一次讓你了解Neo4j架構、資料庫、應用功能、優點

Neo4j

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 驅動應用程式,實現完全靈活的服務。

圖/文:簡安琪

專人協助

由偉康業務人員為您詳細說明偉康的解決方案,以及相關產業經驗。

立即訂閱電子報

掌握最新科技趨勢!