天天看點

三款大資料工具比拼,誰才是真正的王者

業内有這樣一種說法,sql雖然在大資料分析領域久經考驗,但是無奈長江後浪推前浪,和炙手可熱的hadoop相比,sql已經過時了。這個說法有點言過其實,現在很多的項目都是将hadoop作為資料存儲,然後利用sql進行前端查詢。這說明hadoop需要一種進階查詢語言的支援。 hadoop mapreduce雖然能夠進行資料分析,但是太複雜了。于是,開發人員開發出了類似sql的pig和hive。

大資料時代,我們有很多的查詢工具可以選擇。雖然sql占據着絕對優勢,但是随着大資料的持續升溫,也給了apache pig和hive很大的發揮空間。工欲善其事必先利其器,如果選擇了合适的平台和語言,會讓資料的提取,處理和分析達到事半功倍的效果。未來,資料會越來越大,資料分析必須要更易操作。處理速度快和操作簡單必定成為大資料分析的主流趨勢。

apache pig,apache hive和sql是當今主流的大資料工具。它們各有優勢,下面我們就先來簡單介紹apache pig、apache hive和sql。

三款大資料工具比拼,誰才是真正的王者

  sql

結構化查詢語言(sql)是程式員的最佳伴侶,主要用于處理和提取資料。大資料改變了資料處理和可視化的方式。但是sql嚴格的關系資料庫模式和聲明特性依然是資料分析的标杆。盡管sql市場廣闊,但是大資料也對sql的功能和性能提出了挑戰。

pig

apache pig适合有sql背景的程式員學習,其有以下兩個特點:

1.放寬了對資料存儲的要求

2.可以操作大型資料集

apache pig是雅虎在2006年開發,除了上述特點,它還有很好的可擴充性和性能優化。 apache pig允許開發人員跟蹤多個查詢方法,進而降低了資料的重複檢索。它支援複合資料類型(map、tuple、bag),支援常見的資料操作,例如篩選、排序和join。apache pig的這些特性得到了世界各地使用者的認可,就連雅虎和推特也采用了apache pig。

hive

盡管apache pig性能優異,但是它要求程式員要掌握sql之外的知識。hive和sql非常相似,雖然hive查詢語言(hql)有一定的局限性,但它仍然是非常好用的。hive為mapreduce提供了很好的開源實作。它在分布式處理資料方面表現很好,不像sql需要嚴格遵守模式。

資料的提取、處理和分析沒有一個萬全之策,需要綜合多種因素來選擇,例如資料存儲方法,程式設計語言結構以及預期的結果。下面我們就來對比一下pig、hive和sql,看看它們各自都适合什麼樣的場景。

pig vs sql

sql在dbms系統的運作速度要比mapreduce(pig運作在piglatin平台)快。然而,rdbms的資料加載很具挑戰,設定困難。 piglatin在聲明式執行計劃、etl流程和管道修改方面更有優勢。

在很大程度上,sql是聲明式語言,而piglatin是過程語言。sql主要是指定完成的對象,即要完成“什麼”,而pig主要是制定完成的方式,即“如何”執行一個任務。在執行之前,pig腳本要轉化成mapreduce任務。不過,pig腳本比相應的mapreduce任務要短,顯著縮短了開發時間。

hive vs sql

sql是一個被廣泛用于事務性和分析查詢的通用資料庫語言。而hive是以資料分析為目标而設計的,這也決定了hive會缺少更新和删除功能,但是讀取和處理海量資料的能力會很強。hive和sql是非常相似的,最主要的差別就是hive缺少更新和删除功能。

盡管hive和sql有所差別,但是如果你有sql背景,就可以平穩過渡到hive。另外,一定要注意兩者在結構和文法上的差異。

相信大家通過上面對pig、hive和sql的介紹,對它們都有了一定的了解,下面我們就來介紹一下它們的具體适用場景。

apache pig的适用場景

apache pig适用于非結構化的資料集,可以充分利用sql。pig無需建構mapreduce任務,如果你有sql學習的背景,那麼入門會非常快。

apache hive的應用場景

很多企業都需要對曆史資料進行分析,hive就是一款分析曆史資料的利器。但是hive隻有在結構化資料的情況下才能大顯神威。hive的軟肋是實時分析,如果想要進行實時分析,可以采用hbase。

sql的應用場景

sql是三者之中資曆最老的資料分析工具,随着使用者需求的不斷變更,sql也在不斷的自我更新,現在仍然是一個與時俱進的工具。對專業的資料分析師來說,毫無疑問,sql比excel要強,但是,它在快速處理和分析資料方面仍然存在着短闆。如果資料要求不是很苛刻,sql是一個很好的選擇,它的廣泛性和靈活性得到了開發人員的認可。因為絕大數的開發人員都熟悉sql,是以可以馬上上手,同時sql還提供了一些擴充和優化功能,可以根據需求來定制産品。

現在還沒有任何一個工具可以适用所有的資料,sql、pig和hive都有各自的适用場景,是以适合自己應用場景的工具就是最好的工具。

====================================分割線================================

本文轉自d1net(轉載)