HIVE表建立 刪除 截斷

2021-08-27 10:37:40 字數 1190 閱讀 9094

下文只描述不常見的hive建立|刪除|截斷表的用法

如果不指定資料庫,hive會把表建立在default資料庫下,假設有乙個hive的資料庫mydb,要建立表到mydb,如下:

create table mydb.pokes(foo int,bar string);

或者是use mydb; --把當前資料庫指向mydb

create table pokes(foo int,bar string);

ctas建立的表是原子性的,這意味著,該錶直到所有的查詢結果完成後,其他使用者才可以看到完整的查詢結果表。

ctas唯一的限制是目標表,不能是乙個有分割槽的表,也不能是外部表。

簡單的方式

create table new_key_value_store

as select (key % 1024) new_key, concat(key, value) key_value_pair from key_value_store;

複雜的方式

create table new_key_value_store

row format serde "org.apache.hadoop.hive.serde2.columnar.columnarserde"

stored as rcfile as

select (key % 1024) new_key, concat(key, value) key_value_pair

from key_value_store

sort by new_key, key_value_pair;

drop table table_name;

drop table if exists table_name;

刪除表會移除表的元資料和資料,而hdfs上的資料,如果配置了trash,會移到.trash/current目錄下。

刪除外部表時,表中的資料不會被刪除。

從表或者表分割槽刪除所有行,不指定分割槽,將截斷表中的所有分割槽,也可以一次指定多個分割槽,截斷多個分割槽。

truncate table table_name;

truncate table table_name partition (dt='20080808');

分割槽表建立與截斷

建立 create table event table name varchar2 100 byte not null,occur time date not null,msecond number 10 not null,content varchar2 160 byte nocompress t...

hive創標 hive建立表

一 為什麼要建立分割槽表 1 select查詢中會掃瞄整個表內容,會消耗大量時間。由於相當多的時候人們只關心表中的一部分資料,故建表時引入了分割槽概念。2 hive分割槽表 是指在建立表時指定的partition的分割槽空間,若需要建立有分割槽的表,需要在create表的時候呼叫可選引數partit...

hive 建立表詳解

hive create table studyinfo id int,age int row format delimited fields terminated by stored as textfile oktime taken 2.666 seconds row formatdelimited...