91视频网站-亚洲欧美日韩v在线观看不卡-国产中年熟女高潮大集合-久久久精品国产亚洲综合久久久国产中文字幕免费 -一级特黄AAA大片在线观看-99RE8这里有精品热视频-中文字幕av一区二区三区-久久精品国产AV一区二区电影

當前您所在的位置:首頁 > 新聞中心 > 東方森太新聞

Hive-面向數(shù)據(jù)分析的存儲系統(tǒng)

 最后更新:2021-10-28  瀏覽:2271次

 1.Hive在Hadoop生態(tài)圈地位 

 

 2.數(shù)據(jù)倉庫和數(shù)據(jù)庫的對比分析 

同:

 

異:

 

 3.Hive操作 

和數(shù)據(jù)庫操作語言類似

 

 4.Hive數(shù)據(jù)模型 

 

 5.數(shù)據(jù)類型 

Varchar和char對比說明

同:

 

異:

varchar變長

節(jié)省數(shù)據(jù)空間,不利于計算

用時間換空間

 

char 定長

浪費了存儲空間,節(jié)省了計算時間

用空間換時間

 

 6.數(shù)據(jù)操作分類 

DDL:對表的操作

DML:數(shù)據(jù)插入

DQL:數(shù)據(jù)查詢

 

 7.HiveSQL 

元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)

 

表分類:內(nèi)表和外表

 

概念說明:

hive表分為兩類,即內(nèi)外表。以元數(shù)據(jù)和實體數(shù)據(jù)的操作權限作為分類依據(jù)

 

特點特征:

內(nèi)表:元數(shù)據(jù)和實體數(shù)據(jù)都歸hive管理,一刪全刪。

外表:元數(shù)據(jù)歸Hive管,實體數(shù)據(jù)歸HDFS,刪表只會刪除Hive元數(shù)據(jù),不會改變實體數(shù)據(jù)

 

應用場景:

數(shù)據(jù)表生成時,如果是hive內(nèi)部自生成的表則統(tǒng)一設置內(nèi)表,如果不是自生成的,而是外部導入的,則設置為外表。

 

代碼實現(xiàn):

Create [external] table ……

external內(nèi)外表唯一區(qū)分關鍵字。

 

 7.1 DDL建表模板 

 

關鍵詞解釋

• external: 創(chuàng)建內(nèi)部表還是外部表,此為內(nèi)外表的唯一區(qū)分關鍵字。

• comment col_comment: 給字段添加注釋

• comment table_comment: 給表本身添加注釋

• partitioned by: 按哪些字段分區(qū),可以是一個,也可以是多個

• clustered by col_name… into num_buckets BUCKETS:按哪幾個字段做hash后分桶存儲

• row format:用于設定行、列、集合的分隔符等設置

• stored as : 用于指定存儲的文件類型,如text,rcfile等

• location : 設定該表存儲的hdfs目錄,如果不手動設定,則采用hive默認的存儲路徑

 

查看已存在表的詳細信息:show create table/desc tablename

顯示表:show tables;

更改表:alter table xxx rename xxx1;

增加字段:alter table xxx1 add columns(age int comment “新增加的列”)

 

視圖(虛表)

本身不存儲實際數(shù)據(jù),只存儲表關系,使用時再去通過關系查找數(shù)據(jù)。

 

 7.2 DML數(shù)據(jù)加入 

加載數(shù)據(jù)腳本:

 

新版已不支持本地數(shù)據(jù)文件加載到表中。
可以選擇 1.rz -bye 2.hdfs dfs -put xxx.txt /tmp/…

加載HDFS數(shù)據(jù)文件的腳本

 

注:原始的hdfs文件數(shù)據(jù)將被move到目標表的數(shù)據(jù)目錄中。

將查詢結果插入到數(shù)據(jù)表中

 

多插入模式(一次查詢多次插入)

 

表數(shù)據(jù)刪除的三種方法

drop,delete,truncate

1.drop 是把數(shù)據(jù)和元數(shù)據(jù)全部干掉。

2.delete 按照條件刪除數(shù)據(jù)。只會刪掉實體數(shù)據(jù), 其它數(shù)據(jù)包括元數(shù)據(jù)、狀態(tài)數(shù)據(jù)均不會改變。

3.Truncate 截斷數(shù)據(jù),是指將全部數(shù)據(jù)刪除掉。元數(shù)據(jù)不動,但狀態(tài)數(shù)據(jù)會隨之刪掉。

 

將查詢結果寫入HDFS目錄

外表刪除
刪除外部表后的數(shù)據(jù)變動情況(刪除表后,hdfs文件依然存在)

 

 7.3 DQL 

 

join查詢

• inner join:左表和右表滿足聯(lián)接條件的數(shù)據(jù),全部查詢出來

• left outer join:以左表為主,將左表數(shù)據(jù)全部保留,右表沒有關聯(lián)上數(shù)據(jù)字段置成NULL

• full outer join:沒有關聯(lián)數(shù)據(jù)全部置成NULL

union

• union all:將所有表數(shù)據(jù),完全疊加在一起,不去重。

• union:將所有表數(shù)據(jù),完全疊加在一起,總體去重。

 

函數(shù)

 

if( Test Condition, True Value, False Value )

 

coalesce( value1,value2,… )將參數(shù)列表中第1個不為null的值作為最后的值

 

case [ expression ] WHEN condition1 THEN result1

when condition2 THEN result2

else result

end

 

split 將字符串拆分成一個數(shù)組

explode:將一個集合元素,打散成一行一行的組成,即將一行改成多行,換句話說行轉列

lateral view:與explode聯(lián)用,形成一張新表

select id,name,score from user_score lateral view explode(split(score_list,’,’)) score_table as score;

 


來源:CSDN博主

原文鏈接:https://blog.csdn.net/m0_49142509/article/details/120957785

下一篇面對服務器租用和托管你會如何選擇?
上一篇工業(yè)互聯(lián)網(wǎng)為什么落地這么難?