1、hive基本概念
hive基於hadoop的乙個資料倉儲工具:
1、基本資料型別
2、複雜資料型別
1、建立資料庫
【語法】
create (databeas[schema]) [if not exists] 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) (if not 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 not exists] 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 表名
hive 建立訪問使用者 你了解HIVE架構嗎?
1.hive定義 hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。其優點是學習成本低,可以通過類sql語句快速實現簡單的mapreduce統計,不必開發專門的mapreduce應...
hive創標 hive建立表
一 為什麼要建立分割槽表 1 select查詢中會掃瞄整個表內容,會消耗大量時間。由於相當多的時候人們只關心表中的一部分資料,故建表時引入了分割槽概念。2 hive分割槽表 是指在建立表時指定的partition的分割槽空間,若需要建立有分割槽的表,需要在create表的時候呼叫可選引數partit...
hive 建立索引
索引是hive0.7之後才有的功能,建立索引需要評估其合理性,因為建立索引也是要磁碟空間,維護起來也是需要代價的 create index idx user phone on table user phone with phone message user phone as org.apache.h...