Hive 的数据类型

news/2024/11/8 15:05:27/

基本类型

整型
  • TINYINT: 1字节整数,范围从 -128 到 127。
  • SMALLINT: 2字节整数,范围从 -32,768 到 32,767。
  • INT: 4字节整数,范围从 -2,147,483,648 到 2,147,483,647。
  • BIGINT: 8字节整数,范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
布尔型
  • BOOLEAN: 真(TRUE)或假(FALSE)。
浮点型
  • FLOAT: 单精度浮点数,通常用于不需要高精度的情况。
  • DOUBLE: 双精度浮点数,提供更高的精度。
定点数
  • DECIMAL: 用户定义的精度和小数位数,适合金融计算等需要精确数值的场景。
字符型
  • STRING: 可变长度的字符串。
  • VARCHAR: 可变长度的字符串,需要指定最大长度。
  • CHAR: 固定长度的字符串,需要指定长度。
日期时间型
  • TIMESTAMP: 包含日期和时间,但不包含时区信息。
  • TIMESTAMP WITH LOCAL TIME ZONE: 包含日期、时间和时区信息。
  • DATE: 只包含日期部分。
二进制型
  • BINARY: 字节序列,适合存储二进制数据。

复合类型

结构体(Structs)
  • 结构体是由多个字段组成的数据类型,每个字段有自己的名称和类型。可以通过字段名访问结构体中的值。
映射(Maps)
  • 映射是一组键值对,键必须是唯一的。可以通过键访问映射中的值。
数组(Arrays)
  • 数组是一系列相同类型元素集合。可以通过索引访问数组中的元素。

类型层次结构

Hive 的类型系统遵循一定的层次结构,允许某些类型之间的隐式转换:

  • Number 类型之间可以隐式转换(如 TINYINT 转换为 INT)。
  • STRING 可以隐式转换为 DOUBLE
  • BOOLEAN 可以隐式转换为 Number

时间戳注意事项

  • TIMESTAMP 不包含时区信息,适用于不需要考虑时区的场景。
  • TIMESTAMP WITH LOCAL TIME ZONE 包含时区信息,适用于需要精确时区的场景。、

假设我们有一个用户表 users,其结构如下:

CREATE TABLE users (id BIGINT,name STRING,gender CHAR(1),active BOOLEAN,created_at TIMESTAMP,attributes MAP<STRING, STRING>,address STRUCT<street: STRING, city: STRING, zip: STRING>
);

在这个表中:

  • id 是一个 8 字节的整数。
  • name 是一个可变长度的字符串。
  • gender 是一个固定长度为 1 的字符串。
  • active 是一个布尔值。
  • created_at 是一个时间戳。
  • attributes 是一个映射,键和值都是字符串。
  • address 是一个结构体,包含街道、城市和邮政编码。

下面是如何向 users 表中插入数据:

插入单行/多行数据

INSERT INTO users (id, name, gender, active, created_at, attributes, address)
VALUES (1,'John Doe','M',TRUE,'2023-10-01 12:34:56',MAP('age', '30', 'email', 'john.doe@example.com'),NAMED_STRUCT('street', '123 Main St', 'city', 'Anytown', 'zip', '12345')
);
INSERT INTO users (id, name, gender, active, created_at, attributes, address)
VALUES (1, 'John Doe', 'M', TRUE, '2023-10-01 12:34:56', MAP('age', '30', 'email', 'john.doe@example.com'), NAMED_STRUCT('street', '123 Main St', 'city', 'Anytown', 'zip', '12345')),(2, 'Jane Smith', 'F', FALSE, '2023-10-02 13:45:00', MAP('age', '28', 'email', 'jane.smith@example.com'), NAMED_STRUCT('street', '456 Elm St', 'city', 'Othertown', 'zip', '67890'));

注意事项

  1. 时间戳格式:确保时间戳的格式正确,通常为 'YYYY-MM-DD HH:MM:SS'
  2. MAP 和 STRUCT使用 MAP 和 NAMED_STRUCT 函数来创建映射和结构体
  3. 布尔值:布尔值使用 TRUE 或 FALSE

http://www.ppmy.cn/news/1545383.html

相关文章

无人机之中继通信技术篇

一、定义与原理 无人机中继通信技术是指通过无人机搭载中继设备&#xff0c;将信号从一个地点传输到另一个地点&#xff0c;从而延长通信距离并保持较好的通信质量。其原理类似于传统的中继通信&#xff0c;即在两个终端站之间设置若干中继站&#xff0c;中继站将前站送来的信号…

PHP-FPM 性能配置优化

PHP-FPM 性能配置优化 4 核 8 G 服务器大约可以开启 500 个 PHP-FPM&#xff0c;极限吞吐量在 580 qps &#xff08;Query Per Second 每秒查询数&#xff09;左右。 Nginx php-fpm 是怎么工作的&#xff1f; php-fpm 全称是 PHP FastCGI Process Manager 的简称&#xff0c;…

Linux驱动开发(3):字符设备驱动

上一章节我们了解到什么是内核模块&#xff0c;模块的加载卸载详细过程以及内核模块的使用等内容。 本章&#xff0c;我们将学习驱动相关的概念&#xff0c;理解字符设备驱动程序的基本框架&#xff0c;并从源码上分析字符设备驱动实现和管理。 主要内容有如下五点&#xff1a;…

【JAVA毕业设计】基于Vue和SpringBoot的师生健康管理系统

博主说明&#xff1a;本文项目编号 T 052 &#xff0c;文末自助获取源码 \color{red}{T052&#xff0c;文末自助获取源码} T052&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

上云管理之Git/GitHub/GitLab 详解(一)

上云管理之Git/GitHub/GitLab 详解(一&#xff09; 引言1. GIT软件安装2.初始化配置与提交代码2.1. 初始化配置2.2 本地仓库代码提交2.2.1 初始化仓库并提交代码2.2.2 再次提交已修改的代码2.2.3 文件夹层次结构代码提交 2.3 GIT 的文件状态 3.GIT 分支3.1. 分支的切换与删除3.…

2-142【软件无线电原理与应用作业】基于matlab的圆形阵列的波束形成进行仿真

【软件无线电原理与应用作业】基于matlab的圆形阵列的波束形成进行仿真&#xff0c;具有14页文档。假设发射信号载频为1GHz&#xff0c;圆形阵列半径为0.8米&#xff0c;在圆周上均匀布置30个阵元。1.画出指向0度的方向图。2.如果目标在0度&#xff0c;有一不相干的干扰信号在3…

测试开发面试题记录

1. TCP与UDP的区别及应用场景 TCP (传输控制协议)&#xff1a; 特点&#xff1a;面向连接&#xff0c;可靠性高&#xff0c;数据顺序保证&#xff0c;流量控制和拥塞控制。应用场景&#xff1a;文件传输&#xff08;FTP&#xff09;&#xff0c;电子邮件&#xff08;SMTP&#…

丹摩征文活动|详解 DAMODEL(丹摩智算)平台:为 AI 开发者量身打造的智算云服务

本文 什么是 DAMODEL&#xff08;丹摩智算&#xff09;&#xff1f;DAMODEL 的平台特性快速上手 DAMODEL 平台GPU 实例概览创建 GPU 云实例 储存选项技术支持与社区服务结语 在人工智能领域的飞速发展中&#xff0c;计算资源与平台的选择变得尤为重要。为了帮助 AI 开发者解决高…