国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分布式系統(tǒng)數(shù)據(jù)倉庫工具Hive 的工作原理及應(yīng)用

2022-01-18 02:33陳新房劉義卿
科學(xué)技術(shù)創(chuàng)新 2021年36期
關(guān)鍵詞:數(shù)據(jù)類型數(shù)據(jù)倉庫海量

陳新房 劉義卿

(防災(zāi)科技學(xué)院信息工程學(xué)院,河北 廊坊 065201)

1990 年,比爾·恩門(Bill Inmon)第一次提出了數(shù)據(jù)倉庫概念,與結(jié)構(gòu)化數(shù)據(jù)庫不同的是,數(shù)據(jù)倉庫研究和解決如何從數(shù)據(jù)庫中獲取信息的問題,數(shù)據(jù)倉庫的基本特征表現(xiàn)為是一個用戶主題域的、集成統(tǒng)一的、穩(wěn)定性較強的、反映歷史變化的數(shù)據(jù)的集合,為管理層進(jìn)行分析決策(Decision Making Support)提供強有力的支撐。就重要功能而言,數(shù)據(jù)倉庫仍然是對聯(lián)機(jī)事務(wù)處理(OLTP)長時間以來產(chǎn)生的海量大數(shù)據(jù),通過數(shù)據(jù)倉庫組件特有的數(shù)據(jù)儲存結(jié)構(gòu),進(jìn)行系統(tǒng)的、全面的分析與整理,以便通過不同的方法如聯(lián)機(jī)分析處理(OLAP)等進(jìn)行分析處理。同時,隨著數(shù)據(jù)挖掘(Data Mining) 技術(shù)、決策支持系統(tǒng)(Decision-making Support System, DSS)、主管資訊系統(tǒng) (Excutive Information System)的創(chuàng)建,通過數(shù)據(jù)倉庫操作能夠幫助決策者從大量數(shù)據(jù)中,快速高效的分析提取出有價值的信息,以利與決策制定以及對外部環(huán)境的變化租出響應(yīng)。數(shù)據(jù)倉庫體系結(jié)構(gòu)如圖1 所示。

圖1 數(shù)據(jù)倉庫體系結(jié)構(gòu)

1 數(shù)據(jù)倉庫工具Hive 概述

Hive 的實現(xiàn)是基于Hadoop 生態(tài)系統(tǒng)的,通過Hive 工具,可以對數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)化、加載等操作,能夠?qū)Υ鎯υ贖adoop 集群中的海量數(shù)據(jù)進(jìn)行存儲、查詢和分析的操作機(jī)制。設(shè)計Hive工具的主要目的是使得對Java 編程技能掌握相對較弱但是對SQL 技能比較精通的數(shù)據(jù)分析師對存儲在HDFS 中的海量數(shù)據(jù)進(jìn)行查詢功能操作。

Hive 工具將數(shù)據(jù)文件映射成一張數(shù)據(jù)庫表,通過類SQL 語言即HiveQL 語言的查詢功能,數(shù)據(jù)分析師通過編寫相對精通的HiveQL 語句,即可實現(xiàn)MapReduce 任務(wù)的功能。這一特性使得Hive 十分適合對大規(guī)模數(shù)據(jù)存儲、統(tǒng)計、分析、查詢操作,由于是部署在Hadoop 平臺之上,因而具有良好的擴(kuò)展性。Hive 的優(yōu)點是相對簡單易學(xué),可以快速通過類似SQL 語句實現(xiàn)MapReduce 統(tǒng)計功能,可以大幅提高開發(fā)效率。

HiveQL 的設(shè)計只是降低了學(xué)習(xí)成本,其實質(zhì)仍然是MapReduce 任務(wù)的實現(xiàn)。在此,再次強調(diào),Hive 工具本身是數(shù)據(jù)倉庫,而不是結(jié)構(gòu)化的數(shù)據(jù)庫系統(tǒng),二者的主要區(qū)別如表1 所示。

表1 Hive 與數(shù)據(jù)庫的區(qū)別

2 Hive 系統(tǒng)架構(gòu)

Hive 的體系結(jié)構(gòu)可以分為以下幾部分:

2.1 用戶可以通過三種接口實現(xiàn)Hive 的操作,分別是CLI、Client 以及WUI(Web User Interface)等接口。最常用的實現(xiàn)方式是CLI,這種借口形式啟動CLI 接口同時會啟動一個Hive 副本。利用Client 模式可以實現(xiàn)用戶連接至Hive Server,這種形式需要指出Hive Server 所安裝的節(jié)點,在該節(jié)點上將啟動Hive Server 起來。顧名思義,WUI 接口形式是用戶通過瀏覽器實現(xiàn)Hive 的操作。

2.2 處于Hive 核心位置是驅(qū)動程序,由解釋器、編譯器、優(yōu)化器三部分組成,通過驅(qū)動程序?qū)iveQL 語句進(jìn)行詞法分析、語法分析、編譯、優(yōu)化以及生產(chǎn)查詢計劃,進(jìn)一步將生成的查詢計劃存儲在集群中,隨后轉(zhuǎn)換為MapReduce 任務(wù)執(zhí)行完成。

2.3 與此同時,Hive 也有結(jié)構(gòu)化數(shù)據(jù)庫,如MySQL、derBy 數(shù)據(jù)庫,這種結(jié)構(gòu)化數(shù)據(jù)表存儲的是數(shù)據(jù)表的元數(shù)據(jù),包括數(shù)據(jù)表名稱、列(字段)、分區(qū)以及是否為外部表、數(shù)據(jù)所在目錄等信息。如圖2 所示。

圖2 Hive 系統(tǒng)架構(gòu)

3 Hive 的數(shù)據(jù)類型

雖然Hive 與結(jié)構(gòu)化數(shù)據(jù)庫有很大區(qū)別,但是在數(shù)據(jù)類型方面,Hive 有著與結(jié)構(gòu)化數(shù)據(jù)庫相同的基本數(shù)據(jù)類型,同時具有結(jié)構(gòu)化數(shù)據(jù)庫不具有集合數(shù)據(jù)類型。

選擇數(shù)據(jù)類型時,需要考慮的因素主要有兩個方面:一是文本文件中數(shù)據(jù)類型如何表示的,二是需要考慮數(shù)據(jù)存儲過程中為了提高存儲、計算性能問題以及其他問題是否具備可以替代的方案。

相比與結(jié)構(gòu)化數(shù)據(jù)庫,Hive 具有一個獨特的功能就是文件中數(shù)據(jù)的編碼方式具有非常大的靈活性。如表2、3 所示。

表2 Hive 的基本數(shù)據(jù)類型

表3 Hive 的集合數(shù)據(jù)類型

4 Hive 工作原理

簡單來說,Hive 就是基于Hadoop 平臺上的數(shù)據(jù)倉庫。在Hadoop 平臺上層設(shè)計了一個類SQL 接口(即HiveQL)作為查詢接口,可以將HiveQL 裝換為MapReduce 任務(wù)在Hadoop 平臺上運行實現(xiàn)。數(shù)據(jù)分析人員可以通過HiveQL 語言實現(xiàn)對海量數(shù)據(jù)的統(tǒng)計、分析、查詢操作,而不需要使用編程語言(例如Java)編寫MapReduce 程序進(jìn)行實現(xiàn)。下面以常見的Group By 操作為例介紹實現(xiàn)過程。

現(xiàn)有一個數(shù)據(jù)分組Group By 操作,要求是將Score 表中的數(shù)據(jù)信息進(jìn)行合并,合并的過程按照rank 與level 構(gòu)成的組合鍵進(jìn)行操作,計算出在每一個rank 和level 的組合鍵值下數(shù)據(jù)記錄的條數(shù),不難寫出其sql 語句為:

select rank, level ,count (*) as value from score group by rank, level

對于group by 操作轉(zhuǎn)換為MapReduce 的過程如圖3 所示。

圖3 HSQL 語句轉(zhuǎn)換成MapReduce 的基本原理

5 Hive 數(shù)據(jù)分析

在此舉一個實例實踐操作Hive 數(shù)據(jù)分析過程?,F(xiàn)有一個300000 行用戶信息的數(shù)據(jù)信息,將其上傳到分布式系統(tǒng)中,并利用數(shù)據(jù)倉庫Hive 工具進(jìn)行數(shù)據(jù)分析。

5.1 數(shù)據(jù)準(zhǔn)備

在HDFS 上創(chuàng)建數(shù)據(jù)存儲目錄,將數(shù)據(jù)上傳到HDFS 分布式文件系統(tǒng)中,并顯示其前10 行內(nèi)容。

這是存儲在HDFS 文件系統(tǒng)中的數(shù)據(jù),不能進(jìn)行數(shù)據(jù)分析、清晰以及提取等操作,需要通過MapReduce 編程或Hive 實現(xiàn)對數(shù)據(jù)分析。但是MapReduce 要求數(shù)據(jù)分析人員對編程實現(xiàn)要求較高,實現(xiàn)較復(fù)雜,Hive 工具解決了這一難題,為精通SQL 語言而編程能力較弱的數(shù)據(jù)分析師對存儲在集群中的大規(guī)模數(shù)據(jù)進(jìn)行查詢操作提供了便利。

5.2 啟動MySQL 服務(wù),創(chuàng)建外部表

在Hive 數(shù)據(jù)倉庫中創(chuàng)建了外表并且加載數(shù)據(jù)后,就可以通過HSQL 語言進(jìn)行數(shù)據(jù)分析操作了。

5.3 數(shù)據(jù)分析

①利用Hive 語句,查詢前20 位用戶購買商品時的時間和購買的商品種類。

2014-12-12 5232

②查詢出uid 不重復(fù)的數(shù)據(jù)有多少條。

hive>select count(distinct uid) from bigdata_user;

OK

270

此查詢編寫Mapreduce 實現(xiàn)過程至少70 行代碼,在此不在贅述。

5.4 數(shù)據(jù)導(dǎo)出

對數(shù)據(jù)分析完后,可以通過Sqoop 工具將其由Hive 導(dǎo)出到MySQL 結(jié)構(gòu)化數(shù)據(jù)庫中,已方便使用者進(jìn)行分析、存儲以及可視化等操作,各省消費用戶數(shù)如圖4 所示。

圖4 各省消費用戶數(shù)

總結(jié),本文首先介紹了數(shù)據(jù)倉庫的概念,進(jìn)而引入Hive 數(shù)據(jù)倉庫工具,設(shè)計Hive 工具的主要目的是使得對Java 編程技能掌握相對較弱但是對SQL 技能比較精通的數(shù)據(jù)分析師對存儲在HDFS 中的海量數(shù)據(jù)進(jìn)行查詢功能操作進(jìn)行論述,并介紹了Hive 的數(shù)據(jù)類型以及HiveQL轉(zhuǎn)換為MapReduce 任務(wù)的過程。最后利用HiveSQL 對300000行用戶信息進(jìn)行數(shù)據(jù)分析操作,充分表明Hive 在數(shù)據(jù)分析上的特點,并將數(shù)據(jù)結(jié)果導(dǎo)出進(jìn)行可視化。

猜你喜歡
數(shù)據(jù)類型數(shù)據(jù)倉庫海量
一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
基于數(shù)據(jù)倉庫的數(shù)據(jù)傾斜解決方案研究
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
“海量+”:大學(xué)生品格提升的浸潤方——以高職藝術(shù)設(shè)計專業(yè)為例
基于SeisBase模型的地震勘探成果數(shù)據(jù)管理系統(tǒng)設(shè)計
探析電力系統(tǒng)調(diào)度中數(shù)據(jù)倉庫技術(shù)的應(yīng)用
線上眾籌產(chǎn)品的特征分析與研究
數(shù)據(jù)倉庫系統(tǒng)設(shè)計與實現(xiàn)
一個圖形所蘊含的“海量”巧題
博罗县| 盈江县| 略阳县| 宾川县| 文登市| 兴和县| 赤水市| 闽侯县| 拉萨市| 凤台县| 平舆县| 盐津县| 娱乐| 邯郸市| 杭锦旗| 崇礼县| 商都县| 和静县| 张家口市| 丰宁| 永清县| 金秀| 永登县| 广西| 绥宁县| 五大连池市| 黄山市| 城市| 阳新县| 平泉县| 虞城县| 长治县| 新丰县| 多伦县| 新密市| 隆昌县| 思南县| 思茅市| 黄龙县| 九寨沟县| 策勒县|