歡迎您光臨本站 註冊首頁

使用 HBase 發現通往語義 Web 的道路

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
Hadoop Database (HBase) 非常適於創建一個語義 Web 並提取現有知識或計算知識。學習如何在 HBase 資料庫中為科學文章表示 RDF/XML 斷言,了解 HBase 和 Bigtable 如何發起一種存儲和處理數據的新方法。

HBase 是一個針對結構化數據的可伸縮、分散式和面向列的動態模式資料庫。它能有效和可靠地管理分佈在數千個商品伺服器上的大規模數據(千兆兆位元組或更多)。HBase 根據 Google 的 Bigtable 資料庫建模,是 Apache Software Foundation 的 Hadoop 項目的子項目。

常用縮略詞
  • API:應用程序編程介面
  • DOI:數字對象標識符
  • HTTP:超文本傳輸協議
  • REST:具象狀態傳輸
  • SQL:結構化查詢語言
  • URI:統一資源標識符
  • XML:可擴展標記語言

注意:在撰寫本文時,HBase 的最新版本是 V0.19.3。本文提供的信息適用於這個版本。

HBase 數據模型

HBase 數據被建模為多維映射,其中值(表單元)通過 4 個鍵索引:

value = Map(TableName, RowKey, ColumnKey, Timestamp)  

其中:

  • TableName 是一個字元串。
  • RowKey 和 ColumnKey 是二進位值(Java 類型 byte[])。
  • Timestamp 是一個 64 位整數(Java 類型 long)。
  • value 是一個未解釋的位元組數組(Java™ 類型 byte[])。

二進位數據被編碼為 Base64,以便通過網路傳輸。

行鍵是表的主鍵,通常是一個字元串。行通過行鍵按字典順序排序。

存儲在表中的信息的結構為列族(column family),您可以將這種結構視為類別。每個列族可以擁有任意數量的成員,它們通過標籤(或修飾符)識別。column 鍵由族名、: 號和標籤組成。例如,對於系列 info 和成員 date,列鍵為 info:date。

一個 HBase 表模式定義多個列族,但當您向表中插入一行時,應用程序能夠在運行時創建新成員。對於一個列族,表中的不同行可以擁有不同數量的成員。換句話說,HBase 支持一個動態模式 模型。

一個 HBase 表示例

表 1 展示了一個名為 Persons 的 HBase 表的簡單示例,該表有兩個列族:name 和 contact。


表 1. 帶有兩個列族的 Persons 表
行鍵 時間戳 列族
name contact
000001 t3   contact:http research.google.com/people/jeff/
t2 name:first Jeffrey  
t1 name:last Dean  
000002 t5 name:first Gabriel  
t4 name:last Mateescu  

一個空單元沒有與單元的鍵相關聯的值。在表 1 中,與鍵 (000002, contact:http, t4) 關聯的單元為空。空單元不存儲在 HBase 中,讀取空單元類似於根據不存在的鍵從映射提取值。HBase 表以這種方法適應稀疏的 行。

對於任意行,一次只能訪問一個列族的一個成員(這與關係資料庫不同,在關係資料庫中,一個查詢可以訪問來自一個行中的多個列的單元)。您可以將一個行中的一個列族的成員視為子行。

表被分解為多個表區域,等同於 Bigtable 片(tablet)。一個區域包含某個範圍中的行。將一個表分解為多個區域是高效處理大型表的關鍵機制。





RDF 和語義 Web

考慮一下這個問題:如何表示關於科學文章的信息?文章和它們的作者是屬於資源。在資源描述框架(Resource Description Framework,RDF)中,關於資源的知識通過斷言(參見 參考資料)表示,其中斷言是一個三元組:

(subject, predicate, object)  

謂語定義主語(斷言引用的資源)和賓語之間的關係。例如,句子 “The article has the title Bigtable” 可以表示為:

(The article, has title, Bigtable)  

斷言的主語 是一個必須通過 URI 識別的資源。謂語 必須在辭彙表中定義,以便它與辭彙表的名稱空間 URI 關聯。斷言的賓語 可以通過 URI 或文本 識別,如果它是另一個斷言的主語,則它必須通過 URI 識別。

有關一篇文章的知識可以表達為斷言,斷言可以用 RDF/XML 格式表示。

一篇期刊文章的 RDF 描述

考慮這篇關於 Bigtable 的期刊文章:

F. Chang, J. Dean, S. Ghemawat, W. Hsieh, D. Wallach, M. Burrows, T. Chandra, A. Fikes, and R. Gruber, "Bigtable: A Distributed Storage System for Structured Data", ACM Trans. Comput. Syst. 26 (2), June 2008.

您可以通過一組句子描述這篇文章,例如:

  • The Bigtable journal article has the title "Bigtable: A Distributed Storage System for Structured Data."
  • The Bigtable journal article is written by Fay Chang.

其中:

  • The Bigtable journal article 是兩個句子的主語。
  • has the title 是第一個句子的謂語。
  • “Bigtable: A Distributed Storage System for Structured Data” 是第一個句子的賓語。
  • is written by 是第二個句子的謂語。
  • Fay Chang 是第二個句子的賓語。

要用 RDF/XML 表示這些句子,必須在適當的名稱空間中確定主語的 URI 和謂語的名稱。對於文章 URI,使用 Bigtable 論文的 Digital Object Identifier (DOI) URI:http://doi.acm.org/10.1145/1365815.1365816。按照如下方式重新組織第一個句子:

The article with the URI "http://doi.acm.org/10.1145/1365815.1365816" has the title "Bigtable: A Distributed Storage System for Structured Data."

對於謂語,使用來自表 2 中的辭彙表的術語:


表 2. 名稱空間 URI 和前綴
前綴 名稱空間 URI 描述
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF 辭彙表術語
dc http://purl.org/dc/elements/1.1/ Dublin Core 元素
dcterms http://purl.org/dc/terms/ Dublin Core 術語
eprint http://purl.org/eprint/terms/ Eprints 術語
foaf http://xmlns.com/foaf/0.1/ FOAF 辭彙表術語

根據這些辭彙表,您可以以 RDF/XML 格式組織這個關於 Bigtable 的句子,如清單 1 所示:


清單 1. RDF/XML 格式的文章描述
				  <rdf:RDF        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"      xmlns:dc="http://purl.org/dc/elements/1.1/" >        <rdf:Description rdf:about="http://doi.acm.org/10.1145/1365815.1365816">          <dc:title>Bigtable: A Distributed Storage System for Structured Data</title>          <dc:creator               rdf:resource="http://purl.org/sweb/Authors/google/research/Fay_Chang"/>       </rdf:Description>     </rdf:RDF>  


[火星人 ] 使用 HBase 發現通往語義 Web 的道路已經有351次圍觀

http://coctec.com/docs/linux/show-post-68709.html