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

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

5.1 数值类型

SMALLINT2 字节有符号整数,范围 [-32768, 32767]
INT4 字节有符号整数,范围 [-2147483648, 2147483647]
BIGINT8 字节有符号整数,范围 [-9223372036854775808, 9223372036854775807]
LARGEINT16 字节有符号整数,范围 [-2^127 + 1 ~ 2^127 - 1]
DECIMALDECIMAL(P [, S]) 高精度定点数,P 代表一共有多少个有效数字 (precision),S 代表小数点后最多有多少数字 (scale)。1.19.0 及以后版本对 DECIMAL 类型的(P,S)有默认值设置,默认是 Decimal(10,0)。
DOUBLE8 字节浮点数。
FLOAT4 字节浮点数。
BOOLEANBOOL, 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 数据,而不是直接存储所输入文本,因此在数据计算查询时,降低解析成本,从而提升查询效率。
MAPMAP 是一种复杂数据类型,用于存储无序的键值对 (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。
STRUCTSTRUCT 是一种复杂数据类型,可以存储不同数据类型的元素(也称字段),例如 <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 其他类型

BITMAPBITMAP 与 HLL (HyperLogLog) 类似,常用来加速 count distinct 的去重计数使用。您可以通过 bitmap 函数进行集合的各种操作,相比 HLL 可以获得更精确的结果。但是 BITMAP 需要消耗更多的内存和磁盘资源,另外 BITMAP 只能支持整数类型的聚合,如果是字符串等类型需要采用字典进行映射。
HLLHyperLogLog 类型,用于近似去重。详细的使用方法请参考 使用 HyperLogLog 实现近似去重。HLL 是基于 HyperLogLog 算法的工程实现,用于保存 HyperLogLog 计算过程的中间结果,HLL 类型的列只能作为表的 value 列类型,通过聚合来不断的减少数据量,以此来实现加快查询的目的。基于 HLL 到的是一个估算结果,误差大概在 1% 左右。HLL 列是通过其它列或者导入数据里面的数据生成的,导入的时候通过 HLL_HASH 函数来指定数据中哪一列用于生成 HLL 列它常用于替代 count distinct,通过结合 rollup 在业务上用于快速计算 UV

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325959.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法通关村第二十关-黄金挑战图的常见算法

大家好我是苏麟 , 今天聊聊图的常见算法 . 图里的算法是很多的&#xff0c;这里我们介绍一些常见的图算法。这些算法一般都比较复杂&#xff0c;我们这里介绍这些算法的基本含义&#xff0c;适合面试的时候装*&#xff0c;如果手写&#xff0c;那就不用啦。 图分析算法&#xf…

Ubuntu18 安装chatglm2-6b

记了下Ubuntu18 上安装chatglm2-6遇到的问题。 环境&#xff1a;Ubuntu18.04 V100(显卡) nvcc 11.6 显卡驱动cudacudnnaniconda chatglm6b 的安装 网上有很多&#xff0c; 不记录 了。 chatglm2-6b 我从别的地方拷贝的&#xff0c; 模型也包含了。 遇到的问题&#xf…

C#中字母与ASCⅡ码的转换

目录 一、关于ASCⅡ及与字符互转 1.主要用到Encoding对象的GetBytes方法 2.Char显式转换为数值类型得到ASCⅡ 二、实例 三、生成效果 四、程序中的一些知识点 1.IsLetterOrDigit() 2.GetBytes() 3.TryParse(string, out int) 一、关于ASCⅡ及与字符互转 ASCⅡ(Americ…

彻底认识Unity ui设计中Space - Overlay、Screen Space - Camera和World Space三种模式

文章目录 简述Screen Space - Overlay优点缺点 Screen Space - Camera优点缺点 World Space优点缺点 简述 用Unity中开发了很久&#xff0c;但是对unity UI管理中Canvas组件的Render Mode有三种主要类型&#xff1a;Screen Space - Overlay、Screen Space - Camera和World Spa…

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据&#xff0c;依据指定的顺序进行排列的过程。 排序是算法中的一部分&#xff0c;也叫排序算法。算法处理数据&#xff0c;而数据的处理最好是要找到他们的规律&#xff0c;这个规律中有很大一部分就是要进行排序&#xff0c;所以需…

年度大盘点:AIGC、AGI、GhatGPT震撼登场!揭秘人工智能大模型的奥秘与必读书单

这里写目录标题 前言01 《ChatGPT 驱动软件开发》02 《ChatGPT原理与实战》03 《神经网络与深度学习》04 《AIGC重塑教育》05 《通用人工智能》 前言 在2023年&#xff0c;人工智能领域经历了一场前所未有的大爆发&#xff0c;特别是在语言模型领域。新的概念和英文缩写如AIGC、…

【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 31 Oct 2023 (showing first 100 of 141 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Eval4NLP 2023 Shared Task on Prompting Large Language Models a…

SSM实现的校园门户平台网站系统----计算机毕业设计

项目介绍 本系统为前后台项目&#xff0c;后台为管理员登录&#xff0c;前台为社团、学生、教师角色登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,角色管理,权限管理,社团管理,教师管理,学生管理,公告管理,新闻管理,校园风采管理,求职招聘管理,校历管理…

2024阿里云域名优惠口令更新了吗?在哪领取?

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

C#使用纯OpenCvSharp部署yolov8-pose姿态识别

【源码地址】 github地址&#xff1a;https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-Pose算法是一种基于深度神经网络的目标检测算法&#xff0c;用于对人体姿势进行准确检测。该算法在Yolov8的基础上引入了姿势估计模块&#xff0c;通过联合检测和姿势…

网络故障问题一般性检查排查思路

一、基本连通性检查 在网络中ping是一个十分强大的TCP/IP工具。它可以用来检测网络的连通情况和分析网络速度、也可以ping网址根据域名得到服务器IP、同时我们根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。 ping 网址&#xff0c;有几种输出情况&a…

equals()方法和“==”运算符

equals()equals()方法和“”运算符比较 回到顶部 equals() 超类Object中有这个equals()方法&#xff0c;该方法主要用于比较两个对象是否相等。该方法的源码如下&#xff1a; public boolean equals(Object obj) {return (this obj);} 我们知道所有的对象都拥有标识(内存…