hive常见的DDL操作
一 Create/Drop/Truncate table
1.1创建表
1管理表和外部表(略)
2存储格式(略)
3ROW FORMATS & Serde
SerDe:是Serialize/Deserialize的缩写. 就是Hive中用户序列化和反序列话。主要作用就是将某种格式的文件转化为Hive可以使用的记录
我们知道序列化:一般是为了方便将对象保存到文件;另外一个是方便对象的 网络传输。
反序列化:则是为了将字节流转换成对象
在Hive运行的时候序列化和反序列化的流程
HDFSfiles --> InputFileFormat --> <key, value> --> Deserializer--> Row object
Rowobject --> Serializer --> <key, value> --> OutputFileFormat--> HDFS files
3.1常用的SerDe
3.1.1MetadataTypedColumnsetSerDe
读写CSV,TSV文件的Serde
3.1.2LazySimpleSerDe
是Hive默认的Serde可以读写和MetadataTypedColumnsetSerDe一样格式的数据,但是它使用lazy方式创建对象,同时支持使用指定的字符编码读写数据, ALTERTABLE person SET SERDEPROPERTIES ('serialization.encoding'='GBK');
3.1.3ThriftSerDe
支出读写Thrift序列化之后的数据
3.1.4JsonSerde
支持读写Json格式的数据
3.1.5AvroSerde、ORCSerde、ParquetSerde
支持读写avro,orc,parquet这些存储格式文件的数据
3.1.6RegexSerde
支持正则表达式的Serde
4分区表(略)
5CTAS、Like(略)
6Bucketed Sorted Tables(略)
7skewed tables(略)
8临时表(略)
1.2删除表
DROPTABLE IF EXISTS tb_name [PURGE];
如果不指定PURGE,默认会把删除的数据线放在垃圾桶里,而使用PURGE则是不会放在垃圾桶,就是真实的删掉了。
1.3TRUNCATE TABLE
TRUNCATETABLE tb_name [PARTITION part_spec];
从表或者分区删除所有的行
二 更改表、分区和列
2.1ALTER TABLE
2.2.1重命名
ALTERTABLE t1 RENAME TO t2;
2.2.2更改表属性
ALTERTABLE t1 SET TBLPROPERTIES table_properties;
table_properties:
:(property_name = property_value, property_name = property_value, ... )
2.2.3更改表的注释
ALTERTABLE t1 SET TBLPROPERTIES('comment' = 'new comment')
2.2.4添加Serde 属性
ALTERTABLE t1 [PARTITION part_spec] SET SERDE serde_class [WITH SERDEPROPERTIESserde_properties];
ALTERTABLE t1 [PARTITION part_spec] SET SERDEPROPERTIES serde_properties;
serde_properties:
: (property_name = property_value,property_name = property_value, ... )
2.2.5对表进行粪桶
ALTERTABLE table_name CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name,...)] INTO num_buckets BUCKETS;
2.2.6Alter Table Skewed
ALTERTABLE table_name SKEWED BY (col_name1, col_name2, ...) ON ([(col_name1_value,col_name2_value, ...) [, (col_name1_value, col_name2_value), ...][STORED ASDIRECTORIES];
2.2.7Alter Table Not Skewed
ALTERTABLE table_name NOT SKEWED;
2.2.8更改表或者分区的文件格式
ALTERTABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;
ALTERTABLE emp SET FILEFORMAT ORC;
2.2.8更改表或者分区是否受保护
ALTERTABLE table_name [PARTITION partition_spec] ENABLE|DISABLE NO_DROP [CASCADE];
ALTERTABLE table_name [PARTITION partition_spec] ENABLE|DISABLE OFFLINE;
2.2.9更改表或者分区的连接
ALTERTABLE t1 [PARTITION part_spec] CONCATENATE;
如果表或者分区包含很小的RCFile或者ORCFile,这上面的命令可以将他们惊醒merge
ALTERTABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;
2.2ALTER PARTITION (略)
2.3ALTER COLUMN
2.3.1改变列名、数据类型以及列的位置
ALITERTABLE t1 [PARTITION part_spec] CHANGE COLUMN old_column new_clomun column_type[COMMENT comment] [FIRST|AFTER column][CASCADE|RESTRICT]
CASCADE:级联操作,如果有视图或者约束,一并删除
RESTRICT:有严格限制,如果不存在视图或者约束才可以删除
ALTERTABLE c_order CHANGE COLUMN ofrom ocode INT COMMENT 'CHANGE COLUMN ofrom' AFTERage;
2.3.2添加或者替换列
ALTERTABLE table_name [PARTITION part_spec] ADD|REPLACE COLUMNS(column_namedata_type [COMMENT comment] ) [CASCADE|RESTRICT];
ALTERTABLE c_order ADD COLUMNS(revenue DECIMAL COMMENT 'Add Revenue Column')RESTRICT;
ALTERTABLE c_order REPLACE COLUMNS(revenues DECIMAL COMMENT 'Replace RevenueColumn') RESTRICT;
注意:替换列会把所有列替换掉
2.3.4根据部分分区该列明
ALTERTABLE foo PARTITION (ds='2008-04-08', hr=11) CHANGE COLUMN dec_column_namedec_column_name DECIMAL(38,18);
三 创建更改删除索引
3.1创建索引
CREATEINDEX index_name
ON TABLE base_table_name (col_name, ...)
AS index_type
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name=property_value,...)]
[IN TABLE index_table_name]
[
[ ROW FORMAT ...] STORED AS ...
| STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]
[COMMENT "index comment"];
通过给定的列进行索引
3.2更改索引
ALTERINDEX index_name ON table_name [PARTITION part_spec] REBUILD;
3.3删除索引
DROPINDEX index_name [IF EXIST] ON table_name;
四 创建、删除和重新加载函数
4.1创建函数
创建临时函数:
CREATETEMPORARY FUNCTION func_name AS class_name;
只能在session范围内使用,如果session失效,则不能使用这个函数
首先需要把你写的jar 通过ADD JAR命令添加到classpath
创建永久函数:
addjar /opt/data/UDFStripDoubleQuotes.jar;
CREATEFUNCTION [db_name.]function_name AS class_name
[USINGJAR|FILE|ARCHIVE 'file_uri' [,JAR|FILE|ARCHIVE 'file_uri']];
说白了就是把jar包放到HDFS上,然后指定这个函数是哪一个数据库的,然后跟着你的HDFS jar路径
CREATEFUNCTION hadoop.lu_str AS 'com.hive.udf.LowerAnd
UpperUDF'USING JAR 'hdfs:/var/hive/udf/lowerOrUpper.jar';
4.2删除函数
DROPFUNCTION [IF EXISTS] function_name;
4.3重新加载函数
RELOADFUNCTION;
五 创建、删除、授予、撤销权限
5.1创建和删除角色
CREATEROLE role_name;
DROPROLE role_name;
CREATEROLE hive_admin;
5.2将角色分配给用户
GRANTROLE role_name [, role_name] ... TO principal_specification
[,principal_specification] ...[WITH ADMIN OPTION]
GRANTROLE hive_admin TO USER hadoop;
5.3授权
GRANTpriv_type ON object_specification TO principal_specification[,principal_specification] ... [WITH GRANT OPTION]
5.3.1给角色授权
GRANTALL ON DATABASE d TO ROLE hive_admin;
5.3.2给组授权
GRANTALL ON TABLE emp TO GROUP g;
5.3.3给用户授权
GRANTSELECT,UPDATE,ALTER,DTOP ON TABLE emp TO USER hadoop;
5.4回收权限
REVOKE[GRANT OPTION FOR] priv_type [ON object_specification]
FROMprincipal_specification;
5.4.1回收角色权限
REVOKEALL ON DATABASE d FROM ROLE hive_admin;
5.4.2回收组的权限
REVOKEALL ON TABLE emp FROM GROUP g;
5.4.3回收用户的权限
REVOKESELECT,UPDATE,ALTER,DTOP ON TABLE emp FROM
USERhadoop;
5.5查看权限
SHOWGRANT principal_specification [ON object_specification [(column_list)]]
SHOWGRANT USER hadoop ON TABLE emp;
权限名称 含义
ALL 所有权限
ALTER 允许修改元数据(modifymetadata data of object)—表信息数据
UPDATE 允许修改物理数据(modifyphysical data of object)—实际数据
CREATE 允许进行Create操作
DROP 允许进行DROP操作
INDEX 允许建索引(目前还没有实现)
LOCK 当出现并发的使用允许用户进行LOCK和UNLOCK操作
SELECT 允许用户进行SELECT操作
SHOW_DATABASE 允许用户查看可用的数据库
六 Show
6.1SHOW DATABASES/SCHEMAS LIKE
都会列出metastore里定义的数据库 LIKE允许过滤
SHOWDATABASES LIKE "*oo*";
将会查出所有包含oo的数据库
6.2Show Tables/Views/Partitions/Indexes
6.2.1显示表
SHOWTABLES [IN database_name] ['*字符*']; 这里没有Like哦
6.2.2显示视图
SHOWVIEWS [IN/FROM database_name] [LIKE 'pattern_with_
wildcards'];
6.2.3显示分区
SHOWPARTITIONS table_name;
6.2.4显示表属性
SHOWTBLPROPERTIES tblname;
SHOWTBLPROPERTIES tblname("foo");
6.2.5SHOW CREATE TABLE
SHOWCREATE TABLE [db_name.]table_name|view_name;
6.2.6查看索引
SHOW[FORMATTED] (INDEX|INDEXES) ON table_with_index [(FROM|IN) db_name];
6.2.7查看表的列
SHOWCOLUMNS (FROM|IN) table_name [(FROM|IN) db_name];
SHOWCOLUMNS FROM emp IN hadoop;
6.2.8查看函数
SHOWFUNCTIONS "a.*"; //查看以a开始的函数
七 Describe
7.1描述数据库 DESCRIBEDATABASE
DESCRIBEDATABASE hadoop;
7.2描述表DESCRIBE TABLE
DESCRIBE TABLE emp;
7.3描述列
DESCRIBEFORMATTED emp.hiredate;
7.4描述分区
DESCRIBE[FORMATTED] film PARTITION part-spec;
DESCRIBEFORMATTED film_second_level_part PARTITION(area='
America',release_year='old');
hive常见的DDL操作相关推荐
- Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等
1. Hive基本操作 1.1DDL操作 1.1.1 创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_nam ...
- hive常见的DML操作
一 Load数据 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]INTO TABLE tablename [PARTITION (partcol1=va ...
- 2.数据湖DeltaLake之DDL操作
转载自 2.数据湖DeltaLake之DDL操作 前面讲了delta lake简介,特性及基本操作.本文主要是讲DeltaLake的DDL操作,实际上是依赖于spark datasourcev2 和 ...
- Hive常见面试问题(持续更新)
Hive常见面试问题 目录 Hive 内部表和外部表的区别,以及各自使用于哪种环境?Hive和传统数据库的区别? HiveRc 文件? Hive 分区? Hive 分区过多有何坏处以及分区时的注意事项 ...
- Hive常见的存储格式的区别与应用场景
Hive常见的存储格式的区别与应用场景 一.文件存储格式 行存储和列存储 1.TextFile 2.sequencefile 3.RC 4.orc(工作中常用) 5.parquet 二.四种存储格式分 ...
- Hive常见的面试题
总结下Hive的面试点 Hive可考察的内容有:基本概念.架构.数据类型.数据组织.DDL操作.函数.数据倾斜.SQL优化.数据仓库.面试数据分析工程师更多会考察DDL操作.函数.数据倾斜.Hive优 ...
- 大数据面试之Hive常见题目
大数据面试之Hive常见题目 1. Hive的架构 1.重点四个器:解释器(SQL Parser).Driver:编译器(Compiler),优化器(Optimizer),执行器(Executor) ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- 【02】Java进阶:18-MySQL基础、数据库概述、数据库的安装/卸载/启动/登录、SQL概述、DDL操作数据库、DDL操作表、DML增删改查、
day18-MySql基础 今日内容 数据库概述 数据库安装和卸载 SQL语句 DDL-----操作数据库,操作表 DML-----操作记录(增删改) DQL------操作记录(查) 学习目标 能够 ...
最新文章
- 学习使用React和Electron一次构建自己的桌面聊天应用程序
- QT Creater/VS2013的使用(快捷键,调试等)
- 测试点2错的来:1033 旧键盘打字 (20分)
- 一招明白URL和URI的区别
- 一个简单的JDBC通用工具
- PHP 在线 编辑 解析
- mysql整除、取余、四舍五入
- 【SpringCloud】was unable to refresh its cache! status = Cannot execute request on any known server
- CCF	2017-3-2 学生排队
- vue 组件模板template定义时的注意事项
- springboot-29-security(二)用户角色权限控制
- mybatis plus 事务管理器_学习MyBatis 框架
- 「题解」:[AHOI2012] 树屋阶梯
- 外贸客户类型及跟进策略、找客户渠道
- STM8L051F3_0d_基础介绍
- 服务器dump文件位置,使用windbg分析服务器的DUMP文件
- 水浒传 第三十六回 没遮拦追赶及时雨 船火儿夜闹浔阳江
- Word 注重页面细节才专业(添加页眉页脚,调整页边距,消灭孤行) | 职场人就应该这样用 Word
- FreeBSD中安装源的方法
- .netCHATING 10.4 for NET6-7.0-Crack
热门文章
- DCGAN baseline
- mysql varchar json_谈谈 MySQL 的 JSON 数据类型
- Java如何隐藏控制按键动画_Java动画短片当不移动鼠标光标时
- sitescope 监控mysql_LoadRunner通过SiteScope监控MySQL的性能
- audio标签的controls属性_HTML5 新增标签和属性
- 百度关键词点击ios_百度推广关键词点击价格高,如何处理?
- SQL2008附加数据库只读怎么修改
- java 计数器越界,[总结]-第二章 Java内存区域与内存溢出异常
- java using的用法_using的几种用法 C#
- 异常检测3——AutoEncoder异常检测