中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive的數據類型有哪些

發布時間:2022-05-19 14:49:14 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

這篇“Hive數據類型有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Hive數據類型有哪些”文章吧。

    一、Hive介紹

    hive: 由 Facebook 開源用于解決海量結構化日志的數據統計工具。

    Hive 是基于 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射為一張表,并提供類 SQL 查詢功能。

    Hive的優缺點

    優點:

    • 類似于SQL語句,簡單學習易上手

    • 避免了去寫 MapReduce,減少開發人員的學習成本

    • Hive 的執行延遲比較高,因此 Hive 常用于數據分析,對實時性要求不高的場合

    • Hive 優勢在于處理大數據,對于處理小數據沒有優勢,因為 Hive 的執行延遲比較高

    • Hive 支持用戶自定義函數,用戶可以根據自己的需求來實現自己的函數

    缺點:

    • Hive 的 HQL 表達能力有限

    • Hive 的效率比較低

    • Hive本質是一個MR

    Hive架構

    Hive用戶接口
    • Hive CLI(Hive Command Line) Hive的命令行

    • HWI(Hive Web Interface) HiveWeb接口

    • Hive提供了Thrift服務,也就是Hiveserver。

    Hive元數據的三種存儲模式
    • 單用戶模式 : Hive安裝時,默認使用的是Derby數據庫存儲元數據,這樣不能并發調用Hive。

    • 多用戶模式 : MySQL服務器存儲元數據

    • 遠程服務器模式 : 啟動MetaStoreServer

    Hive數據存儲

    Hive數據可區分為表數據元數據,表數據我們都知道是表中的數據,而元數據是用來存儲表的名字表分區以及屬性

    Hive是基于Hadoop分布式文件存儲的,它的數據存儲在HDFS中。現在我們介紹Hive中常見的數據導入方式

    • 本地文件系統中導入數據到Hive

    • 從HDFS上導入數據到Hive表

    • 從其他表中查詢出相應的數據并導入Hive表中

    • 在創建表的時候通過從其他表中查詢出相應的記錄并插入到所創建的表中

    #1.演示從本地裝載數據到hive
    #1.1創建表
    create table student(id string, name string) 
    row format delimited fields terminated by '\t';
    #1.2加載本地的文件到hive
     load data local inpath 
    '/root/student.txt' into table default.student; #default.test 數據庫.表名 也可直接表名
    #2.演示加載HDFS文件到hive中
    #2.1 將文件上傳到HDFS根目錄
    dfs -put /root/student.txt /;
    #2.2加載HDFS上的數據
    load data inpath '/student.txt' into table test.student;
    #3.加載數據覆蓋表中原有的數據
    #3.1上傳文件到HDFS中
    dfs -put /root/student.txt /;  #將文件裝載到表下 文件就相當于Windows中的剪切操作
    #3.2加載數據覆蓋表中原有數據
    load data inpath '/student.txt' overwrite into table test.student;
    #4.查詢表
    select * from student;
    #通過查詢語句向表中插入數據(insert)
    #1.1創建表
    create table student_par(id int,name String)
    row format delimited fields terminated by '\t';
    #1.2通過insert插入數據
    insert into table student_par values(1,'zhangsan'),(2,'lisi');
    架構原理

    用戶接口

    CLI(command-line interface)、JDBC/ODBC(jdbc 訪問 hive)、WEBUI(瀏覽器訪問 hive)

    元數據

    元數據包括:表名、表所屬的數據庫(默認是 default)、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的數據所在目錄等

    Hadoop

    使用 HDFS 進行存儲,使用 MapReduce 進行計算。

    驅動器:Driver

    (1)解析器(SQL Parser):將 SQL 字符串轉換成抽象語法樹 AST,這一步一般都用第三方工具庫完成,比如 antlr;對 AST 進行語法分析,比如表是否存在、字段是否存在、SQL語義是否有誤。
    (2)編譯器(Physical Plan):將 AST 編譯生成邏輯執行計劃。
    (3)優化器(Query Optimizer):對邏輯執行計劃進行優化。
    (4)執行器(Execution):把邏輯執行計劃轉換成可以運行的物理計劃。對于 Hive 來說,就是 MR/Spark。

    Hive的數據類型有哪些

    Hive文件格式
    • TextFile

    這是默認的文件格式。數據不會壓縮處理,磁盤開銷大,數據解析開銷也大。
    SequenceFile
    這是HadooAPI提供的一種二進制文件支持,以二進制的形式序列化到文件中。

    • RCFile

    這種格式是行列存儲結構的存儲方式。

    • ORC

    Optimized Row Columnar ORC文件格式是一種Hadoop生態圈中的列式存儲格式。

    ORC的優勢:

    • 列示存儲,有多種文件壓縮方式

    • 文件是可分割的。

    • 提供了多種索引

    • 可以支持復雜的數據結構 比如Map

    ORC文件格式是以二進制方式存儲的,所以是不可直接讀取的。

    Hive本質

    將HQL轉換成MapReduce程序。

    • Hive處理的數據存儲在HDFS上

    • Hive分析數據底層的實現是MapReduce

    • 執行程序運行在Yarn上

    Hive工作原理

    簡單來說Hive就是一個查詢引擎。當Hive接受到一條SQL語句會執行如下操作:

    • 詞法分析和語法分析。使用antlr將SQL語句解析成抽象語法樹

    • 語義分析。從MetaStore中獲取元數據信息,解釋SQL語句中的表名、列名、數據類型

    • 邏輯計劃生成。生成邏輯計劃得到算子樹

    • 邏輯計劃優化。對算子樹進行優化

    • 物理計劃生成。將邏輯計劃生成出的MapReduce任務組成的DAG的物理計劃

    • 物理計劃執行。將DAG發送到Hadoop集群進行執行

    • 將查詢結果返回。

    Hive展現的MapReduce任務設計到組件有:

    • 元存儲 : 該組件存儲了Hive中表的信息,其中包括了表、表的分區、模式、列及其類型、表映射關系等

    • 驅動 : 控制HiveQL生命周期的組件

    • 查詢編輯器

    • 執行引擎

    • Hive服務器

    • 客戶端組件 提供命令行接口Hive CLI、Web UI、JDBC驅動等

    Hive數據類型

    Hive支持兩種數據類型,一種原子數據類型、還有一種叫復雜數據類型。

     基本數據類型 
    類型描述示例
    TINYINT1字節有符合整數1
    SMALLINT2字節有符號整數1
    INT4字節有符號整數1
    BIGINT8字節有符號整數1
    FLOAT4字節單精度浮點數1.0
    DOUBLE8字節雙精度浮點數1.0
    BOOLEANtrue/falsetrue
    STRING字符串“hive”,‘hive’

    Hive類型中的String數據類型類似于MySQL中的VARCHAR。該類型是一個可變的字符串。

    Hive支持數據類型轉換,Hive是用Java編寫的,所以數據類型轉換規則遵循Java :

    隱式轉換 --> 小轉大

    強制轉換 --> 大傳小

    類型描述示例
    ARRAY有序的字段。字符類型必須相同ARRAY(1,2)
    MAP無序的鍵值對。建的類型必須是原子的,值可以是任何類型。Map(‘a’,1,‘b’,2)
    STRUCT一組命名的字段。字段類型可以不同STRUCT(‘a’,1,1,0)

    以上就是關于“Hive數據類型有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    蕉岭县| 定安县| 无极县| 奉贤区| 顺平县| 丰顺县| 唐海县| 密云县| 凤阳县| 太白县| 通榆县| 沧州市| 遵义市| 新巴尔虎左旗| 阿克苏市| 四会市| 车致| 灵丘县| 鄂托克旗| 项城市| 遂昌县| 利辛县| 余干县| 许昌县| 友谊县| 嘉峪关市| 玛曲县| 奉节县| 四会市| 左云县| 清新县| 绩溪县| 甘孜县| 沁源县| 大理市| 集安市| 宝鸡市| 巴里| 江油市| 东海县| 巩义市|