Hive数仓操作(二)

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>

例子

  1. STRUCT 示例

    sql 复制代码
    SELECT person.name.first FROM table;
  2. MAP 示例

    sql 复制代码
    SELECT person.address['city'] FROM table;

    假设有一个 address 列,这个列的类型是 MAPaddress 列存储了以下键-值对:

  • 'city' -> 'New York'
  • 'state' -> 'NY'
  • 'zip' -> '10001'
  1. ARRAY 示例

    sql 复制代码
    SELECT names[1] FROM table;  -- 获取第二个名字

三、数据导入 Hive

在 Hive 中,数据的导入通常有两种方式:

  • Pull(自己获取数据)

    通过工具、存储过程或 SQL 语句,从其他系统查询数据,经过处理后保存到 Hive 中。

  • Push(其他系统提供数据)

    其他系统将数据保存为文件(如 TXT 和 CSV 格式),然后将文件导入 Hive。这通常涉及文件和表的映射关系。


四、Hive的连接

1. 直接使用 Hive 客户端

在 Linux 命令行下,你可以直接输入 hive 命令来启动 Hive 客户端。

bash 复制代码
hive
终端
plaintext 复制代码
$ 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 服务。启动命令如下:

bash 复制代码
hiveserver2 &
连接 Beeline:

然后,你可以通过 Beeline 连接到 HiveServer2。启动 Beeline 客户端:

bash 复制代码
beeline
连接到 Hive:

在 Beeline 提示符下,使用以下命令连接到 Hive:

bash 复制代码
!connect jdbc:hive2://192.168.150.130:10000
终端
plaintext 复制代码
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 连接:
  1. 打开 DataGrip。
  2. 创建新的数据源,选择 Hive 作为数据库类型。
  3. 填入连接信息:
    • 驱动: 选择 Hive JDBC 驱动。
    • URL : jdbc:hive2://192.168.150.130:10000
    • 用户名密码(如果需要)。
结果:
  • 点击"测试连接"确认连接成功。
  • 成功连接后,可以在 DataGrip 中编写和执行 Hive 查询。

相关推荐
杰克逊的日记16 分钟前
Flink运维要点
大数据·运维·flink
Musennn27 分钟前
MySQL刷题相关简单语法集合
数据库·mysql
Think Spatial 空间思维1 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
hnlucky1 小时前
Windows 上安装下载并配置 Apache Maven
java·hadoop·windows·学习·maven·apache
laowangpython2 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
mooyuan天天2 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错
运维-大白同学2 小时前
go-数据库基本操作
开发语言·数据库·golang
R-sz2 小时前
通过从数据库加载MinIO配置并初始化MinioClient,spring boot之Minio上传
数据库·oracle
洛阳泰山3 小时前
Windows系统部署MongoDB数据库图文教程
数据库·windows·mongodb
医只鸡腿子3 小时前
3.2/Q2,Charls最新文章解读
数据库·数据挖掘·数据分析·深度优先·数据库开发