選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

陳述式在 Neptune 中如何編製索引

焦點模式
陳述式在 Neptune 中如何編製索引 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

當您查詢 quad 圖表,您可以對每個 quad 指定值限制,也可以不指定。查詢會傳回符合您指定之值限制的所有 quad。

Neptune 使用索引來解析圖形查詢模式。這些索引位於圖形邊緣的四個主要元件上:主體 (LPG 中的來源頂點);述詞 (RDF) 或屬性或邊緣標籤 (LPG);物件 (LPG 中的目標頂點或屬性值);以及圖形 (RDF) 或邊緣識別符 (LPG)。這四個四元元件位置有 16 (2^4) 個可能的存取模式。您可以使用六個索引,有效率地查詢所有 16 種模式,而無需掃描和篩選。每個 quad 陳述式索引使用由以不同順序串連的四個位置值組成的索引鍵。涵蓋所有 16 個存取路徑的四元統計索引的可能組合之一是:

Access Pattern Index key order ---------------------------------------------------- --------------- 1. ???? (No constraints; returns every quad) SPOG 2. SPOG (Every position is constrained) SPOG 3. SPO? (S, P, and O are constrained; G is not) SPOG 4. SP?? (S and P are constrained; O and G are not) SPOG 5. S??? (S is constrained; P, O, and G are not) SPOG 6. S??G (S and G are constrained; P and O are not) SPOG 7. ?POG (P, O, and G are constrained; S is not) POGS 8. ?PO? (P and O are constrained; S and G are not) POGS 9. ?P?? (P is constrained; S, O, and G are not) POGS 10. ?P?G (P and G are constrained; S and O are not) GPSO 11. SP?G (S, P, and G are constrained; O is not) GPSO 12. ???G (G is constrained; S, P, and O are not) GPSO 13. S?OG (S, O, and G are constrained; P is not) OGSP 14. ??OG (O and G are constrained; S and P are not) OGSP 15. ??O? (O is constrained; S, P, and G are not) OGSP 16. S?O? (S and O are constrained; P and G are not) OSGP

根據預設,Neptune 只會建立和維護這六個索引中的三個:

  • SPOG –   使用 Subject + Predicate + Object + Graph 組成的索引鍵。

  • POGS –   使用 Predicate + Object + Graph + Subject 組成的索引鍵。

  • GPSO –   使用 Graph + Predicate + Subject + Object 組成的索引鍵。

這三個索引會處理許多最常見的存取模式。只維護三個完整陳述式索引 (而非六個),可大幅減少支援不經掃描和篩選而快速存取所需的資源。例如,每當頂點或頂點和屬性識別符等位置字首繫結時,SPOG 索引會允許有效查詢。只有存放於 P 位置的邊緣或屬性標籤繫結時,POGS 索引才會允許有效存取。

尋找陳述式的低層級 API 採用的陳述式模式,其中有些位置已知,而其餘則保留供索引搜尋探索。透過根據其中一個陳述式索引的索引鍵順序,在索引鍵字首索引鍵中構成已知位置,Neptune 執行範圍掃描來擷取符合已知位置的所有陳述式。

不過,根據預設,Neptune 未建立的其中一個陳述式索引是反向周遊 OSGP 索引,它可以跨物件和主題收集述詞。Neptune 預設會改為在個別索引中追蹤它用來進行 {all P x POGS} 聯合掃描的不同述詞。使用 Gremlin 時,述詞對應到屬性或邊緣標籤。

如果圖形中的不同述詞量很大時,預設的 Neptune 存取策略會變得沒有效率。例如,在 Gremlin 中,未指定邊緣標籤的 in() 步驟,或內部使用 in() 的任何步驟 (例如 both()drop()) 可能會變得沒有效率。

使用實驗室模式啟用 OSGP 索引建立

如果您的資料模型建立大量不同的述詞,可能會遇到效能降低和營運成本增加的情況,這些可藉由使用實驗室模式來啟用 OSGP 索引 (除了 Neptune 根據預設維護的三個索引以外) 而大幅改善。

注意

此功能從 Neptune 引擎版本 1.0.2.1 版開始提供。

啟用 OSGP 索引可能會有幾個缺點:

  • 插入速率最多可能減慢 23%。

  • 儲存量增加高達 20%。

  • 均等觸及所有索引的讀取查詢 (這是很少見的情況) 可能會增加延遲。

不過,一般而言,啟用具有大量不同述詞之資料庫叢集的 OSGP 索引是值得的。物件型搜尋變成很有效率 (例如,尋找頂點的所有傳入邊緣,或連線到給定物件的所有主體),因此,降低頂點也變得更有效率。

重要

在載入任何資料之前,您只能在空白的資料庫叢集中啟用 OSGP 索引。

 

Neptune 資料模型中的 Gremlin 陳述式

Gremlin 屬性圖資料在 SPOG 模型中使用三類陳述式來表示,即:

如需如何在 Gemlin 查詢中使用這些陳述式的說明,請參閱 了解 Gremlin 查詢如何在 Neptune 中運作

在本頁面

下一個主題:

查詢快取

上一個主題:

字典
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。