Hive数仓操作(二)

devtools/2024/10/18 16:46:36/

Hive 数据类型与连接

Hive 是一个用于处理大规模数据集的工具,支持多种数据类型以满足不同的需求。本文将详细介绍 Hive 的基本数据类型和集合数据类型。

一、Hive 基本数据类型

Hive 提供了多种基本数据类型,适用于不同的数据存储和处理需求:

数据类型描述长度示例
TINYINT1 字节有符号整数1 byte20
SMALLINT2 字节有符号整数2 bytes20
INT4 字节有符号整数4 bytes20
BIGINT8 字节有符号整数8 bytes20
BOOLEAN布尔类型,取值为 true 或 false-TRUE, FALSE
FLOAT单精度浮点数4 bytes3.14159
DOUBLE双精度浮点数8 bytes3.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 示例

    SELECT person.name.first FROM table;
    
  2. MAP 示例

    SELECT person.address['city'] FROM table;
    

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

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


http://www.ppmy.cn/devtools/122084.html

相关文章

KEYENCE Programming Contest 2024(AtCoder Beginner Contest 374) 题解

A - Takahashi san 2 Problem Statement KEYENCE has a culture of addressing everyone with the suffix “-san,” regardless of roles, age, or positions. You are given a string S consisting of lowercase English letters. If S ends with san, print Yes; otherwi…

【力扣 | SQL题 | 每日四题】力扣1783,1757,1747,1623,1468,1661

昨天晚上睡着了&#xff0c;今天把昨天的每日一题给补上。 1. 力扣1783&#xff1a;大满贯数量 1.1 题目&#xff1a; 表&#xff1a;Players ------------------------- | Column Name | Type | ------------------------- | player_id | int | | player_na…

C++ | Leetcode C++题解之第458题可怜的小猪

题目&#xff1a; 题解&#xff1a; class Solution { public:int poorPigs(int buckets, int minutesToDie, int minutesToTest) {if (buckets 1) {return 0;}vector<vector<int>> combinations(buckets 1,vector<int>(buckets 1));combinations[0][0] …

CentOS 7 系统中安装与配置 Telnet 服务详解(使用root登录)

目录 前言1. 安装 Telnet 服务端2. 配置 Telnet 服务允许 root 用户登录3. 启动与管理 Telnet 服务4. 配置防火墙允许 Telnet 通信5. 注册 Telnet 服务6. 添加 pts/0 终端7. 重启 xinetd 服务8. 在 Windows 本地终端安装 Telnet 客户端结语 前言 Telnet 是一种网络协议&#x…

vite学习教程04、vue集成axios封装request工具类及应用

文章目录 前言1、安装axios2、封装request工具类3、封装api请求工具4、实战&#xff1a;vue中使用api请求工具类资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝3W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技…

windows C++-使用任务和 XML HTTP 请求进行连接(一)

本文会演示如何将 IXMLHTTPRequest2 和 IXMLHTTPRequest2Callback 接口与任务结合使用&#xff0c;以将 HTTP GET 和 POST 请求发送至通用 Windows 平台 (UWP) 应用中的 Web 服务。 通过将 IXMLHTTPRequest2 与任务组合在一起&#xff0c;你可以编写通过其他任务编写的代码。 例…

Prompt 初级版:构建高效对话的基础指南

Prompt 初级版&#xff1a;构建高效对话的基础指南 文章目录 Prompt 初级版&#xff1a;构建高效对话的基础指南一 “标准”提示二 角色提示三 多范例提示四 组合提示五 规范化提示 本文介绍了提示词的基础概念与不同类型&#xff0c;帮助用户更好地理解如何在对话中构建有效的…

基于Pcap4j收发自定义协议报文(注意事项/踩坑总结)

大致内容&#xff1a;完善自定义的Cat21协议&#xff0c;补充至少5个数据类型不同的协议字段 用户输入Cat21协议字段&#xff0c;发送数据包 用户捕获Cat21数据包&#xff0c;打印输出字段值 本篇博客是直接将自定义协议报文封装在MAC帧的payload中的。 一、Cat21Packet类 1…