Azure Cosmos DB 中的 Gremlin API 簡介,microsoft azure文字轉語音Azure Cosmos DB 中的 Gremlin API 簡介Azure Cosmos DB是Azure針對任務關鍵型應用程序提供的多區域分布式多模型數據庫服務。它是多模型數據庫并支持文檔、鍵值、圖和列系列數......
Azure Cosmos DB是Azure針對任務關鍵型應用程序提供的多區域分布式多模型數據庫服務。它是多模型數據庫并支持文檔、鍵值、圖和列系列數據模型。Azure Cosmos DB通過Gremlin API在為任何規模設計的完全托管數據庫服務中提供圖形數據庫服務。
本文提供Azure Cosmos DB Gremlin API概述,并說明如何使用它們存儲具有數十億頂點和邊緣的大量圖形。可在毫秒級延遲的情況下查詢圖形,并輕松改進圖結構。Azure Cosmos DB的Gremlin API是基于Apache TinkerPop(一種圖形計算框架)構建的。Azure Cosmos DB中的Gremlin API使用Gremlin查詢語言。
Azure Cosmos DB的Gremlin API將強大的圖形數據庫算法與高度可擴展的托管基礎結構相結合,為缺乏靈活性和關系型方法的大多數常見數據問題提供獨特、靈活的解決方案。
備注
無服務器容量模式現在在Azure Cosmos DB的Gremlin API上可用。
Azure Cosmos DB的Gremlin API的功能
Azure Cosmos DB是一個完全托管的圖形數據庫,提供多區域分發、存儲和吞吐量彈性縮放、自動索引編制與查詢、可優化的一致性級別,并支持TinkerPop標準。
以下是Azure Cosmos DB Gremlin API提供的差異化功能:
可靈活縮放吞吐量和存儲
現實世界中的圖形需要擴展到超越單個服務器的容量。Azure Cosmos DB支持橫向可縮放的圖形數據庫,就存儲和預配吞吐量而言,這些數據庫的大小幾乎無限制。隨著圖形數據庫規模的增長,數據將使用圖形分區自動分發。
多區域復制
Azure Cosmos DB可以自動將圖形數據復制到中國任何Azure區域。多區域復制簡化了需要多區域訪問數據的應用程序的開發過程。Azure Cosmos DB除了最大限度地減少中國任何地方的讀寫延遲外,還提供了一種自動區域故障轉移機制,可以在某區域服務中斷(這種情況很少見)的情況下確保應用程序持續可用。
使用最廣泛采用的圖形查詢標準進行快速查詢和遍歷
存儲異類頂點和邊緣,并通過熟悉的Gremlin語法對其進行查詢。Gremlin是一種命令式函數查詢語言,提供了豐富的接口來實現常見的圖形算法。
Azure Cosmos DB支持豐富的實時查詢和遍歷,而無需指定架構提示、二級索引或視圖。在通過使用Gremlin查詢圖形中了解詳細信息。
完全托管的圖形數據庫
通過Azure Cosmos DB無需管理數據庫和計算機資源。大多數現有的圖形數據庫平臺受其基礎結構的限制,并且通常需要進行高度維護才能確保其運營。
作為一種完全托管的服務,Cosmos DB無需管理虛擬機、更新運行時軟件、管理分片或復制或者處理復雜的數據層升級。每個圖形會自動備份,以防受到區域故障的影響。這使得開發人員能夠專注于提供應用程序價值,而不是專注于操作和管理其圖形數據庫。
自動編制索引
默認情況下,Azure Cosmos DB自動為圖形中的節點(也稱為頂點)和邊緣包含的所有屬性編制索引,無需任何架構或創建二級索引。深入了解Azure Cosmos DB中的索引。
與Apache TinkerPop兼容
Azure Cosmos DB支持開放源代碼Apache TinkerPop標準。Tinkerpop標準擁有豐富的應用程序和庫生態系統,它們可以輕松地與Azure Cosmos DB的Gremlin API集成。
可優化的一致性級別
Azure Cosmos DB提供了五個定義明確的一致性級別,以實現應用程序的一致性和性能之間的適當平衡。對于查詢和讀取操作,Azure Cosmos DB提供五種不同的一致性級別:強、有限過時、會話、一致前綴和最終。通過這些細化的妥善定義的一致性級別,可以在一致性、可用性與延遲之間實現合理的平衡。有關詳細信息,請參閱Azure Cosmos DB中的可優化數據一致性級別。
使用Gremlin API的場景
以下是Azure Cosmos DB的圖形支持可能有用的一些場景:
社交網絡/客戶365
通過合并有關客戶及其與其他人的互動的數據,可以開發個性化的體驗、預測客戶行為,或者將某些人員與其他具有類似興趣的人員相連接。使用Azure Cosmos DB可以管理社交網絡以及跟蹤客戶的喜好與數據。
推薦引擎
此場合通常用于零售行業。通過合并有關產品、用戶和用戶互動(例如購買、瀏覽某件商品或者為商品評分)的信息,可以生成自定義的推薦內容。Azure Cosmos DB的低延遲、彈性縮放和原生圖形支持是這些場景的理想選擇。
地理空間
電信、物流和旅行規劃行業中的許多應用程序需要在某個區域中查找興趣點,或者查找兩個地點之間最短/最佳的路線。Azure Cosmos DB天生就很適合解決這些問題。
物聯網
當IoT設備之間的網絡和連接建模為圖形時,可以更好地理解設備和資產的狀態。還可以了解網絡一個部分的更改可能對另一個部分造成的影響。
圖形數據庫簡介
現實世界中的數據存在必然的聯系。傳統數據建模側重于單獨定義實體并在運行時計算它們之間的關系。雖然這種模型有其自身的優點,但高度連接的數據在其約束下可能難以進行管理。
而圖形數據庫方法依賴于存儲層中的持久關系,這使得圖形檢索操作非常高效。Azure Cosmos DB的Gremlin API支持屬性圖形模型。
屬性圖形對象
屬性圖形是由頂點和邊緣組成的結構。兩個對象都可以作為屬性包含任意數量的鍵值對。
頂點/節點頂點表示人員、地點或事件等離散實體。
邊緣/關系邊表示頂點之間的關系。例如,一個人可能認識其他人、涉及到某個事件以及最近處于某個位置。
屬性屬性表示有關頂點和邊的信息。頂點或邊緣中可以包含任意數量的屬性,并且這些屬性可用于描述和篩選查詢中的對象。屬性示例包括具有姓名和年齡的頂點,或具有時間戳和/或體重的邊緣。
標簽標簽是頂點或邊緣的名稱或標識符。標簽可以對多個頂點或邊緣進行分組,以便組中的所有頂點/邊緣都具有特定的標簽。例如,一個圖形可以有多個標簽類型為“person”的頂點。
圖形數據庫通常包含在NoSQL或非關系數據庫類別中,因為不存在對架構或受約束數據模型的依賴。由于缺乏架構,因此可以自然且高效地建模和存儲連接的結構。
圖形數據庫示例
我們使用一個示例圖形來了解如何在Gremlin中表示查詢。下圖顯示了一個商業應用程序,該應用程序管理以圖形形式呈現的有關用戶、興趣和設備的數據。
顯示人員、設備和興趣的示例數據庫
此圖形使用以下頂點類型(在Gremlin中也稱為“標簽”):
人員:圖形中包含三名人員:Robin、Thomas和Ben
興趣:在此示例中,人員的興趣為足球比賽
設備:人員使用的設備
操作系統:設備在其上運行的操作系統
位置:訪問設備的位置
我們通過以下邊緣類型表示這些實體之間的關系:
認識:例如,“Thomas認識Robin”
感興趣的內容:在圖形中表示人員的興趣,例如,“Ben對足球感興趣”
RunsOS:運行Windows OS的筆記本電腦
使用:表示人員使用哪種設備。例如,Robin uses a Motorola phone with serial number 77
位置:表示從中訪問設備的位置
Gremlin控制臺是Apache TinkerPop提供的交互式終端,此終端用于與圖形數據進行交互。若要了解詳細信息,請參閱如何使用Gremlin控制臺中的快速入門文檔。也可以所選的平臺(Java、Node.js、Python或.NET)中使用Gremlin驅動程序執行這些操作。下面的示例演示如何使用Gremlin控制臺對此圖形數據運行查詢。
首先,讓我們了解CRUD。以下Gremlin語句在圖形中插入“Thomas”頂點:
Java
:g.addV(person).property(id,thomas.1).property(firstName,Thomas).property(lastName,Andersen).property(age,44)
接下來,以下Gremlin語句在Thomas與Robin之間插入“knows”邊緣。
Java
:g.V(thomas.1).addE(knows).to(g.V(robin.1))
以下查詢按人員名字的降序返回“person”頂點:
Java
:g.V().hasLabel(person).order().by(firstName,decr)
如果需要回答類似于“Thomas的朋友使用哪些操作系統?”的問題,圖形可以提供很大的方便。可以運行此Gremlin遍歷從圖形中獲取該信息:
Java
:g.V(thomas.1).out(knows).out(uses).out(runsos).group().by(name).by(count())
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部