業內有這樣一種說法,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是雅虎在2023年開發,除了上述特點,它還有很好的可擴充套件性和效能優化。 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缺少更新和刪除功能。
相信大家通過上面對pig、hive和sql的介紹,對它們都有了一定的了解,下面我們就來介紹一下它們的具體適用場景。
apache pig的適用場景
apache hive的應用場景
很多企業都需要對歷史資料進行分析,hive就是一款分析歷史資料的利器。但是hive只有在結構化資料的情況下才能大顯神威。hive的軟肋是實時分析,如果想要進行實時分析,可以採用hbase。
sql的應用場景
sql是三者之中資歷最老的資料分析工具,隨著使用者需求的不斷變更,sql也在不斷的自我更新,現在仍然是乙個與時俱進的工具。對專業的資料分析師來說,毫無疑問,sql比excel要強,但是,它在快速處理和分析資料方面仍然存在著短板。如果資料要求不是很苛刻,sql是乙個很好的選擇,它的廣泛性和靈活性得到了開發人員的認可。因為絕大數的開發人員都熟悉sql,所以可以馬上上手,同時sql還提供了一些擴充套件和優化功能,可以根據需求來定製產品。
現在還沒有任何乙個工具可以適用所有的資料,sql、pig和hive都有各自的適用場景,所以適合自己應用場景的工具就是最好的工具。
***********************************=分割線******************************==
大資料工具比較 R語言和Spark誰更勝一籌?
摘要 本文有兩重目的,一是在效能方面快速對比下r語言和spark,二是想向大家介紹下 spark的機器學習庫 背景 介紹 由於r語言本身是單執行緒的,所以可能從效能方面對比spark和r並不是很明智的做法。即使這種比較不是很理想,但是對於那些曾經遇到過這些問題的人,下文中的一些數字一定會讓你很感興趣...
Kafka三款監控工具比較
通過研究,發現主流的三種kafka監控程式分別為 現在依次介紹以上三種工具 使用kafka web console,可以監控 程式執行後,會定時去讀取kafka集群分割槽的日誌長度,讀取完畢後,連線沒有正常釋放,一段時間後產生大量的socket連線,導致網路堵塞。雅虎開源的kafka集群管理工具 通...
誰擁有了大資料,誰就擁有了未來
也許你沒注意到,一天之中,網際網路產生的全部內容可以刻滿1.68億張 發出的郵件有2940億封之多,發出的社群帖子達200萬個,相當於 時代 雜誌770年的文字量 全世界儲存的資訊如果記錄在光碟上,這些光碟疊加起來,高度超過從地球到月球走一趟。這些數字的含義不言而喻 隨著現代資訊科技的迅猛發展,乙個...