Hive的常用建库建表语句

Hive的常用建库建表语句

😘温馨提示,本文仅描述了部分Hive建库建表语句,如需要深入学习,请进入CSDN与部分大佬们学习深造 Hive的入门语句 一、Hive的建库语句 1.语法结构如下👇👇👇 create database <name> comment <database exegesis> -- 可添加关

😘温馨提示,本文仅描述了部分Hive建库建表语句,如需要深入学习,请进入CSDN与部分大佬们学习深造

Hive的入门语句

一、Hive的建库语句

1.语法结构如下👇👇👇

create database <name>
  comment <database exegesis>  -- 可添加关于这个库的注释
  location <hdfs Path>;  -- 可以指定这个库保存在HDFS的位置

一般建库不指定location时会默认将表的位置放在【hive-site.xml】中已定义过的目录下

2.普通的创建库的方式【后以建dsj库为例】

create database dsj;

3. 具有判断库是否存在的语句

create database if not exists dsj;

4.不仅判断库是否存在,并加入注释

create database if not exists dsj comment '这是存放大数据相关数据的库';

二、查看库的基本语句

1.查看所有Hive库

show databases;

2.查看库的详细信息

show database extended dsj;

3.使用正则的方式查看库

show databases like 'd*';

4.查看目前正在使用的库

select current_database();

5.查看已被创建的表的创建语句

show create database dsj;

三、删除库的基本语句

1.语法结构如下👇👇👇

drop database <Database Name>;

2. 普通的删库语句

drop database dsj;

3.具有判断的删库语句

drop database if exists dsj;

4.如果内部有表的特殊删库语句【具有风险!!!此语句会将连库和表一并删除】

drop database if exists dsj cascade;

drop database dsj cascade;

四、切换库

1. 只有一个语句👇👇👇

use <Database Name>; --与使用库的语句一致

五、创建表的基本语句

1.语法结构如下👇👇👇

create <external> table <if not exists> <Table Name>
(
  <column Name> <Type> <comment> --这里写字段名和类型以及注释
)
<partitioned> <by> <[PartitionName] [Partition_Type] [comment]>  --这里写动态分区的分区名,类型以及注释
<row> <format> <delimited | AVRO> --以字符格式分隔 或 以序列化的数据格式
<stored> <as> <textfile | orc | parquet> --保存为文本文件及其他格式
<location> <hdfs_path>;

对应的资料

1. PARQUET 格式

PARQUET 是一种开源的列式存储格式,广泛用于大数据处理系统,如Apache Hive、Apache Spark、Apache Drill等。它是基于Apache Arrow项目开发的,适用于处理半结构化或嵌套数据,支持多种数据类型。

特点:

  • 列式存储:数据按列而不是按行存储,这使得针对特定列的查询更加高效,因为只需读取所需的列而不是整个行。

  • 高压缩率:由于列中通常包含重复数据,PARQUET能够非常有效地进行压缩,从而减少存储空间。

  • 支持嵌套数据:PARQUET格式能够高效地存储复杂的数据结构,如嵌套的JSON或Avro对象。

  • 跨平台:支持多种数据处理框架,如Hive、Presto、Impala等。

  • 自描述性:PARQUET文件内嵌了元数据,包含了数据的模式信息,可以方便地进行数据的读取和解析。

使用场景:

  • 适合大数据分析、数据仓库以及机器学习等需要快速读取特定列的场景。

  • 当处理数据包含多层嵌套结构(如JSON)的情况时,PARQUET是理想选择。

示例:

sql

复制代码

CREATE TABLE example_parquet ( id INT, name STRING, age INT ) STORED AS PARQUET;

2. ORC 格式

ORC (Optimized Row Columnar) 是Hadoop生态系统中的一种高效的列式存储格式,最初由Apache Hive项目开发。它与PARQUET类似,也支持高效的数据压缩和快速读取,但在某些方面提供了更优化的性能,尤其是在使用Hive时。

特点:

  • 列式存储:数据按列而不是按行存储,适合快速查询特定列。

  • 高度优化的压缩:ORC格式采用了高级的压缩技术,通常能比PARQUET格式提供更高的压缩率。

  • 支持轻量级的元数据存储:ORC文件包含了大量的元数据(例如列的最小值、最大值、数据类型等),使得查询时能够跳过不必要的数据块,进一步提高查询性能。

  • 查询性能优化:ORC支持“轻量级扫描”,通过存储更精确的统计信息来加速查询,尤其适合大规模数据扫描的场景。

  • Hive集成:ORC是Hive默认的存储格式,因此在使用Hive时,ORC格式通常表现更好。

使用场景:

  • 主要用于Hive环境,尤其是数据仓库的场景,能够提供极高的压缩比和查询性能。

  • 数据量庞大的分析场景,尤其是对于只需要查询特定列的聚合操作,ORC的优势尤为明显。

示例:

sql

复制代码

CREATE TABLE example_orc ( id INT, name STRING, age INT ) STORED AS ORC;

对比:PARQUET vs ORC

特性

PARQUET

ORC

存储类型

列式存储

列式存储

压缩比

支持高效压缩,但压缩比通常稍低

提供更高的压缩比

查询性能

对于复杂查询和多种数据类型查询较好

在Hive中查询性能更优化,特别是聚合查询

数据类型支持

支持各种复杂数据类型,尤其适合嵌套数据

主要优化针对结构化数据,复杂类型支持较弱

跨平台支持

广泛支持,如Hive、Presto、Spark等

主要与Hive紧密集成,但也支持其他平台

使用场景

适合多种数据处理平台,尤其是嵌套数据

适合Hive环境和大规模的批量数据处理

总结:

  • PARQUET:更适合多平台支持和复杂数据类型的存储,尤其适合嵌套的JSON数据。

  • ORC:在Hive环境中表现更优,适合大数据批量处理、优化查询和高效的压缩。

2.创建一个基本的内部表

create table dsj
(
  group INT,  --组别
  name STRING,  --组员名字
  role STRING  --职责
)
row format delimited fields terminated by ','; --以逗号做分隔

3.创建一个基本的外部表

create external table if not exists dsj
(
  group INT,  --组别
  name STRING,  --组员名字
  role STRING  --职责
)
row format delimited fileds terminated by ','  --以逗号做分隔
location '/hive/dsj/file'; --设置保存的路径

4.创建一个基本的分区表

create external table if not exists dsj
(
  group INT,  --组别
  name STRING,  --组员名字
  role STRING  --职责
)
row format delimited fileds terminated by ','  --以逗号做分隔
partitioned by (class STRING)  --设置分区为class(班级)
location '/hive/dsj/file';  --设置保存的路径

六、查看表的基本语句

1. 查看当前库的表

show tables;

2.查看未使用时的库中的表

show tables in dsj;  --这里的dsj是库名

3.查看库中以指定格式的表

show tables like 'd*';

4.查看表信息

desc dsj;

5.查看表的详细信息【不友好的格式】

desc extended dsj;

6.查看表的详细信息【友好的格式】

desc formatted dsj;

7.查看分区信息

show partitions dsj;

8.查看已建表的建表语句

show create table 

参考资料

Hive 常用的DDL语句大全 建库建表 详细_hive ddl语句-CSDN博客

LICENSED UNDER CC BY-NC-SA 4.0