Hive DDL 指南:创建与管理表
111 浏览量
更新于2024-08-29
收藏 2.87MB PDF 举报
"Hive DDL 之 表"
在Hive中,DDL(Data Definition Language)用于管理数据库的结构,包括创建、修改和删除表等操作。本篇主要聚焦于Hive中的表创建,涉及的关键知识点如下:
1. 创建表(CREATE TABLE)
- `CREATE TABLE` 命令用于创建一个新的表。如果表名已存在且未使用`IF NOT EXISTS`选项,系统会抛出异常。
- `EXTERNAL TABLE` 关键字表示创建的是外部表,外部表的元数据由Hive管理,但数据存储在用户指定的HDFS路径上,删除表时不会删除数据。
2. 表属性(COMMENT)
- `COMMENT` 用于为表或列添加注释,提供对表或列的描述信息。
3. 分区表(PARTITIONED BY)
- `PARTITIONED BY` 用于创建分区表,根据指定的列进行数据分区,提高查询效率。例如,一个时间序列数据的表可以按年、月、日进行分区。
4. 分桶表(CLUSTERED BY & SORTED BY)
- `CLUSTERED BY` 创建基于指定列的分桶表,将数据划分为多个桶,有利于并行处理和优化JOIN操作。
- `SORTED BY` 允许对分桶内的数据进行排序,通常是与`CLUSTERED BY`一起使用,以确保桶内数据有序。
5. 行格式(ROW FORMAT)
- `ROW FORMAT` 定义了数据的存储格式,包括字段分隔符、集合项分隔符、映射键分隔符以及行终止符等。
- `ROW FORMAT DELIMITED` 指定了数据是分隔的,可以指定不同的分隔符。
- `SERDE`(Serializer/Deserializer)允许用户自定义数据的序列化和反序列化方式。如果不指定,Hive会使用默认的SerDe。
6. 存储文件类型(STORED AS)
- `STORED AS` 用于指定表数据的存储格式,常见的有:
- `SEQUENCEFILE`:二进制序列化文件,高效但不可读。
- `TEXTFILE`:文本格式,每个字段之间由分隔符分隔,可读性好但效率较低。
- `ORC` 或 `PARQUET`:列式存储格式,适合大数据处理,压缩率高,读写性能优秀。
7. 位置(LOCATION)
- `LOCATION` 指定外部表数据的实际存储路径,通常是在HDFS上。
8. 其他细节
- `BUCKETS` 用于指定分桶的数量,常与`CLUSTERED BY`一起使用。
- `WITH SERDEPROPERTIES` 允许设置SerDe的特定属性。
以上就是Hive DDL创建表时涉及的主要知识点,理解并掌握这些概念对于有效管理和操作Hive表至关重要。
点击了解资源详情
2024-02-01 上传
2023-05-16 上传
2023-09-16 上传
2024-11-28 上传
2023-06-08 上传
weixin_38655998
- 粉丝: 11
- 资源: 890
最新资源
- 用于学习vue2、node、MySQL的自研项目.zip
- Python-with-machine-learning
- ufmt:格式化所有代码文件!
- LinhProfile
- 这个是很久之前自己学习MySQL所做的一些笔记.zip
- FLARE21nnUNetBaseline:FLARE21的基线nnUNet模型
- 抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java
- workshop-vue:WorkShop Vue,主要概念介绍
- white-helmets:在白头盔纸上复制RT Disinfo的代码
- Java SSM基于JavaEE的网上图书分享系统【优质毕业设计、课程设计项目分享】
- Panzer-Predicament:作者:安德鲁·李,克里斯托弗·敏和凯文·墨菲
- pantheon-helper:用于 Pantheon 服务的常用 Git 和 Drush 命令的 Bash 菜单
- 孤独聊天
- 源码主要用于学习:1. Spring Boot+Hadoop+Hive+Hbase实现数据基本操作,Hive数据源使.zip
- resr_rpwq.dll库文件
- Kapok 超简单的序列化库