hive基本介紹和基礎

2021-10-23 20:40:15 字數 4341 閱讀 1860

1、hive基本概念

hive基於hadoop的乙個資料倉儲工具:

hive本身不提供資料儲存功能,使用hdfs做資料儲存;

hive也是分布式計算框架,hive的核心工作就是把sql語句翻譯成mr程式;

hive不提供資源排程,也是預設由hadoop當中yarn集群來排程;

可以將結構的資料對映為一張資料庫表,並提供hql(hive sql)查詢功能。

資料庫只存在當前值(近幾年),資料倉儲存放歷史值(5-10年都可以);

資料庫內資料是動態變化的,只要有業務發生,資料就會被更新,而資料倉儲則是靜態的歷史資料,只能定期新增、重新整理;

資料庫中的資料結構比較複雜,有各種結構以適合業務處理系統的需要,而資料倉儲中的資料結構則相對簡單;

資料庫中資料訪問頻率較高,但訪問量較少,而資料倉儲的訪問頻率低(只要做查詢)但訪問量卻很高;

資料庫中資料的目標是面向業務人員的,為業務處理人員提供資訊處理的支援,而資料倉儲則是面向高層管理人員的,為其提供決策支援;

資料庫在訪問資料時要求響應速度快,其響應時間一般在幾秒內,而資料倉儲的響應時間則可長達數幾小時(因為底層是mapreduce,所以比較慢)。

1、基本資料型別

2、複雜資料型別

1、建立資料庫

【語法】

create

(databeas[

schema])

[ifnotexists

] database_name

[comment database_comment]

[location hdfs_path]

[with dbproperities (property_name=propery_value,..

.)];

【例子】

create

database myhive

comment

'測試庫'

;

2、使用資料庫【語法】

use database_name;
【示例】

(1)檢視資料庫:show databases;

(2)使用資料庫:use myhive;

3、刪除資料庫

【語法】

drop

(database

|schema)(

ifnot

exists

) database_name [

restrict

|ascade]

;

ascade強制刪除資料庫4、建立資料表(1)直接建表法

create

table t1(

​ id int

,​ name string,

​ hobby array

​ add map

​ row format delimited

fields items termimated by

','# 按逗號分割

​ collection items terminated

by'-'

​ map keys

terminated

by':'

# map型別通過:分割

)

(2)查詢建表法

create

table t2 as

select id,

​ name

from t1;

(3)like建表法 只會把表結構複製過去,但是不會複製表內的資料

create

table empty_key_value_store

like key_value_store

5、修改表(1)修改表名

alter

table old_name rename

to new_name;

(2)修改列名

alter

table name char column_name new_name new_type;

(3)增加列

alter

table emp add

columns

(age int

);

6、刪除表

drop

table[if

notexists

] table_name [pureg]

;

7、匯入資料

load

data

[local

] inpath 'filepath'

[overwrite]

into

table tablename partition (partcol1=val1,partcol2=val2...

)

(1)從本地匯入到hive表

load

data

local inpath '/home/hadoop/haha.txt'

into

table t1;

(

2)從hdfs匯入到hive表load

data inpath '/test'

into

table t1;

8、匯出資料(1)儲存到本地

insert overwrite local directory '/home/hadoop/'

select

*from t1;

(2)儲存到hdfs

insert overwrite directory '/abc'

select

*from t1;

(1)內部表:內部表建立的時候,在hdfs上面也會建立乙個目錄,刪除的時候會把hdfs上面的資料也一併刪除,故不常用。

(2)外部表:外部表建立的時候,在hdfs上面也會建立乙個目錄,刪除的時候只會刪除表的元資料和結構,而不會刪除hdfs上面的資料。

create external table t1(

​ id int

,​ name string )

row format delimited

fields termimated by

',';

(3)分割槽表:hive中沒有索引,導致查詢速度很慢,如果不設定分割槽,則每次查詢會全表掃瞄。

cretae table logs(

​ ts int

,​ line string)

parttional by

(dt string,country string)

;

(4)檢視分割槽show partitions 表名

show partitions 表名

Hive基礎介紹

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供類sql查詢功能。其本質是將sql轉換為mapreduce的任務進行運算,底層由hdfs來提供資料的儲存,通常進行一次寫多次讀操作。優點 介面採用類sql語法,簡單易上手 避免寫mapreduce,減少開發...

Hive Hive基本介紹 和 Hive的資料儲存

hive架構 hive與hadoop的關係 hive與傳統資料庫對比 hive是乙個基於hadoop的資料倉儲工具,可以將結構化資料對映成一張資料表,並提供類sql的查詢功能。其本質是將sql轉換為mapreduce的任務進行運算,底層由hdfs來提供資料的儲存,hive可以理解為乙個將sql轉換為...

Pandas 基本介紹和基礎操作

目錄 一 numpy和pandas的不同 二 pandas序列操作 二 pandas序列 import pandas as pd import numpy as np 1.生成乙個簡單的一維陣列 下面的語句可以理解為新建了乙個一維陣列,但是每行都有乙個標號 s pd.series 1,3,6,np....