AnalyticDB for PostgreSQL以外掛程式形式整合了圖分析引擎功能,並支援使用Cypher查詢語言對圖資料進行高效查詢與操作。圖分析引擎在處理高度互聯的資料集時表現出色,廣泛應用於社交網路、欺詐檢測、Recommendation Engine、知識圖譜以及網路/IT 營運等情境。例如,在典型的社交網路中,引入圖查詢能力,可以快速解決複雜社交關係分析的問題,顯著提升查詢效率與靈活性。
什麼是圖
圖的基本組成元素是節點和邊,其中節點表示事物或實體,邊則描述節點之間的關聯關係。
如上圖所示,左側的節點表示各類實體,包括產品A、公司A、員工A、員工 E 以及員工E的朋友A。邊則用於表示這些節點之間的關聯關係,例如:公司與員工之間的僱傭關係、人員之間的朋友關係,以及產品與員工之間的研發關係。此外,節點和邊還可以附加屬性,以進一步豐富資訊表達。例如,可以在節點上新增人員的工號,或在邊上記錄就職的起始時間等。這種帶有屬性的圖稱為屬性圖。
通過圖的方式,我們能夠以抽象且直觀的形式描述實體及其關聯關係。圖模型支援多樣化的節點類型、邊類型及屬性,因此具備極強的表達能力,非常適合用來處理高度互聯的資料情境。
圖分析引擎的元素
元素名稱 | 描述 |
圖(Graph) | 圖是一種由節點和邊組成的資料結構,表示實體及其之間的關聯關係。以社交網路為例,它是一個典型的圖結構。其中每個人可以表示為一個節點,而人與人之間的關係(如朋友、家人、同事等)則通過邊來體現。 |
節點(Node) | 節點是圖分析引擎中的核心元素,表示資料庫中的實體。每個節點可以被附加標籤,用來儲存與該實體相關的資訊詳情。例如,在社交網路中,節點可以代表使用者、公司或組織等實體,而標籤則可以包括使用者的年齡、公司的名稱或組織的地址等資訊。 |
邊(Edge) | 邊用於串連節點的關係,能夠通過標籤(如權重、方向等)描述關係的特性。例如,在社交網路中,邊可以表示使用者之間的關注、好友或粉絲等關係,而權重可以反映關係的強度(如互動頻率),方向則標明關係的指向性(如“關注”是從一個使用者指向另一個使用者)。 |
標籤(Label) | 標籤是用於對節點或邊進行分類和標識的一種屬性,能夠為資料賦予語義化資訊,從而提升查詢和理解效率。例如,在社交網路中,節點的標籤可以用來區分不同的實體類型,如“人”(Person)或“公司”(Company),而邊的標籤則可以描述關係的性質,如“認識”(Knows)或“工作於”(WorkIn)。 |
屬性圖 | 如果節點包含標籤(用於儲存實體的詳細資料)或邊包含標籤(用於描述關係的具體特徵),這種圖結構被稱為屬性圖。 |
模式 | 在Cypher語言中,查詢以模式為核心,即通過定義模式來匹配目標的圖結構。一旦找到或建立與模式相匹配的結構,其結果便可用於進一步的資料處理或分析。 |
優勢
與傳統關係型資料庫的表結構相比,AnalyticDB for PostgreSQL提供的圖結構在資料建模和操作上更為靈活。它通過節點和邊來構建資料,並以點為核心進行資料訪問和操作,支援圖資料的增刪查改。
例如,在圖資料操作中,一個節點可以通過其所有“出邊”(從該節點出發串連到其他節點的邊)快速存取與其直接關聯的鄰接節點。這種基於點和邊的操作方式,能直觀表達實體間的複雜關聯關係,因此可高效處理高度互聯的資料情境。
區別 | 圖分析引擎 | 關係型資料庫 |
側重點 | 側重資料實體及其關聯關係。 | 側重資料的嚴格分類儲存(即資料結構集合的定義),且表需預先定義固定結構。 |
靈活性 | 靈活性高。當資料變動較大時,僅需添加新的節點、邊以及屬性,並為其指定相應的類型即可完成更新。 | 靈活性較低。當資料變動較大時,需要調整表結構或建立多個新表,這將帶來較高的資料結構修改成本。 |
直觀性和複雜性 | 使用圖的方式來表達現實世界的關係更加直接和自然。資料分析和查詢可以直接基於點與邊的拓撲結構進行。通過直觀的串連關係即可快速定位所需的資料,極大地簡化了複雜關係的處理過程。 | 需要先建立實體表,再建立關係表,並通過複雜的映射將資料關聯起來,這一過程對抽象思維要求較高。 |