探究DB2中RDF數據的特征并描述創建優化存儲的流程

資源描述框架 (Resource Description Framework, RDF) 是一系列 W3 規范標準,主要支持數據和元數據的交換。憑借 IBM DB2 10 for Linux, UNIX, and Windows Enterprise Server Edition,應用程序可以存儲和查詢 RDF 數據。

本探究 rdf 數據的特征并描述創建優化存儲的流程。此外,還將介紹如何使用 db2 引擎或該應用程序對 rdf 存儲提供細粒度訪問控制。本文包含一個樣例應用程序。

本教程是由三部分組成的系列文章 “RDB2 10 for Linux, UNIX, and Windows 中的資源描述框架應用程序開發” 的第 2 部分,讓您在實際操作中體驗 DB2 for Linux, UNIX, and Windows 軟件和資源描述框架 (RDF) 技術的使用:

  • 本系列 第 1 部分 介紹了一個 RDF 應用程序的示范用用例,引導您完成構建這個應用程序的步驟,包括創建一個 RDF 存儲、使用 SPARQL 查詢進行數據查詢,以及維護統計數據。第 1 部分提供了將 RDF 存儲遷移到 DB2 軟件的流程。
  • 第 2 部分涵蓋以下高級主題:
    • 提供 RDF 數據特性以及 DB2 軟件如何優化 RDF 數據存儲的概述。
    • 描述創建優化存儲的流程。
    • 將優化存儲與您在第 1 部分為樣例應用程序創建的默認存儲進行比較,以便了解優化存儲的優勢。
    • 描述如何為 RDF 存儲提供更細粒度的訪問控制。本教程將引導您使用 DB2 引擎和樣例應用程執行訪問控制。

在第 2 部分中,我們將在第 1 部分的樣例應用程序用例基礎上進行構建。如果您尚未構建,查閱 第 1 部分 獲取相關內容。

第 3 部分將介紹更多特定于 SPARQL 的特性,比如 DESCRIBE 和 CONSTRUCT 查詢表單以及指定圖表的聯合。

默認存儲和優化存儲

回顧第 1 部分,DB2 軟件支持兩類 RDF 存儲的創建:

  • 默認 RDF 存儲 — 如果您沒有正在加載的 RDF 數據相關信息或者如果沒有合適的樣例可用時,創建一個默認 RDF 存儲。要創建這類存儲,使用 createrdfstore RDF 命令。
  • 優化 RDF 存儲 — 如果 RDF 數據集有代表性樣例數據時,創建一個優化存儲。優化存儲可以根據您提供的 RDF 數據集提供一種優化模式。

本教程主要關注優化存儲的創建。

RDF 數據的特征

無模式數據模型

RDF 數據模型是無模式的。不同于關系模型,每個表中列的數量是固定的,RDF 數據集沒有固定數量的謂詞。一個特定 RDF 主題可以有任意數量的謂詞。此外,一個 RDF 數據集可以跨任意數量的域來存儲數據,這進一步增強了該模型的 “無模式性”。因此,當將 RDF 數據映射到一個關系模式時,必須使用一種機制來支持 RDF 數據的無模式特性。

當映射 RDF 數據到關系模式時,處理無模式特性的最常見的機制是利用一個包含 3 列的表(三個列分別對應主題、謂詞和對象)。使用該方法,每個三 元組位于該表中的一個新行中,因此,可以處理數目不定的謂詞。然而,該映射伸縮性不是很好,有點性能問題,因為查詢數據需要許多自聯接以及無用的關系索引應用。例如,檢索一個主題的兩個謂詞的一個簡單查詢涉及到一個自聯接和兩行獲取。相比之下,同一數據的傳統關系建模一行中有兩個謂詞,不需要任何聯接,使用一個 fetch 語句就可以檢索到數據。

無模式特性的處理

查詢 RDF 數據時,DB2 軟件在表中一行或者很少幾行中存儲關于一個主題的所有謂詞和對象,從而減少了大量自聯接需求。因為一個關系表必須有固定數量的列(由頁面大小和列長度控制),該機制根據表中謂詞分配給列的方式處理可變數量謂詞。

DB2 軟件使用兩個機制來將謂詞分配給表中的列:

  • 散列法 — 為減少散列沖突,使用一組散列函數而不是一個散列函數。散列法是隨機的,盡管使用多個散列函數,仍然很容易出現沖突。如果出現沖突,將在表中創建一個新行。默認存儲中使用的是散列機制。
  • 謂詞關聯 — 如果 RDF 數據的一個代表性樣例可用,DB2 軟件將計算 RDF 數據集中各種資源類型謂詞之間的相關性。該軟件使用這種相關性來分配謂詞到表中的列。這將使我們能夠更好地利用表中的空間,以及減少沖突幾率。多個關聯函數被用于進一步減少沖突幾率。優化存儲中使用謂詞關聯機制。

創建優化存儲

使用 DB2 創建優化存儲有多種方法。第 1 部分中的遷移場景使用 createrdfstoreandloader 命令創建優化存儲。該命令將 RDF 數據批量加載到一個 DB2 。在批量加載情況下,可以料到輸入數據是謂詞跨不同資源類型相關聯的范例。但是,您可能會在沒有代表性數據來創建優化存儲的情況下開始應用程序開發。在本例中,您有兩種選擇:

  • 首先開始創建默認存儲,正如第 1 部分所述,使用默認存儲直至生成足夠數據(例如在應用程序系統 QA 周期中)。然后,您可以使用 DB2 數據庫引擎計算默認存儲的謂詞相關性,并使用這些相關性信息來創建一個優化存儲用于生產。在第 2 部分中我們將引導您完成這一機制。
  • 首先創建一個默認存儲,然后使用 REORG 系列 DB2 RDF 命令將該存儲重組為一個優化存儲。更多信息,參閱 DB2 Information Center 主題 “Converting a default store to an optimized store”。

要使用謂詞關聯重新創建您在第 1 部分中創建的默認 staffing 存儲作為一個優化存儲:

  1. 使用現有存儲,生成謂詞映射。
  2. 使用謂詞映射創建優化存儲。

謂詞映射 是數據集中的謂詞和 DB2 RDF 存儲(謂詞存儲在其中)的底層關系表中的列之間的一個映射。謂詞映射是根據其中出現的各個 RDF 資源類型之間的謂詞相關性決定的。這樣做是為了在最少數量的列中包裝 RDF 數據。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享