一  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操作相关推荐

  1. 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 ...

  2. hive常见的DML操作

    一 Load数据 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]INTO TABLE tablename [PARTITION (partcol1=va ...

  3. 2.数据湖DeltaLake之DDL操作

    转载自  2.数据湖DeltaLake之DDL操作 前面讲了delta lake简介,特性及基本操作.本文主要是讲DeltaLake的DDL操作,实际上是依赖于spark datasourcev2 和 ...

  4. Hive常见面试问题(持续更新)

    Hive常见面试问题 目录 Hive 内部表和外部表的区别,以及各自使用于哪种环境?Hive和传统数据库的区别? HiveRc 文件? Hive 分区? Hive 分区过多有何坏处以及分区时的注意事项 ...

  5. Hive常见的存储格式的区别与应用场景

    Hive常见的存储格式的区别与应用场景 一.文件存储格式 行存储和列存储 1.TextFile 2.sequencefile 3.RC 4.orc(工作中常用) 5.parquet 二.四种存储格式分 ...

  6. Hive常见的面试题

    总结下Hive的面试点 Hive可考察的内容有:基本概念.架构.数据类型.数据组织.DDL操作.函数.数据倾斜.SQL优化.数据仓库.面试数据分析工程师更多会考察DDL操作.函数.数据倾斜.Hive优 ...

  7. 大数据面试之Hive常见题目

    大数据面试之Hive常见题目 1. Hive的架构 1.重点四个器:解释器(SQL Parser).Driver:编译器(Compiler),优化器(Optimizer),执行器(Executor) ...

  8. 大数据单机学习环境搭建(5)Hive建表DDL详解

    专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...

  9. 【02】Java进阶:18-MySQL基础、数据库概述、数据库的安装/卸载/启动/登录、SQL概述、DDL操作数据库、DDL操作表、DML增删改查、

    day18-MySql基础 今日内容 数据库概述 数据库安装和卸载 SQL语句 DDL-----操作数据库,操作表 DML-----操作记录(增删改) DQL------操作记录(查) 学习目标 能够 ...

最新文章

  1. 学习使用React和Electron一次构建自己的桌面聊天应用程序
  2. QT Creater/VS2013的使用(快捷键,调试等)
  3. 测试点2错的来:1033 旧键盘打字 (20分)
  4. 一招明白URL和URI的区别
  5. 一个简单的JDBC通用工具
  6. PHP 在线 编辑 解析
  7. mysql整除、取余、四舍五入
  8. 【SpringCloud】was unable to refresh its cache! status = Cannot execute request on any known server
  9. CCF 2017-3-2 学生排队
  10. vue 组件模板template定义时的注意事项
  11. springboot-29-security(二)用户角色权限控制
  12. mybatis plus 事务管理器_学习MyBatis 框架
  13. 「题解」:[AHOI2012] 树屋阶梯
  14. 外贸客户类型及跟进策略、找客户渠道
  15. STM8L051F3_0d_基础介绍
  16. 服务器dump文件位置,使用windbg分析服务器的DUMP文件
  17. 水浒传 第三十六回 没遮拦追赶及时雨 船火儿夜闹浔阳江
  18. Word 注重页面细节才专业(添加页眉页脚,调整页边距,消灭孤行) | 职场人就应该这样用 Word
  19. FreeBSD中安装源的方法
  20. .netCHATING 10.4 for NET6-7.0-Crack

热门文章

  1. DCGAN baseline
  2. mysql varchar json_谈谈 MySQL 的 JSON 数据类型
  3. Java如何隐藏控制按键动画_Java动画短片当不移动鼠标光标时
  4. sitescope 监控mysql_LoadRunner通过SiteScope监控MySQL的性能
  5. audio标签的controls属性_HTML5 新增标签和属性
  6. 百度关键词点击ios_百度推广关键词点击价格高,如何处理?
  7. SQL2008附加数据库只读怎么修改
  8. java 计数器越界,[总结]-第二章 Java内存区域与内存溢出异常
  9. java using的用法_using的几种用法 C#
  10. 异常检测3——AutoEncoder异常检测