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....