Hive 数据类型与连接
Hive 是一个用于处理大规模数据集的工具,支持多种数据类型以满足不同的需求。本文将详细介绍 Hive 的基本数据类型和集合数据类型。
一、Hive 基本数据类型
Hive 提供了多种基本数据类型,适用于不同的数据存储和处理需求:
数据类型 | 描述 | 长度 | 示例 |
---|---|---|---|
TINYINT | 1 字节有符号整数 | 1 byte | 20 |
SMALLINT | 2 字节有符号整数 | 2 bytes | 20 |
INT | 4 字节有符号整数 | 4 bytes | 20 |
BIGINT | 8 字节有符号整数 | 8 bytes | 20 |
BOOLEAN | 布尔类型,取值为 true 或 false | - | TRUE, FALSE |
FLOAT | 单精度浮点数 | 4 bytes | 3.14159 |
DOUBLE | 双精度浮点数 | 8 bytes | 3.14159 |
STRING | 字符串类型,可指定字符集 | 最大 2GB | 'now is the time’或"for all good men" |
TIMESTAMP | 时间戳类型 | - | ‘2023-10-01 12:00:00’ |
BINARY | 字节数组 | - | (binary data) |
注意
- Hive 的
STRING
类型相当于数据库中的VARCHAR
类型,但不能声明最大字符数,理论上可以存储 2GB 的字符数据。 - Hive 在处理时间时通常使用字符串格式存储日期和时间,支持灵活的时间字符串格式。
二、Hive 集合数据类型
Hive 还支持集合数据类型,这些数据类型允许存储复杂的数据结构。
数据类型 | 描述 | 语法示例 |
---|---|---|
STRUCT | 类似于 C 语言中的结构体,通过“点”符号访问元素内容。 | struct<first:STRING,last:STRING> |
MAP | 键-值对集合,使用数组表示法访问数据。 | map<STRING, STRING> |
ARRAY | 数组,相同类型元素的集合,每个元素有一个编号。 | array<STRING> |
例子
-
STRUCT 示例:
SELECT person.name.first FROM table;
-
MAP 示例:
SELECT person.address['city'] FROM table;
假设有一个
address
列,这个列的类型是MAP
,address
列存储了以下键-值对:
'city' -> 'New York'
'state' -> 'NY'
'zip' -> '10001'
- ARRAY 示例:
SELECT names[1] FROM table; -- 获取第二个名字
三、数据导入 Hive
在 Hive 中,数据的导入通常有两种方式:
-
Pull(自己获取数据):
通过工具、存储过程或 SQL 语句,从其他系统查询数据,经过处理后保存到 Hive 中。 -
Push(其他系统提供数据):
其他系统将数据保存为文件(如 TXT 和 CSV 格式),然后将文件导入 Hive。这通常涉及文件和表的映射关系。
四、Hive的连接
1. 直接使用 Hive 客户端
在 Linux 命令行下,你可以直接输入 hive
命令来启动 Hive 客户端。
hive
终端
$ hive
Logging initialized using configuration in /path/to/hive/conf/hive-log4j.properties
Hive CLI is running on Apache Hive <version> (Hive <version>)
Type "exit" or "quit" to quit.
hive (default)>
结果:
- 当看到提示符
hive (default)>
时,表示你已成功进入 Hive 客户端。 - 注意:这种方式仅能连接到本地的 Hive 服务。
2. 使用 Beeline 客户端
要使用 Beeline 客户端,首先需要启动被连接的 HiveServer2 服务。启动命令如下:
hiveserver2 &
连接 Beeline:
然后,你可以通过 Beeline 连接到 HiveServer2。启动 Beeline 客户端:
beeline
连接到 Hive:
在 Beeline 提示符下,使用以下命令连接到 Hive:
!connect jdbc:hive2://192.168.150.130:10000
终端
beeline> !connect jdbc:hive2://192.168.150.130:10000
Connecting to jdbc:hive2://192.168.150.130:10000
Enter username for jdbc:hive2://192.168.150.130:10000: root
Enter password for jdbc:hive2://192.168.150.130:10000: ********
结果:
- 输入连接信息后,你将被提示输入用户名和密码(如果需要)。
- 成功连接后,你就可以在 Beeline 中执行 SQL 查询。
3. 使用第三方工具连接
例如,使用 DataGrip 或其他 SQL 客户端工具连接到 Hive。以 DataGrip 为例:
设置 DataGrip 连接:
- 打开 DataGrip。
- 创建新的数据源,选择 Hive 作为数据库类型。
- 填入连接信息:
- 驱动: 选择 Hive JDBC 驱动。
- URL:
jdbc:hive2://192.168.150.130:10000
- 用户名和密码(如果需要)。
结果:
- 点击“测试连接”确认连接成功。
- 成功连接后,可以在 DataGrip 中编写和执行 Hive 查询。
标签:数仓,数据类型,hive,Hive,Beeline,操作,连接,客户端 From: https://blog.csdn.net/m0_58076578/article/details/142633874