HiveQL DDL語法規則包括
- CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX(創建 數據庫/模式,表,視圖,函數,索引)
- DROP DATABASE/SCHEMA, TABLE, VIEW, INDEX(刪除 數據庫/模式,表,視圖,索引)
- TRUNCATE TABLE(清空 表)
- ALTER DATABASE/SCHEMA, TABLE, VIEW(修改 數據庫/模式,表,視圖)
- MSCK REPAIR TABLE (or ALTER TABLE RECOVER PARTITIONS)(MSCK修復表或ALTER TABLE恢復分區)
- SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES, VIEWS, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE(查看)
- DESCRIBE DATABASE/SCHEMA, table_name, view_name(查看 數據庫/模式描述信息)
創建表時需要指定數據切分格式,會用到ROW FORMAT關鍵字。下面是Hive官網關於ROW FORMAT的用法:
下面通過一個例子說明數據之間分隔符用法。比如有兩條數據:
1,Lilei,book-tv-code,beijing:chaoyang-shanghai:pudong 2,Hanmeimei,book-Lilei-code,beijing:haidian-shanghai:huangpu
先看JAVA集合框架圖,明確每個字段數據類型
再看數據格式,指定分隔符
每個字段之間由[ , ]分割----------FIELDS TERMINATED BY ','
第二個字段是Array形式,元素與元素之間由[ - ]分割----------COLLECTION ITEMS TERMINATED BY '-'
第三個字段是K-V形式,每組K-V對內部由[ : ]分割,每組K-V對之間由[ - ]分割----------MAP KEYS TERMINATED BY ':'
每條數據之間由換行符分割(默認[ \n ]),如果是其它分割方式(比如[ ; ])----------LINES TERMINATED BY ';'
完整建表語句
create table psn ( id int, name string, hobbies ARRAY <string>, address MAP <string, string> ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '-' MAP KEYS TERMINATED BY ':';
~完~