Hive中库和表的常见操作
时间:2022-07-26
本文章向大家介绍Hive中库和表的常见操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
@
目录
库的常见操作
1.增
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment] // 库的注释说明
[LOCATION hdfs_path] // 库在hdfs上的路径
[WITH DBPROPERTIES (property_name=property_value, ...)]; // 库的属性
create database if not exists mydb2
comment 'this is my db'
location 'hdfs://hadoop101:9000/mydb2'
with dbproperties('ownner'='jack','tel'='12345','department'='IT');
2.删
drop database 库名: 只能删除空库
drop database 库名 cascade: 删除非空库
3.改
use 库名: 切换库
dbproperties: alter database mydb2 set dbproperties('ownner'='tom','empid'='10001');
同名的属性值会覆盖,之前没有的属性会新增
4.查
show databases: 查看当前所有的库
show tables in database: 查看库中所有的表
desc database 库名: 查看库的描述信息
desc database extended 库名: 查看库的详细描述信息
表的常见操作
1.增
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)] //表中的字段信息
[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]
[ROW FORMAT row_format] // 表中数据每行的格式,定义数据字段的分隔符,集合元素的分隔符等
[STORED AS file_format] //表中的数据要以哪种文件格式来存储,默认为TEXTFILE(文本文件)
可以设置为SequnceFile或 Paquret,ORC等
[LOCATION hdfs_path] //表在hdfs上的位置
- 建表时,不带EXTERNAL,创建的表是一个MANAGED_TABLE(管理表,内部表)
- 建表时,带EXTERNAL,创建的表是一个外部表!
外部表和内部表的区别是:
- 内部表(管理表)在执行删除操作时,会将表的元数据(schema)和表位置的数据一起删除!
- 外部表在执行删除表操作时,只删除表的元数据(schema),不会删除在hive上的实际数据。
在企业中,创建的都是外部表!在hive中表是廉价的,数据是珍贵的!
建表语句执行时:
- hive会在hdfs生成表的路径;
- hive还会向MySQl的metastore库中掺入两条表的信息(元数据)
管理表和外部表之间的转换: 将表改为外部表:
alter table p1 set tblproperties('EXTERNAL'='TRUE');
将表改为管理表:
alter table p1 set tblproperties('EXTERNAL'='FALSE');
注意:在hive中语句中不区分大小写,但是在参数中严格区分大小写!
2.删
drop table 表名:删除表
3.改
4.查
desc 表名: 查看表的描述
desc formatted 表名: 查看表的详细描述
- ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug
- Serverless 应用开发指南:基于 Serverless 与 Lambda 的微信公共平台
- Serverless 应用开发指南:serverless 的 hello, world
- 通过一组RESTful API暴露CQRS系统功能
- 通过使用结构化数据 JSON-LD,我为网站带来了更多的流量
- 使用 OWIN Self-Host ASP.NET Web API 2
- c#开源消息队列中间件EQueue 教程
- Serverless 框架 OpenWhisk 开发指南:使用 Node.js 编写 hello, world
- GOTO Berlin: Web API设计原则
- 使用 ServiceStack 构建跨平台 Web 服务
- 使用 OpenWhisk 自建 Serverless 服务
- 如何在 8 小时内开发上线一个在线表单系统
- 让Response.Redirect页面重定向更有效率
- 使用 adr 轻松创建 “程序员友好” 的轻量级文档
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Stream API
- Lambda表达式
- ES的Query、Filter、Metric、Bucketing使用详解
- Golang的单引号、双引号与反引号
- CentOS配置docker和docker-compose
- 给Linux增加swap内存
- 网鼎杯2018-Fakebook
- 强网杯2019-高明的黑客
- CISCN2019华北赛区Day2-HackWorld
- ZJCTF-NiZhuanSiWei
- xxe漏洞学习
- De1CTF2019-SSRFME
- BJDCTF2nd-EasyMd5
- BJDCTF2nd-fakegoogle
- java_Scanner类、Random类、ArrayList 类的使用