Hive DDL 指南:创建与管理表

3 下载量 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表至关重要。