大数据StarRocks(五) :数据类型

StarRocks 支持数据类型:数值类型、字符串类型、日期类型、半结构化类型、其他类型 。您在建表时可以指定以下类型的列,向表中导入该类型的数据并查询数据。

5.1 数值类型

复制代码
SMALLINT
	2 字节有符号整数,范围 [-32768, 32767]
INT
	4 字节有符号整数,范围 [-2147483648, 2147483647]
BIGINT
	8 字节有符号整数,范围 [-9223372036854775808, 9223372036854775807]
LARGEINT
	16 字节有符号整数,范围 [-2^127 + 1 ~ 2^127 - 1]
DECIMAL
	DECIMAL(P [, S]) 高精度定点数,P 代表一共有多少个有效数字 (precision),S 代表小数点后最多有多少数字 (scale)。1.19.0 及以后版本对 DECIMAL 类型的(P,S)有默认值设置,默认是 Decimal(10,0)。
DOUBLE
	8 字节浮点数。
FLOAT
	4 字节浮点数。
BOOLEAN
	BOOL, BOOLEAN
	与 TINYINT 一样,0 代表 false,1 代表 true, NULL代表空。
	实际使用中可以用CHAR(1)或VARCHAR(1)来代表BOOLEAN类型,字段值用Y表示"是",用N表示"否"。
TINYINT
PERCENTILE

5.2 字符串类型

复制代码
CHAR
	定长字符串,M 代表的是定长字符串的长度。M 的范围是 1~255。
VARCHAR
	变长字符串。M 代表变长字符串长度,单位:字节,默认取值为 1。
	StarRocks 2.1 之前的版本,M 的取值范围为 1~65533。
	【公测中】自 StarRocks 2.1 版本开始,M 的取值范围为 1~1048576。
STRING
	字符串,最大长度 65533 字节。
BINARY/VARBINARY
	自 3.0 版本起,StarRocks 支持 BINARY/VARBINARY 数据类型,用于存储二进制数据,单位为字节。
	支持的最大长度与 VARCHAR 类型相同,M 的取值范围为 1~1048576。如果未指定 M,默认为最大值 1048576。
	BINARY 是 VARBINARY 的别名,用法与 VARBINARY 相同。

5.3 日期类型

复制代码
DATETIME
	日期时间类型,取值范围是 ['0000-01-01 00:00:00', '9999-12-31 23:59:59']。
	打印的形式是'YYYY-MM-DD HH: MM: SS'
DATE
	日期类型,目前的取值范围是 ['0000-01-01', '9999-12-31'],默认的打印形式是 'YYYY-MM-DD'。

5.4 半结构化类型

复制代码
ARRAY
	数组(Array) 是数据库中的一种扩展数据类型,其相关特性在众多数据库系统中均有支持,可以广泛的应用于 A/B Test 对比、用户标签分析、人群画像等场景。StarRocks 当前支持多维数组嵌套、数组切片、比较、过滤等特性。
	定义一维数组: ARRAY<type>
	定义嵌套数组: ARRAY<ARRAY<type>>
	定义 NOT NULL 数组列: ARRAY<type> NOT NULL
JSON
	自 2.2.0 版本起,StarRocks 支持 JSON。本文介绍 JSON 的基本概念,以及 StarRocks 如何创建 JSON 类型的列、导入和查询 JSON 数据,通过 JSON 函数及运算符构造和处理 JSON 数据。
	JSON 是一种轻量级的数据交换格式,JSON 类型的数据是一种半结构化的数据,支持树形结构。JSON 数据层次清晰,结构灵活易于阅读和处理,广泛应用于数据存储和分析场景。JSON 支持的数据类型为数字类型(NUMBER)、字符串类型(STRING)、布尔类型(BOOLEAN)、数组类型(ARRAY)、对象类型(OBJECT),以及 NULL 值。
	JSON 的更多介绍,请参见 JSON 官网,JSON 数据的输入和输出语法,请参见 JSON 规范 RFC 7159 。
	StarRocks 支持存储和高效查询分析 JSON 数据。StarRocks 采用二进制格式编码来存储 JSON 数据,而不是直接存储所输入文本,因此在数据计算查询时,降低解析成本,从而提升查询效率。
MAP
	MAP 是一种复杂数据类型,用于存储无序的键值对 (key-value pair),例如 {a:1, b:2, c:3}。Map 中的 Key 不能重复。一个 Map 最多支持 14 层嵌套。
	StarRocks 从 3.1 版本开始支持存储和导入 MAP 类型的数据。您可以在建表时定义 MAP 列,向表中导入 MAP 数据,查询 MAP 数据。
	StarRocks 从 2.5 版本开始支持查询数据湖中的复杂数据类型 MAP 和 STRUCT。您可以通过 StarRocks 提供的 External Catalog 方式来查询 Apache Hive™,Apache Hudi,Apache Iceberg 中的 MAP 和 STRUCT 数据。仅支持查询 ORC 和 Parquet 类型文件。
	想了解如何使用 External Catalog 查询外部数据源,参见 Catalog 概述 和对应的 Catalog 文档。
	语法
		MAP<key_type,value_type>
		key_type:Key 的数据类型。必须是 StarRocks 支持的基本数据类型 (Primitive Type),例如数值、字符串、日期类型。不支持复杂类型,例如 HLL、JSON、ARRAY、MAP、BITMAP、STRUCT。
		value_type:Value 的数据类型。可以是 StarRocks 支持的任意类型,包括复杂类型。
		Key 和 Value 取值都可以为 NULL。
STRUCT
	STRUCT 是一种复杂数据类型,可以存储不同数据类型的元素(也称字段),例如 <a INT, b STRING>。
	Struct 中的字段名称不能重复。字段可以是基本数据类型 (Primitive Type),例如数值、字符串、日期类型;也可以是复杂数据类型,例如 ARRAY 或 MAP。
	Struct 中的字段可以是另外一个 Struct,Map,或者 Array,方便用户定义嵌套数据结构。例如 STRUCT<a INT, b STRUCT<c INT, d INT>, c MAP<INT, INT>, d ARRAY<INT>>。
	StarRocks 从 3.1 版本开始支持存储和导入 STRUCT 数据类型。您可以在建表时定义 STRUCT 列,向表中导入 STRUCT 数据,查询 STRUCT 数据。
	StarRocks 从 2.5 版本开始支持查询数据湖中的复杂数据类型 MAP 和 STRUCT。您可以通过 StarRocks 提供的 External Catalog 方式来查询 Apache Hive™,Apache Hudi,Apache Iceberg 中的 MAP 和 STRUCT 数据。仅支持查询 ORC 和 Parquet 类型文件。
	语法
		STRUCT<name type>
		name:字段名称,和建表语句中的列名相同。
		type:字段类型。可以是 StarRocks 支持的任意类型。

5.5 其他类型

复制代码
BITMAP
	BITMAP 与 HLL (HyperLogLog) 类似,常用来加速 count distinct 的去重计数使用。
	您可以通过 bitmap 函数进行集合的各种操作,相比 HLL 可以获得更精确的结果。但是 BITMAP 需要消耗更多的内存和磁盘资源,另外 BITMAP 只能支持整数类型的聚合,如果是字符串等类型需要采用字典进行映射。
HLL
	HyperLogLog 类型,用于近似去重。详细的使用方法请参考 使用 HyperLogLog 实现近似去重。
	HLL 是基于 HyperLogLog 算法的工程实现,用于保存 HyperLogLog 计算过程的中间结果,HLL 类型的列只能作为表的 value 列类型,通过聚合来不断的减少数据量,以此来实现加快查询的目的。基于 HLL 到的是一个估算结果,误差大概在 1% 左右。
	HLL 列是通过其它列或者导入数据里面的数据生成的,导入的时候通过 HLL_HASH 函数来指定数据中哪一列用于生成 HLL 列它常用于替代 count distinct,通过结合 rollup 在业务上用于快速计算 UV
相关推荐
meiying88381 小时前
多快递公司快递单号批量查询接口怎么对接?Python 聚合查询实现
java·大数据·python
SelectDB1 小时前
Doris 异步物化视图实战:与 Snowflake MV / Dynamic Tables 分层建模对照
大数据·数据库·云原生
张张123y1 小时前
后端第十六课:Multi-Agent 多智能体(让多个 Agent 分工协作)
大数据·数据库·人工智能·python·deepseek·dsh·agent 框架
todoitbo2 小时前
MongoDB迁移之后,Spring Data 和 Hibernate 各自接哪类请求
大数据·数据库·mongodb·spring·hibernate·金仓数据库
大大大大晴天️3 小时前
从 Prompt 到 Tool Calling:AI Agent 如何稳定连接程序世界
大数据·ai-agent
跨境卫士苏苏3 小时前
亚马逊卖家接口新增欧盟清关商品标识要求跨境技术团队如何适配
大数据·新媒体运营·市场营销·跨境电商·跨境·营销策略
roman_日积跬步-终至千里4 小时前
数仓方法论(四):跨过程整合——用一致性维度连接不同业务事实
大数据
roman_日积跬步-终至千里5 小时前
数仓方法论(一):需求分析——把经营诉求转化为可验证的数据需求
大数据·数据挖掘·需求分析
智恒百亿6 小时前
一台 5090 八卡服务器怎么分给一个团队用?多模型多任务的显存分配实战
java·大数据·人工智能
yyk333246 小时前
大数据工具介绍
大数据