表格创建:

语法

第一种建表的形式:说明:
temporary 临时表,在当前回话内,这张表有效,当回话结束,可以理解为程序结束,则程序终止。
external 外部表, hdfs 上的表的文件,并非存储在默认的路径上的时候, EXTERNAL 表格和正常表格删除区别,external 只删除metastore可以称为外部表,便于和其他数据库和程序交互,比如impala 等。
如果不加 IF NOT EXISTS 的时候,如果表存在,会报错,可以加上IF NOT EXISTS 加以避免。
注意表名不区分大小写
例子:
create temporary table my.table1;
create external table my.table2;
create tabel if not exists my.table3;
-- (Note: TEMPORARY available in Hive 0.14.0 and later)
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    --定义列, 比如 id  Int comment '索引', name string comment '名字'[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]   [COMMENT table_comment]  -- comment 表示表的注释    --分区,括号内的定义类似列的定义,分区可以根据默写字段比如日期,城市,进行分区,可以加快某些条件下的查询--部分列的集合,根据分区列的进行粗粒度的划分,一个分区,代表着一个目录[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]  --分桶,在分区的基础上,可以进行分桶,分桶的原理是,根据某几列进行计算hash 值,--然后hash 值对分成的桶的个数取余操作,决定放在哪个桶里面--在数据量足够大的情况下,分桶比分区,更高的查询效率 --分桶,还可以使抽样更加高效[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]  ---- 分桶---大致上Skewed,对数据倾斜处理有很大帮助,没用过 [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)]   -- 表示文件的存储格式, 其中store by 指的是自定义文件格式,用得不多,笔者没有用过。[LOCATION hdfs_path][TBLPROPERTIES (property_name=property_value, ...)]    --  表示表格的附加属性和表述。 -- (Note: Available in Hive 0.6.0 and later)[AS select_statement];  -- 建立表格的时候同时从其他表格select 数据进行填充表格。-- (Note: as  select_statement Available in Hive 0.5.0 and later; not supported for external tables)CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_nameLIKE existing_table_or_view_name[LOCATION hdfs_path];说明:数据类型
data_type: primitive_type| array_type| map_type| struct_type| union_type  -- (Note: Available in Hive 0.7.0 and later)基本数据类型
primitive_type: TINYINT| SMALLINT| INT| BIGINT| BOOLEAN| FLOAT| DOUBLE| DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)| STRING| BINARY      -- (Note: Available in Hive 0.8.0 and later)| TIMESTAMP   -- (Note: Available in Hive 0.8.0 and later)| DECIMAL     -- (Note: Available in Hive 0.11.0 and later)| DECIMAL(precision, scale)  -- (Note: Available in Hive 0.13.0 and later)| DATE        -- (Note: Available in Hive 0.12.0 and later)| VARCHAR     -- (Note: Available in Hive 0.12.0 and later)| CHAR        -- (Note: Available in Hive 0.13.0 and later)复杂数据类型
array_type: ARRAY < data_type >map_type: MAP < primitive_type, data_type >struct_type: STRUCT < col_name : data_type [COMMENT col_comment], ...>union_type: UNIONTYPE < data_type, data_type, ... >  -- (Note: Available in Hive 0.7.0 and later)## 在hdfs 上的文件存储格式
row_format: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char][MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char][NULL DEFINED AS char]   -- (Note: Available in Hive 0.13 and later)| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]file_format:: SEQUENCEFILE| TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)| RCFILE      -- (Note: Available in Hive 0.6.0 and later)| ORC         -- (Note: Available in Hive 0.11.0 and later)| PARQUET     -- (Note: Available in Hive 0.13.0 and later)| AVRO        -- (Note: Available in Hive 0.14.0 and later)| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classnameconstraint_specification:: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ][, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE 

说明

上述的建表语法,有些语法笔者不是很懂,希望各位不吝赐教。

常见例子:

例子一

create  table my.tabelDemo(id      int,name    string,hobby   array<string>,add     map<String,string>,
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
store as textfile;每一列之间,使用逗号分隔,
array 内部的string 使用-分隔。
map 的key 和value, 使用冒号分隔 :

例子二

-- 文件存储形式是parquet
CREATE EXTERNAL TABLE IF NOT EXISTS default.person_table( ftpurl        string, ipcid         string, feature       array<float>, eyeglasses    int, gender        int, haircolor     int, hairstyle     int, hat           int, huzi          int, tie           int, timeslot      int, exacttime     Timestamp, searchtype    string, sharpness     int
)
partitioned by (date string)
STORED AS PARQUET
LOCATION '/user/hive/warehouse/person_table';

struct 使用

create table student_test(id INT, info struct<name:STRING, age:INT>)  ROW FORMAT DELIMITED FIELDS TERMINATED BY ','                         COLLECTION ITEMS TERMINATED BY ':';         hdfs 中的文件数据格式大致是:即(struct 里面对应的分隔符是 collection items terminated by 指定的分隔符)
1,zhou:30
2,yan:30
3,chen:20
4,li:80  

以下是truncate 用来进行表格的清空

一个有用的数据清空工具

TRUNCATE TABLE table_name [PARTITION partition_spec];partition_spec:: (partition_column = partition_col_value, partition_column = partition_col_value, ...)

删除表格

DROP TABLE [IF EXISTS] table_name [PURGE];
-- purge,如果配置了垃圾回收,而drop table 时 加上了purge,则其会被彻底删除,在垃圾箱中也找不回来。

修改表

重命名表

ALTER TABLE table_name RENAME TO new_table_name;

改变表格属性

ALTER TABLE table_name SET TBLPROPERTIES table_properties;table_properties:: (property_name = property_value, property_name = property_value, ... )

改变表格评论

ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment);

对表格进行分桶

ALTER TABLE table_name CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name, ...)]INTO num_buckets BUCKETS;

添加分区

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'][, PARTITION partition_spec [LOCATION 'location'], ...];
partition_spec:: (partition_column = partition_col_value, partition_column = partition_col_value, ...)

重命名分区

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

删除分区

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...][IGNORE PROTECTION] [PURGE];            -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)

视图创建

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name = property_value, ...)]AS SELECT ...;

原文参考:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

hive 学习系列三(表格的创建create-table)相关推荐

  1. Pyside2 学习系列三:PyInstaller打包项目瘦身(超详细的Pyside2 攻略)

    继上一篇文章打包后,发现包太大了,我们现在开始进行瘦身优化. 本项目的所有演示代码:github可在这里下载. 打包只用的工具为PyInstaller. 不想细看的朋友 可以直接跳到 最后 方法对比 ...

  2. Vue+Electron学习系列 (三) -- 自动更新

    Vue+Electron学习系列 ​​​​​​​1️⃣Vue+Electron学习系列 (一) -- 初识​​​​​​​ 2️⃣ Vue+Electron学习系列 (二) -- 打包发布 3️⃣ Vu ...

  3. Hive学习笔记三之函数操作

    文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...

  4. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  5. HIVE学习系列——windows Hadoop安装(上)

    文章目录 整体流程概览 jre环境 jre安装 jre环境变量配置 Hadoop安装与配置 官网下载步骤 清华镜像下载步骤 Hadooponwindows下载 配置系统变量 hadoop初始文件配置 ...

  6. idea学习系列三之版本管理工具

    idea学习系列三之版本管理工具 上一篇文章主要介绍了将idea中常用的快捷键,快捷键要想熟练那就得在实际的工作中多使用,刚开始可能很麻烦经常去笔记中找,不过用多了自然就熟练了. 这篇文件将会介绍一下 ...

  7. HIVE学习系列——Hive操作

    文章目录 Hive表介绍 基本句法-创建新表: Demo运行(以实际使用中的常用句法为编写规范): Q&A 基本句法-向table添加数据 Demo运行(承接创建的表) Q&A 基本句 ...

  8. Java NIO学习系列三:Selector

    前面的两篇文章中总结了Java NIO中的两大基础组件Buffer和Channel的相关知识点,在NIO中都是通过Channel和Buffer的协作来读写数据的,在这个基础上通过selector来协调 ...

  9. Cosmos的基石:IL2CPU编译器--.net/C#开源操作系统学习系列三

    本文的代码包以cosmos-12304.zip为例(从这个包开始,COSMOS的内核算是有了个基本的雏形,就像是一颗大树在出芽前会先长出庞大的根系,现在就要破土长出第一颗芽了) IL2CPU之于COS ...

最新文章

  1. SSIS--FOR循环容器
  2. 拾谈“用最有效率的方法算出2乘以8等於几?”
  3. django--02 模板的使用
  4. Windows和Linux环境下搭建SVN服务器
  5. 判断目录是否存在并创建mkdir
  6. 构造函数和clone以及在继承中
  7. 持续更新的Zookeeper知识总结
  8. Oracle对表的基本操作
  9. Python 可以满足你任何 API 使用需求
  10. 演义群侠传(五)【素材方式MC or SpriteSheet】
  11. 微服务启动顺序_微服务框架Demo.MicroServer运行手册
  12. python-学生管理系统--1框架部分内容以及代码
  13. 华为数通HCNP学习历程分享
  14. 关于4442卡的读密码问题
  15. FFmpeg —— 屏幕录像机
  16. 东欧小哥打造超全Python速查表登上GitHub热榜,标星4600+
  17. 使用示波器测量运放带宽和压摆率
  18. 微信小程序 - 实现搜索界面(带热搜、搜索历史和结果页)
  19. 工控 组态王6.60 SP3软件7.5 SP4 授权软件狗 USB 硬件狗 分享 下载
  20. 湖南大学计算机考研群2021,湖南大学2021年硕士研究生拟录取名单公示

热门文章

  1. 中国工业大数据行业发展趋势分析与投资战略规划建议报告2022-2028年版
  2. viewer.js插件简单使用说明
  3. 麒麟操作系统iso文件中的img文件的解压与压缩
  4. user模块功能完成crud-王荣荣如此唯美
  5. OpenCV | 直线拟合fitline函数
  6. 奶茶新手加盟奶茶品牌培训哪些技能?
  7. math_常用放缩不等式及其变形@指数@对数@三角函数@一次函数
  8. 使用HTML5 SVG绘制的多层饼形图(纯javascript)
  9. 中国平安上半年归母净利润976.76亿元,同比增长68.1%
  10. [配置] 安卓 | 将微信公众号文章保存到Notion