2Hive表類型

2Hive表類型

  • 1 Hive 數據類型
  • 2 Hive 內部表
  • 3 Hive 外部表
  • 4 Hive 分區表
  • 5 Hive 分桶表
  • 6 Hive 視圖

1 Hive 數據類型

Hive的基本數據類型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,TIMESTAMP(V0.8.0+)和BINARY(V0.8.0+)。

Hive的集合類型有:STRUCT,MAP和ARRAY。

Hive主要有四種數據模型(即表):內部表、外部表、分區表和桶表。

表的元數據保存傳統的數據庫的表中,當前hive只支持Derby和MySQL數據庫。

2 Hive 內部表

Hive中的內部表和傳統數據庫中的表在概念上是類似的,Hive的每個表都有自己的存儲目錄,除了外部表外,所有的表數據都存放在配置在hive-site.xml文件的${hive.metastore.warehouse.dir}/table_name目錄下。

創建內部表:

CREATE TABLE IF NOT EXISTS students(user_no INT,name STRING,sex STRING,  grade STRING COMMOT '班級'COMMONT '學生表'  
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ','
STORE AS TEXTFILE;      

3 Hive 外部表

被external修飾的為外部表(external table),外部表指向已經存在在Hadoop HDFS上的數據,除了在刪除外部表時只刪除元數據而不會刪除表數據外,其他和內部表很像。

創建外部表:

CREATE EXTERNAL TABLE IF NOT EXISTS students(user_no INT,name STRING,sex STRING,  class STRING COMMOT '班級'COMMONT '學生表'  
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY ','  
STORE AS SEQUENCEFILE 
LOCATION '/usr/test/data/students.txt';   

4 Hive 分區表

分區表的每一個分區都對應數據庫中相應分區列的一個索引,但是其組織方式和傳統的關系型數據庫不同。在Hive中,分區表的每一個分區都對應表下的一個目錄,所有的分區的數據都存儲在對應的目錄中。
比如說,分區表partitinTable有包含nation(國家)、ds(日期)和city(城市)3個分區,其中nation = china,ds = 20130506,city = Shanghai則對應HDFS上的目錄為:
/datawarehouse/partitinTable/nation=china/city=Shanghai/ds=20130506/。
分區中定義的變量名不能和表中的列相同。

創建分區表:

CREATE TABLE IF NOT EXISTS students(user_no INT,name STRING,sex STRING,class STRING COMMOT '班級'COMMONT '學生表'  
PARTITIONED BY (ds STRING,country STRING)  
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY ','  
STORE AS SEQUENCEFILE;

5 Hive 分桶表

桶表就是對指定列進行哈希(hash)計算,然后會根據hash值進行切分數據,將具有不同hash值的數據寫到每個桶對應的文件中。
將數據按照指定的字段進行分成多個桶中去,說白了就是將數據按照字段進行劃分,可以將數據按照字段劃分到多個文件當中去。

創建分桶表:

CREATE TABLE IF NOT EXISTS students(user_no INT,name STRING,sex STRING,  class STRING COMMOT '班級',score SMALLINT COMMOT '總分'COMMONT '學生表'  
PARTITIONED BY (ds STRING,country STRING)  
CLUSTERED BY(user_no) SORTED BY(score) INTO 32 BUCKETS  
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY ','  
STORE AS SEQUENCEFILE;      

6 Hive 視圖

在 Hive 中,視圖是邏輯數據結構,可以通過隱藏復雜數據操作(Joins, 子查詢, 過濾,數據扁平化)來于簡化查詢操作。
與關系數據庫不同的是,Hive視圖并不存儲數據或者實例化。一旦創建 HIve 視圖,它的 schema 也會立刻確定下來。對底層表后續的更改(如 增加新列)并不會影響視圖的 schema。如果底層表被刪除或者改變,之后對視圖的查詢將會 failed。基于以上 Hive view 的特性,我們在ETL和數據倉庫中對于經常變化的表應慎重使用視圖。

創建視圖:

CREATE VIEW employee_skillsAS
SELECT name, skills_score['DB'] AS DB,
skills_score['Perl'] AS Perl, 
skills_score['Python'] AS Python,
skills_score['Sales'] as Sales, 
skills_score['HR'] as HR 
FROM employee;

創建視圖的時候是不會觸發 MapReduce 的 Job,因為只存在元數據的改變。
但是,當對視圖進行查詢的時候依然會觸發一個 MapReduce Job 進程:SHOW CREATE TABLE 或者 DESC FORMATTED TABLE 語句來顯示通過 CREATE VIEW 語句創建的視圖。以下是對Hive 視圖的 DDL操作:
更改視圖的屬性:

ALTER VIEW employee_skills 
SET TBLPROPERTIES ('comment' = 'This is a view');

重新定義視圖:

ALTER VIEW employee_skills AS 
SELECT * from employee ;

刪除視圖:

DROP VIEW employee_skills; 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66108.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FPGA工程師成長四階段

朋友,你有入行三年、五年、十年的職業規劃嗎?你知道你所做的崗位未來該如何成長嗎? FPGA行業的發展近幾年是蓬勃發展,有越來越多的人才想要或已經踏進了FPGA行業的大門。很多同學在入行FPGA之前,都會抱著滿腹對職業發…

springCloudGateway+nacos自定義負載均衡-通過IP隔離開發環境

先說一下想法,小公司開發項目,參考若依框架使用的spring-cloud-starter-gateway和spring-cloud-starter-alibaba-nacos, 用到了nacos的配置中心和注冊中心,有多個模塊(每個模塊都是一個服務)。 想本地開發,…

深度解析 React 中 setState 的原理:同步與異步的交織

在 React 框架的核心機制里,setState是實現動態交互與數據驅動視圖更新的關鍵樞紐。深入理解setState的工作原理,尤其是其同步與異步的特性,對于編寫高效、穩定且可預測的 React 應用至關重要。 一、setState 的基礎認知 在 React 組件中&a…

向量數據庫如何助力Text2SQL處理高基數類別數據

01. 導語 Agent工作流和 LLMs (大語言模型)的出現,讓我們能夠以自然語言交互的模式執行復雜的SQL查詢,并徹底改變Text2SQL系統的運行方式。其典型代表是如何處理High-Cardinality Categorical Data (高基數類別數據&am…

qBittorent訪問webui時提示unauthorized解決方法

現象描述 QNAP使用Container Station運行容器,使用Docker封裝qBittorrent時,訪問IP:PORT的方式后無法訪問到webui,而是提示unauthorized,如圖: 原因分析 此時通常是由于設備IP與qBittorrent的ip地址不在同一個網段導致…

工程水印相機結合圖紙,真實現場時間地點,如何使用水印相機,超簡單方法只教一次!

在工程管理領域,精準記錄現場信息至關重要。水印相機拍照功能,為工程人員提供了強大的現場信息記錄工具,助力工程管理和統計工程量,更可以將圖片分享到電腦、分享給同事,協同工作。 一、打開圖紙 打開手機版CAD快速看圖…

GO語言實現KMP算法

前言 本文結合朱戰立教授編著的《數據結構—使用c語言(第五版)》(以下簡稱為《數據結構(第五版)朱站立》)中4.4.2章節內容編寫,KMP的相關概念可參考此書4.4.2章節內容。原文中代碼是C語言&…

LeetCode 熱題 100_從前序與中序遍歷序列構造二叉樹(47_105_中等_C++)(二叉樹;遞歸)

LeetCode 熱題 100_從前序與中序遍歷序列構造二叉樹(47_105) 題目描述:輸入輸出樣例:題解:解題思路:思路一(遞歸): 代碼實現代碼實現(思路一(遞歸…

1.2 ThreeJS能力演示——模型導入導出編輯

1、模型導入導出編輯能力 1)支持導入基本類型模型 最常用,最適合作為web演示模型的是glb格式的,當前演示glb模型導入 // 1) 支持導入基本類型模型const loader new GLTFLoader();loader.load(./three.js-master/examples/models/gltf/Hors…

文檔智能:OCR+Rocketqa+layoutxlm <Rocketqa>

此次梳理Rocketqa,個人認為該篇文件講述的是段落搜索的改進點,關于其框架:粗檢索 重排序----(dual-encoder architecture),講訴不多,那是另外的文章; 之前根據文檔智能功能&#x…

ESP8266 AP模式 網頁配網 arduino ide

ESP8266的AP配網,可以自行配置網絡,一個簡單的demo,文檔最后有所有的代碼,已經測試通過. 查看SPIFFS文件管理系統中的文件 賬號密碼是否存在,如不存在進入AP配網,如存在進入wifi連接模式 // 檢查Wi-Fi憑據if (isWiFiConfigured()) {Serial.println("找到Wi-Fi憑據&#…

ubuntu官方軟件包網站 字體設置

在https://ubuntu.pkgs.org/22.04/ubuntu-universe-amd64/xl2tpd_1.3.16-1_amd64.deb.html搜索找到需要的軟件后,點擊,下滑, 即可在Links和Download找到相關鏈接,下載即可, 但是找不到ros的安裝包, 字體設…

使用 WPF 和 C# 繪制覆蓋網格的 3D 表面

此示例展示了如何使用 C# 代碼和 XAML 繪制覆蓋有網格的 3D 表面。示例使用 WPF 和 C# 將紋理應用于三角形展示了如何將紋理應用于三角形。此示例只是使用該技術將包含大網格的位圖應用于表面。 在類級別,程序使用以下代碼來定義將點的 X 和 Z 坐標映射到 0.0 - 1.…

[Do374]Ansible一鍵搭建sftp實現用戶批量增刪

[Do374]Ansible一鍵搭建sftp實現用戶批量增刪 1. 前言2. 思路3. sftp搭建及用戶批量新增3.1 配置文件內容3.2 執行測試3.3 登錄測試3.4 確認sftp服務器配置文件 4. 測試刪除用戶 1. 前言 最近準備搞一下RHCA LV V,外加2.9之后的ansible有較大變化于是練習下Do374的課程內容. 工…

SK海力士(SK Hynix)是全球領先的半導體制造商之一,其在無錫的工廠主要生產DRAM和NAND閃存等存儲器產品。

SK海力士(SK Hynix)是全球領先的半導體制造商之一,其在無錫的工廠主要生產DRAM和NAND閃存等存儲器產品。以下是SK海力士的一些主要產品型號和類別: DRAM 產品 DDR4 DRAM 特點: 高速、低功耗,廣泛應用于PC、服務器和移…

WordPress如何配置AJAX以支持點擊加載更多?

WordPress 配置 AJAX 支持點擊加載更多內容通常涉及到前端 JavaScript 和服務器端的配合。以下是基本步驟: 安裝插件:你可以選擇一個現成的插件如 “Advanced Custom Fields” 或者 “WP Infinite Scroll”,它們已經內置了 AJAX 功能&#xf…

【IDEA 2024】學習筆記--文件選項卡

在我們項目的開發過程中,由于項目涉及的類過多,以至于我們會打開很多的窗口。使用IDEA默認的配置,個人覺得十分不便。 目錄 一、設置多個文件選項卡按照文件字母順序排列 二、設置多個文件選項卡分行顯示 一、設置多個文件選項卡按照文件字…

【C】數組和指針的關系

在 C 語言 和 C 中,數組和指針 有非常密切的關系。它們在某些情況下表現類似,但也有重要的區別。理解數組和指針的關系對于掌握低級內存操作和優化程序性能至關重要。 1. 數組和指針的基本關系 數組是一個 連續存儲的元素集合,在內存中占據一…

Maven 配置本地倉庫

步驟 1&#xff1a;修改 Maven 的 settings.xml 文件 找到你的 Maven 配置文件 settings.xml。 Windows: C:\Users\<你的用戶名>\.m2\settings.xmlLinux/macOS: ~/.m2/settings.xml 打開 settings.xml 文件&#xff0c;找到 <localRepository> 標簽。如果沒有該標…

Docker save load 鏡像 tag 為 <none>

一、場景分析 我從 docker hub 上拉了這么一個鏡像。 docker pull tomcat:8.5-jre8-alpine 我用 docker save 命令想把它導出成 tar 文件以便拷貝到內網機器上使用。 docker save -o tomcat-8.5-jre8-alpine.tar.gz 鏡像ID 當我把這個鏡像傳到別的機器&#xff0c;并用 dock…