顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > 行業資訊 > 對比Pig、Hive和SQL,淺看大數據工具之間的差異

對比Pig、Hive和SQL,淺看大數據工具之間的差異

文章來源: 更新時間:2016/6/17 15:14:43

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

有人說對于大數據分析來說Hadoop才是炙手可熱的新技術,SQL雖然久經考驗但已經有些過時了。這話說得不錯,但有非常多的項目都用Hadoop作為數據存儲,而以SQL構建前端查詢,這說明Hadoop確實需要一種高級的查詢語言。為了簡化Hadoop的使用,開發人員創造出了類似于SQL的Pig和Hive。而用戶在進行數據分析的時候使用這些工具可以避免Java編碼,但在使用之前很重要的一點是了解工具之間的區別以便在不同的用例中使用最優化的工具。

在現在的大數據時代,開發人員有不少的查詢工具可供選擇。雖然SQL仍然占據著絕對的統治地位,企業對于大數據的興趣使得Apache Pig和Hive這樣的開源語言獲得了不少機會。工欲善其事,必先利其器,選對平臺和語言對于數據的提取、處理和分析都起著至關重要的作用。現在日趨流行的一種觀點是隨著大數據產業的發展,對于大數據分析的使用必須得到簡化。只有在處理速度和使用門檻上下功夫大數據分析才能得到更廣泛的使用。

談到大數據,Apache Pig、Apache Hive和SQL是目前比較主流的工具,三者在合適的情況下都能體現出自己的優勢。Pig和Hive、Pig和SQL以及Hive和SQL之間孰優孰劣的爭論永遠不會有結果,因為很難有一種語言可以適用于所有的情況。通過本文,筆者希望能夠為大家提供一些選擇工具和語言的技巧。在此之前我們也會對三者做些簡要介紹。

SQL

SQL陪伴程序員們已經幾十年了,幾乎已經成為了提取數據的標準方法。大數據的出現改變了數據處理和可視化的方式,但SQL對于數據存儲方式的嚴格要求和它聲明式編程的特性使得我們的注意力不能集中在提取數據上面。盡管SQL有著廣泛的應用,大數據的進步對SQL的功能和性能都提出了挑戰。

PIG

SQL程序員們需要這樣一種編程語言:既利于SQL程序員們學習同時又有下面這兩個特點:

1. 避免SQL對數據存儲的要求

2. 能夠輕松應對大型數據集

Pig最初是由雅虎在2006年開發的,它很好地解決了上面提到的問題,同時也提供了較好的擴展性和性能優化。Apache Pig對Multi-query的支持減少了數據檢索循環的次數。Pig支持map、tuple和bag這樣的復合數據類型以及常見的數據操作如篩選、排序和聯合查詢。這些優勢讓Pig在全球范圍內都得到了廣泛的應用。Pig簡便的特點也是雅虎和Twitter使用它的原因之一。

HIVE

盡管Pig性能強勁,要使用它開發人員必須掌握SQL之外的新知識,而Hive則與SQL非常相像。盡管Hive查詢語言HQL的命令有所局限,它還是取得了一定的成功。Hive為MapReduce提供了優秀的開源實現,它在分布式數據處理的同時避免了SQL對于數據存儲的局限。

我們介紹的這些數據提取、處理和分析方式都不能完全適用于所有的情況。在做出選擇之前我們要考慮諸如數據存儲方式、編程語言架構以及期望等因素。下面我們就把Pig、Hive和SQL兩兩進行對比以便了解它們各自所適用的情況。

Pig vs SQL

SQL所操作的關系型數據庫速度上較Pig通過PigLatin操作的MapReduce快一些,然而關系型數據庫的數據加載很有挑戰性所以設置比較困難。PigLatin在聲明式執行計劃、ETL流程和管道的修改上則有著優勢。

整體上來看SQL是一門聲明式語言而PigLatin屬于過程式語言。在SQL中我們指定需要完成的任務而在Pig中我們則指定任務完成的方式。Pig腳本其實都是轉換成MapReduce任務來執行的,不過Pig腳本會比對應的MapReduce任務簡短很多所以開發的速度要快上很多。

Hive vs SQL

SQL是一門通用的數據庫語言,大量的事務和分析語句都是由SQL完成的。Hive則是以數據分析為目標所設計的,這意味著雖然Hive缺乏更新和刪除這樣的功能但讀取和處理大量數據的速度會比SQL快得多。所以Hive SQL看起來像SQL但在更新和刪除等功能上兩者還是有很大區別的。雖然有所不同,但如果你有SQL背景的話學習起Hive還是很容易的。不過要注意兩者在構造和語法上的區別否則容易混淆。

現在我們已經對三種數據挖掘語言進行了介紹和對比,接下來就來分析一下三種語言最適用的情況。

1. 什么時候用Apache Pig

當你需要處理非格式化的分布式數據集時,如果想充分利用自己的SQL基礎,可以選擇Pig。使用Pig你無需自己構建MapReduce任務,有SQL背景的話學習起來比較簡單,開發速度也很快。

2. 什么時候用Apache Hive

有時我們需要收集一段時間的數據來進行分析,而Hive就是分析歷史數據絕佳的工具。要注意的是數據必須有一定的結構才能充分發揮Hive的功能。用Hive來進行實時分析可能就不是太理想了,因為它不能達到實時分析的速度要求(實時分析可以用HBase,Facebook用的就是HBase)。

3. 什么時候用SQL

SQL是這三者中最傳統的數據分析手段。隨著用戶需求的改變SQL本身也在進行著更新,所以即便到了今天也不能說SQL過時。對于專業的數據分析師來說SQL當然比Excel強多了但要用它來進行快速的復雜處理和分析還是顯得有點欠缺。如果所進行的分析比較簡單的話SQL仍然是一個非常趁手的工具。它歷史上的廣泛使用和靈活性也使它廣受開發人員歡迎。大部分開發人員都對SQL有所了解所以使用SQL的話開發人員從項目開始的第一天就能有所產出。SQL提供的擴展和優化功能也讓我們能夠根據需求進行定制。

顯然不同的數據沒有一個所有情況都適用的查詢工具,根據自己的需求來選擇不同工具才是正確的方法。

本文地址:http://www.mudan321.com/zixun/12239753545.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1