HiveSQL
Hive的數據類型 :
primitive_type ? | array_type ? | map_type ? | struct_type :primitive_type ? |TINYINT ? | SMALLINT ? | INT ? | BIGINT ? | BOOLEAN ? | FLOAT ? | DOUBLE ? | STRING
Hive完整的DDL建表語法規則
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name ???-- (Note: TEMPORARY available in Hive 0.14.0 and later)
??[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
??[COMMENT table_comment]
??[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
??[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
??[SKEWED BY (col_name, col_name, ...) ?????????????????-- (Note: Available in Hive 0.10.0 and later)]
?????ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
?????[STORED AS DIRECTORIES]
??[
???[ROW FORMAT row_format]
???[STORED AS file_format]
?????| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] ?-- (Note: Available in Hive 0.6.0 and later)
??]
??[LOCATION hdfs_path]
??[TBLPROPERTIES (property_name=property_value, ...)] ??-- (Note: Available in Hive 0.6.0 and later)
??[AS select_statement]; ??-- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
?
Hive 內部表
CREATE ?TABLE [IF NOT EXISTS] table_name
刪除表時,元數據與數據都會被刪除
Hive 外部表
CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name LOCATION hdfs_path
刪除外部表只刪除metastore的元數據,不刪除hdfs中的表數據
?
Hive 建表
?CREATE TABLE person(
????id INT,
????name STRING,
????age INT,
????likes ARRAY<STRING>,
????address MAP<STRING,STRING>
??)
??ROW FORMAT DELIMITED
??FIELDS TERMINATED BY ','
??COLLECTION ITEMS TERMINATED BY '-'
??MAP KEYS TERMINATED BY ':'
??LINES TERMINATED BY '\n';
Hive字段的默認值
?
Hive 查看表描述
?
DESCRIBE [EXTENDED|FORMATTED] table_name
Hive 建表
?
Create Table Like:
CREATE TABLE empty_key_value_store LIKE key_value_store;
?
Create Table As Select (CTAS)
CREATE TABLE new_key_value_store
??????AS
????SELECT columA, columB FROM key_value_store;
總結
- 上一篇: yml语法
- 下一篇: Hadoop 01_基础知识