天天看點

Big Data Strategy & Big SQL

12月8日,ibm軟體工程師胡澤遠老師,在dba+社群db2使用者群進行了一次主題為“big data strategy & big sql”的線上分享。小編特别整理出其中精華内容,供大家學習交流。同時,也非常感謝胡澤遠老師對dba+社群給予的大力支援。

嘉賓簡介  

胡澤遠

畢業于美國威斯康星麥迪遜分校

現任ibm軟體工程師,在ibm中國軟體研究開發實驗室從事big sql有關開發

演講實錄  

大家好,我是胡澤遠。今天由我為大家簡單介紹一下ibm biginsights for apache hadoop産品以及旗下的big sql子產品。

Big Data Strategy & Big SQL

上圖為ibm biginsights産品的整體架構。首先,我們一起來看一下底下淺綠色方框,上面寫的是ibm open platform with apache hadoop(簡稱iop)。open data platform是由衆多業界上司企業以及apache software foundation牽頭,旨在建立促進以hadoop為平台大資料解決方案生态圈和優化hadoop技術。這裡hadoop distribution包含了odp core of apache hadoop 2.6 (hdfs, yarn, mapreduce)以及其他衆多apache項目技術。換句話講,iop內建了hadoop及其相關的功能元件,提高穩定性的同時免去使用者搭建hadoop方面的困擾,使使用者可以将重心放在hadoop平台上的使用開發。

參與企業有ibm、hortonworks、teradata等大資料相關知名企業,大家可以通過下面連結去詳細了解:http://www.odpi.org/

在iop的基礎上ibm針對不同的客戶需求提供了3種不同的解決方案:ibm biginsights analyst主要針對analysts(分析員),提供以hadoop平台為支撐最全面快捷的sql引擎,也就是我們接下來要講到的big sql,以及以excel表格的形式讓使用者更加直接簡單地去管理、視覺化、篩選以hadoop為平台的資料的bigsheets。針對資料科學家,在big sql, bigsheets的基礎上,ibm推出了bigr。它能直接相容r語言,并提供豐富強大的機器學習算法庫,以及從不規則結構資訊中提取有用資訊的能力。最後,針對資料管理人員,ibm又推出了ibm biginsights enterprise management子產品。這裡包含的主要是ibm spectrum scale-fpo (也就是之前的ibm general parallel file system with the file placement optimizer (gpfs-fpo))。它可以和所有hadoop平台應用相容,并提供hadoop平台不具備的與其他平台的相容性。同時子產品中的ibm spectrum scale active file management (afm)提供跨地域的資料備份及災難修複。同時ibm platform symphony也包含在這個子產品之中,讓管理者能在hadoop平台上針對不同的使用者組通過資料隔離以及多租戶技術來提高資料安全以及資源利用。

Big Data Strategy & Big SQL

上面的圖檔為大家簡單概述了一下ibm三大子產品在iop平台上的不同作用。從圖檔上我們又可以看出big sql同時出現在了針對分析員以及資料科學家的子產品中。可見其重要性,下面重點介紹一下big sql。

首先我們需要回答的問題是為什麼要在hadoop平台上支援sql查詢?原因有二。

首先hadoop平台是以滿足各種形式的資料來設計的。是以它在結構上非常靈活。在最底層hadoop是以api為基礎的。也就是說在hadoop上查詢需要非常強的程式設計能力,入門難度很高。同時,即使最簡單的查詢操作實作起來也很繁瑣。但是現在大多數資料還是以結構資料為主。那麼我們為什麼不發揮sql的長處?大家非常熟悉的結構,很豐富的工具生态圈以及無須擔心資料是如何擷取的。

Big Data Strategy & Big SQL

這張圖展現的是sql-on-hadoop的三種應用,分别是預處理資料,歸檔查詢,以及原因分析。

sql-on-hadoop的第二個原因是map-reduce(mr)等一些技術的局限性。比如說mr對于大規模并且容錯的查詢處理可能更加适合但是對于需要在幾秒甚至幾毫秒的互動式查詢,恐怕mr就不是很理想了。

業界針對sql-on-hadoop有不同的實作形式。第一種是submit a remote query,這裡主要是以teradata、oracle、microsoft為代表。rdbms向hadoop發送請求,hadoop處理完查詢并将結果集傳回給rdbms。第二種是以在hadoop上實作完整的rdbms。這個主要包含存儲層以及查詢引擎,并且使用專門的metadata。這種實作方法的代表公司主要有pivotal和vertica。最後一種是隻提供查詢引擎,這個代表公司主要是ibm。

我們首先大體了解一下big sql。

big sql是一個針對我們前邊提及的biginsights資料,符合業界标準的sql查詢界面。這個以hadoop為支撐的查詢引擎包含了數十年ibm在關系型資料庫中的研究成果,比如說并行資料庫(database parallelism)以及查詢優化(query optimization)。

我們先看一下big sql基礎架構。

Big Data Strategy & Big SQL

中間長方形的是coordinating node, 使用者通過jdbc和odbc用戶端連接配接至這個節點上,同時這個節點也負責sql查詢語句的compile以及優化,并且生成平行的查詢執行計劃。一個runtime引擎會将這個執行計劃配置設定給下面一排的worker node并通過他們得到查詢結果集。

Big Data Strategy & Big SQL

上面這張圖描繪的是big sql語句執行階段。當一個worker node接收到一個查詢計劃時,它會啟動程序來讀取hdfs上面的資料。同時這些程序會将讀取的資料處理成big sql接受的格式。這裡進行資料處理的目的是可以讓big sql立刻将已處理好的資料讀取到引擎記憶體進行處理。

下面我們再聊一下big sql的一些值得注意的功能。

Big Data Strategy & Big SQL

big sql提供豐富标準的sql支援,提供對不同存儲形式的支援。常見的有文本, 序列,rcfile,orc等。這些資料形式與dfs, hive, hbase保持一緻。舉個例子,big sql應用hive的database catalog來擷取表定義,位置,儲存格式以及輸入檔案的編碼。這就意味着big sql不僅僅隻能用于通過big sql建立的表以及load進來的資料。隻要資料定義在hive metastore并且可以通過hadoop cluster擷取到,big sql就可以對它支援。

最後,big sql支援對傳統關系型資料庫的聯邦查詢。和db2相似,使用者可以通過big sql對不同的遠端資料源進行聯合查詢。

Big Data Strategy & Big SQL

上面這張圖簡單歸納了一下big sql的功能。鑒于時間有限,僅對ibm biginsights for apache hadoop以及big sql子產品進行基礎的介紹。如果有興趣,大家可以通過下面的連結對ibm biginsights和big sql産品進一步了解。

<b></b>

<b>本文來自雲栖社群合作夥伴"dbaplus",原文釋出時間:2015-12-10</b>