当前位置: 首页 > news >正文

Hive 的数据类型

基本类型

整型
  • 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.lryc.cn/news/479500.html

相关文章:

  • 2024下半年软考考后估分,快来预约!
  • 第8章 利用CSS制作导航菜单作业
  • 基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
  • linux强制修改mysql的root账号密码
  • CentOS系统查看CPU、内存、操作系统等信息
  • 针对解决前后端BUG的个人笔记
  • 5G时代已来:我们该如何迎接超高速网络?
  • 企业级-实现Redis封装层
  • SpringBoot使用ApplicationContext.getBean启动报空指针处理记录
  • MongoDB Shell 基本命令(三)聚合管道
  • Go语言的内置容器
  • HCIP考试怎样预约?随时可以考试吗?
  • 香港航空 阿里滑块 acw_sc__v3 分析
  • JS传统函数中常见的 this 绑定问题
  • 跨域问题以及使用vscode的LiveServer插件跨域访问
  • 现代Web开发:WebSocket 实时通信详解
  • 《深度学习》——深度学习基础知识(全连接神经网络)
  • nginx 部署2个相同的vue
  • 利用Java easyExcel库实现高效Excel数据处理
  • Vulnhub靶场 Metasploitable: 1 练习(上)
  • 《Python编程实训快速上手》第二天--列表与元组
  • jangow靶机
  • 使用UDP协议传输视频流!(分片、缓存)
  • Pinia小菠萝(状态管理器)
  • Python知识点:基于Python工具,如何使用Web3.py进行以太坊智能合约开发
  • 【简信CRM-注册安全分析报告】
  • ssm+vue694基于Java的药店药品信息管理系统的设计与实现
  • Sentinel微服务保护
  • 喜讯!实在Agent智能体入选《2024年度最佳企业服务AI产品榜》
  • Aop+自定义注解实现数据字典映射