欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    1 Hive概述

    1.1 什么是Hive

    Hive是一款建立在之上的開源數據倉庫系統,可以將存儲在文件中的結構化、半結構化數據文件映射為一張數據庫表,基于表提供了一種類似SQL的查詢模型,稱為Hive查詢語言(HQL),用于訪問和分析存儲在文件中的大型數據集。

    Hive核心是將HQL轉換為程序,然后將程序提交到群集執行。Hive由實現并開源。

    1.2 為什么使用Hive

    使用 直接處理數據所面臨的問題:

    人員學習成本太高 需要掌握java語言

    實現復雜查詢邏輯開發難度太大

    使用Hive處理數據的好處:

    操作接口采用類SQL語法,提供快速開發的能力(簡單、容易上手)

    避免直接寫,減少開發人員的學習成本

    支持自定義函數,功能擴展很方便

    背靠,擅長存儲分析海量數據集

    1.3 Hive與的關系

    從功能來說,數據倉庫軟件,至少需要具備下述兩種能力:

    Hive作為一款大數據時代的數據倉庫軟件,當然也具備上述兩種能力。只不過Hive并不是自己實現了上述兩種能力,而是借助。

    Hive利用HDFS存儲數據,利用查詢分析數據。

    這樣突然發現Hive沒啥用,不過是套殼罷了。其實不然,Hive的最大的魅力在于用戶專注于編寫HQLhive元數據是管理,Hive幫您轉換成為程序完成對數據的分析。

    2 場景設計:如何模擬實現Hive的功能

    2.1 場景需求

    在HDFS文件系統上有一個文件,路徑為/data/.txthive元數據是管理,其內容如下:

    1,zhangsan,18,beijing
    2,lisi,25,shanghai
    3,allen,30,shanghai
    4,wangwu,15,nanjing
    5,james,45,hangzhou
    6,tony,26,beijing

    需求:統計來自于上海年齡大于25歲的用戶有多少個?

    如果讓您設計Hive這款軟件,要求能夠實現用戶編寫sql語句,Hive自動將sql轉換程序,處理位于HDFS上的結構化數據。如何實現?

    2.2 場景目的

    重點理解下面兩點:

    Hive能將數據文件映射成為一張表,這個映射是指什么?

    Hive軟件本身到底承擔了什么功能職責?

    2.3 功能實現關鍵

    映射信息記錄

    映射在數學上稱之為一種對應關系,比如y=x+1,對于每一個x的值都有與之對應的y的值。在hive中能夠寫sql處理的前提是針對表,而不是針對文件,因此需要將文件和表之間的對應關系描述記錄清楚。映射信息專業的叫法稱之為元數據信息(元數據是指用來描述數據的數據 )。

    具體來看,要記錄的元數據信息包括:

    Sql語法解析、編譯

    用戶寫完sql之后,hive需要針對sql進行語法校驗,并且根據記錄的元數據信息解讀sql背后的含義,制定執行計劃。并且把執行計劃轉換成程序來執行,把執行的結果封裝返回給用戶。

    2.4 最終效果

    基于上述分析,最終要想模擬實現的Hive的功能,大致需要下圖所示組件參與其中,從中可以感受一下Hive承擔了什么職責。

    當然,也可以把這個理解為hive的架構圖。

    3 Hive架構、組件

    3.1 Hive架構圖

    3.2 Hive組件

    用戶接口:包括 CLI、JDBC/ODBC、。其中,CLI( line )為shell命令行;Hive中的服務器允許外部客戶端通過網絡與Hive進行交互,類似于JDBC或ODBC協議。是通過瀏覽器訪問Hive。

    元數據存儲:通常是存儲在關系數據庫如 mysql/derby中。Hive 中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

    驅動程序,包括語法解析器、計劃編譯器、優化器、執行器:完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,并在隨后有執行引擎調用執行。

    執行引擎:Hive本身并不直接處理數據文件。而是通過執行引擎處理。當下Hive支持、Tez、種執行引擎。

    4 Hive數據模型(Data Model)

    數據模型:用來描述數據、組織數據和對數據進行操作,是對現實世界數據特征的描述。Hive的數據模型類似于RDBMS庫表結構,此外還有自己特有模型。

    Hive中的數據可以在粒度級別上分為三類:

    4.1

    Hive作為一個數據倉庫,在結構上積極向傳統數據庫看齊,也分數據庫(),每個數據庫下面有各自的表組成。默認數據庫。

    Hive的數據都是存儲在HDFS上的,默認有一個根目錄,在hive-site.xml中,由參數hive...dir指定。默認值為/user/hive/。

    因此,Hive中的數據庫在HDFS上的存儲路徑為:

    ${hive.metastore.warehouse.dir}/databasename.db

    比如,名為的數據庫存儲路徑為:

    /user/hive/warehouse/handsome.db

    4.2

    Hive表與關系數據庫中的表相同。Hive中的表所對應的數據是存儲在的文件系統中,而表相關的元數據是存儲在RDBMS中。

    在中,數據通常駐留在HDFS中,盡管它可以駐留在任何文件系統中,包括本地文件系統或S3。Hive有兩種類型的表:

    創建表時,默是內部表。關于內部表和外部表的區別,我們后續知識點再做展開探討。Hive中的表的數據在HDFS上的存儲路徑為:

    ${hive.metastore.warehouse.dir}/databasename.db/tablename

    比如,的數據庫下表存儲路徑為:

    /user/hive/warehouse/handsome.db/t_user

    4.3

    分區是hive的一種優化手段表。分區是指根據分區列(例如“日期day”)的值將表劃分為不同分區。這樣可以更快地對指定分區數據進行查詢。

    分區在存儲層面上的表現是:table表目錄下以子文件夾形式存在。

    一個文件夾表示一個分區。子文件命名標準:分區列=分區值

    Hive還支持分區下繼續創建分區,所謂的多重分區。關于分區表的使用和詳細介紹,后面模塊會單獨展開詳細講解。

    4.4

    分桶表是hive的一種優化手段表。分桶是指根據表中字段(例如“編號ID”)的值,經過hash計算規則將數據文件劃分成指定的若干個小文件。

    分桶規則:(ID) % 桶個數,余數相同的分到同一個文件。

    分桶的好處是可以優化join查詢和方便抽樣查詢。分桶表在hdfs中表現為同一個表目錄下數據根據hash散列之后變成多個文件。關于桶表以及分桶操作,后面模塊會單獨展開詳細講解。

    5 Hive是要取代Mysql嗎?

    Hive雖然具有RDBMS數據庫的外表,包括數據模型、SQL語法都十分相似,但應用場景卻完全不同。Hive只適合用來做海量數據的離線分析。Hive的定位是數據倉庫,面向分析的OLAP系統。

    因此時刻告訴自己,Hive不是大型數據庫,也不是要取代Mysql承擔業務數據處理。

    更直觀的對比請看下面這幅圖:

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有