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 查询。

相关推荐
大霸王龙21 分钟前
软件工程的软件生命周期通常分为以下主要阶段
大数据·人工智能·旅游
一只爱撸猫的程序猿26 分钟前
构建一个简单的智能文档问答系统实例
数据库·spring boot·aigc
nanzhuhe40 分钟前
sql中group by使用场景
数据库·sql·数据挖掘
消失在人海中1 小时前
oracle sql 语句 优化方法
数据库·sql·oracle
Clang's Blog1 小时前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
zzc9211 小时前
MATLAB仿真生成无线通信网络拓扑推理数据集
开发语言·网络·数据库·人工智能·python·深度学习·matlab
点赋科技1 小时前
沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
大数据·人工智能
未来之窗软件服务1 小时前
JAVASCRIPT 前端数据库-V1--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟数据库
YSGZJJ1 小时前
股指期货技术分析与短线操作方法介绍
大数据·人工智能
Doker 多克1 小时前
Flink CDC —部署模式
大数据·flink