分布式大規模數據庫系統 HadoopDB 簡介
HadoopDB是Abadi領導的開發團隊利用不同的組件,包括開源數據庫、PostgreSQL、Apache Hadoop數據分類技術和Hive(非死book公司開發的內部Hadoop項目)開發出的新型數據庫。
HadoopDB的查詢是利用MapReduce或常規的SQL語言完成的。MapReduce是Google公司發明的Hadoop的祖先,這一軟件架構用于大規模數據集(大于1TB)的并行計算。Hadoop是Apache軟件基金會所研發的開源并行運算編程工具和分布式文件系統,與MapReduce和Google檔案系統的概念類似。
另一方面,HadoopDB的數據處理部分是利用Hadoop完成的。Abadi表示,其中部分是利用了分布在無分享計算機群集中的許多節點上的不同的PostgreSQL實例完成的。“實質上,HadoopDB是MapReduce和并行數據庫管理系統技術的混血兒。但是與Aster Data、Greenplum或Hive等已經開發出的項目和廠商不同,HadoopDB不是簡單地在語言/接口層面上的混合,它是更深的系統實現層面上的集成。”Abadi說。
因為集兩種技術的精華于一身,HadoopDB可以取得MapReduce等大規模并行數據基礎設施的容錯性。在這些基礎設施中,服務器故障對整個網絡的影響非常小。Abadi表示,HadoopDB可以執行復雜的分析,速度幾乎與已有的商用并行數據庫一樣快。
HadoopDB的源代碼現已公布。雖然其目前的解決方案還是試驗性的,但對Web 2.0企業和方興未艾的“NoSQL”運動的其他成員卻非常具有吸引力。有專家認為,它最終可能吸引那些尋找代替甲骨文數據庫、IBM DB2或微軟SQL Server的更便宜、更具伸縮性數據庫的企業。
Abadi在2009年4月曾參與撰寫了一篇論文,該論文指出對于大多數的用戶和應用而言,關系型數據庫仍然超過MapReduce和Hadoop。Abadi日前表示,目前的研究并沒有否認以前的看法,但是隨著數據庫技術的演進,HadoopDB這樣的新興數據庫系統將具有比并行數據庫更好的可伸縮性。
另外,HadoopDB雖然基于PostgreSQL構建,但同樣可以使用其他數據庫作為引擎。Abadi表示,其團隊已經成功地使用了MySQL,并計劃嘗試使用像Infobright、MonetDB等柱狀數據庫來改進處理分析性工作負載時的性能。