StarRocks数据库在SQL语句中解析JSON字符串

大数据StarRocks(五) :数据类型 StarRocks 支持数据类型:数值类型、字符串类型、日期类型、半结构化类型、其他类型。您在建表时可以指定以下类型的列,向表中导入该类型的数据并查询数据。 5.1 数值类型 SMALLINT 2 字节有符号整数,范围 [-32768, 32767] INT 4 字节有符号整数,范围 [-2147483648, 2147483647] BIGINT 8 字节有符号整数,范围 [-9223372036854775808, 9223372036854775807] LARGEINT 16 字节有符号整 阅读详情
AI摘要

本文介绍了StarRocks数据库在SQL语句中解析JSON字符串的相关内容。包括表的存储引擎、主键、数据分布方式等设置,还阐述了表的属性配置。重点讲解了GET_JSON_OBJECT函数从JSON字段提取属性值的用法,这种方式可提高数据处理效率和灵活性。

StarRocks数据库在SQL语句中解析JSON字符串

-- 使用数据库
use sr_test;
-- 删除表
drop table ts_usr;
-- 创建表
CREATE TABLE ts_usr (
uid bigint NOT NULL COMMENT "用户id",
uname varchar(64) NULL COMMENT "用户名",
ujson varchar(1024) NULL COMMENT "用户json"
) ENGINE=OLAP
PRIMARY KEY(uid)
DISTRIBUTED BY HASH(uid)
PROPERTIES (
"compression" = "LZ4",
"enable_persistent_index" = "true",
"fast_schema_evolution" = "true",
"replicated_storage" = "true",
"replication_num" = "1"
);

ENGINE=OLAP:指定了表的存储引擎为OLAP,这是为在线分析处理(Online Analytical Processing)优化的存储引擎,适合处理大量数据的复杂查询。

PRIMARY KEY(uid):指定uid列为主键,这意味着uid列的值必须是唯一的,并且可以用于索引和快速检索。

DISTRIBUTED BY HASH(uid):指定了表的数据分布方式为通过uid列的哈希值来分布数据到不同的节点上,这是一种常见的分布式数据库的分片策略。

PROPERTIES:后面跟着的是表的属性设置,用于配置表的行为。

“compression” = “LZ4”:设置表的压缩算法为LZ4,这是一种高效的压缩算法,可以减少存储空间的使用。
“enable_persistent_index” = “true”:启用持久索引,这意味着索引数据将被存储在磁盘上,而不是每次查询时都重新构建,可以提高查询效率。
“fast_schema_evolution” = “true”:启用快速模式演化,这允许在不重建表的情况下快速添加或删除列。
“replicated_storage” = “true”:启用复制存储,这意味着数据将被复制到多个节点上,以提高数据的可靠性。
“replication_num” = “1”:设置复制因子为1,这意味着每个数据分片将被复制到1个其他节点上。这个设置可能与replicated_storage属性相矛盾,因为通常复制存储意味着有多个副本,这里可能需要根据实际需求调整。

-- 插入语句
INSERT INTO sr_test.ts_usr (uid, uname, ujson) VALUES
(1, 'Alice', '{"height": 170, "width": 55}'),
(2, 'Bob', '{"height": 180, "width": 70}'),
(3, 'Carol', '{"height": 165, "width": 60}'),
(4, 'David', '{"height": 175, "width": 65}'),
(5, 'Eve', '{"height": 160, "width": 50}'),
(6, 'Frank', '{"height": 185, "width": 75}'),
(7, 'Grace', '{"height": 170, "width": 60}'),
(8, 'Hank', '{"height": 190, "width": 80}'),
(9, 'Ivy', '{"height": 168, "width": 58}'),
(10, 'Jack', '{"height": 172, "width": 62}');

-- 查询
select * from sr_test.ts_usr;

-- 查询,解析json字段,拆解height、width
SELECT
uid,
uname,
ujson,
GET_JSON_OBJECT(ujson, '$.height') AS height,
GET_JSON_OBJECT(ujson, '$.width') AS width
FROM
sr_test.ts_usr;

GET_JSON_OBJECT(ujson, ‘.height′)ASheight,:这里使用了GETJSONOBJECT函数来从ujson字段中提取名为height的JSON属性的值。′.height') AS height,:这里使用了GET_JSON_OBJECT函数来从ujson字段中提取名为height的JSON属性的值。'.height′)ASheight,:这里使用了GETJ​SONO​BJECT函数来从ujson字段中提取名为height的JSON属性的值。′.height’是JSON路径表达式,代表JSON对象的根,.用来访问对象的属性。所以’.height′表示从JSON对象的根开始,获取名为height的属性的值。ASheight是将这个值重命名为列名height。关于GETJSONOBJECT和′.height'表示从JSON对象的根开始,获取名为height的属性的值。AS height是将这个值重命名为列名height。 关于GET_JSON_OBJECT和'.height′表示从JSON对象的根开始,获取名为height的属性的值。ASheight是将这个值重命名为列名height。关于GETJ​SONO​BJECT和′.'的写法
GET_JSON_OBJECT是一个函数,用于从JSON格式的字符串中提取指定路径的值。这个函数接受两个参数:第一个参数是包含JSON的字段,第二个参数是JSON路径表达式,用来指定要提取的JSON属性的位置。

'$.'是JSON路径表达式的写法。在JSON路径中:

代表JSON对象的根。
.用来访问对象的属性或数组的元素。
如果属性名是height或width,那么’.height′和′.height'和'.height′和′.width’就是指定这些属性的路径。
例如,如果ujson字段包含如下JSON字符串:

json{“height”: 180, “width”: 75}
那么GET_JSON_OBJECT(ujson, ‘.height′)将返回180,GETJSONOBJECT(ujson,′.height')将返回180,GET_JSON_OBJECT(ujson, '.height′)将返回180,GETJ​SONO​BJECT(ujson,′.width’)将返回75。

这种查询方式允许你直接在SQL查询中处理和使用存储在JSON字段中的数据,而不需要在应用层进行解析,从而提高了数据处理的效率和灵活性。

StartRocks主从数据不一致问题排查 最近公司引入SR数据库,发现数据同步后ADB和SR通过业务时间汇总,票数会偶发偏差几条。通过最终排查发现 个别订单数据业务时间缺失。但是多次查询业务时间字段 在有和没有反复横跳。 阅读详情

相关推荐

SQL语句整理五-StarRocks

【代码】SQL语句整理五-

小强签名设计 的博客 1705

Starrocks解析json数组

Starrocks解析json数组。

qq_43048011的博客 2015

StarRocks实战:利用UNNEST函数高效解析JSON数组的进阶技巧

本文深入探讨了在StarRocks中利用UNNEST函数高效解析JSON数组的进阶技巧。文章从实际场景出发,阐述了UNNEST如何将嵌套的JSON数组数据“拍平”为关系型表结构,并详细介绍了其基础语法、与FILTER等函数的组合应用、多级嵌套解析方法以及性能优化策略,帮助开发者应对复杂半结构化数据分析挑战。

weixin_29292535的博客 132

StarRocks中Json格式字段读取异常?

类:StarRocksSchema.genSchema方法空指针异常?即可获取json字段为字符串类型,然后映射为具体的bean处理即可。

qq_33705071的博客 963

StarRocks AI Function 实战:在 SQL 中调用大模型

大模型与数据分析的融合正成为趋势,而 SQL 作为数据处理的核心语言,如何原生集成 AI 能力是关键。StarRocks 的 AI Function 将大模型调用下沉到 MPP 执行引擎,通过并行计算和资源管理,实现高效、可控的 AI 推理。这不仅能降低数据搬运成本,还能让分析师在 SQL 中直接完成文本分类、情感分析等任务,适用于离线批量打标和交互式分析场景。

weixin_29067143的博客 255

StarRocks MCP Server:用协议打通AI与实时数据仓库的实践指南

在数据驱动决策的时代,企业数据仓库与AI应用的融合成为关键挑战。传统方法依赖复杂的ETL流程或提示词工程,效率低下且难以维护。Model Context Protocol(MCP)作为一种标准化协议,通过定义资源声明、工具调用和提示模板,实现了大模型与外部数据源的解耦连接,其价值在于将数据源“服务化”,为AI应用提供统一、安全的访问接口。这一架构特别适用于实时分析场景,能充分发挥OLAP引擎的极速查询性能。本文以StarRocks MCP Server为例,深入解析如何通过会话隔离、查询下推和结果分页等机制

weixin_42583683的博客 575

starrocks中的json解析

支持对每一行执行子查询,返回与该行相关的结果。常用于展开数组、JSON、或者调用表函数。允许子查询或表函数访问主查询的列。

qq_1342832900的博客 606

多维聚合实战:从OLAP立方体建模到StarRocks/ClickHouse优化

多维聚合是OLAP分析的核心能力,本质是构建可自由切片、钻取与下钻的N维数据立方体(Hypercube),而非简单GROUP BY叠加。其技术价值在于以空间换时间(预计算)或以时间换灵活性(延迟物化),支撑实时、高并发、多维度组合的即席查询。关键原理涵盖星型模型设计、维度层次建模、基数控制与物化策略选择;典型应用场景包括电商销售分析、用户行为分群、SaaS客户留存及实时大屏。本文聚焦工程落地,深度对比StarRocks Aggregate Model与ClickHouse Rollup在建模、存储、查询层面

weixin_33826609的博客 402

StarRocks中优雅处理JSON与列表字段的初步示例

StarRocks通过兼容MySQL语法和提供丰富的JSON处理函数 (如unnest) , 显著简化了半结构化数据的分析流程. 结合其MPP架构的高性能特性, 能够优雅应对用户行为分析, 实时日志处理等复杂场景. 建议开发者通过实际业务需求逐步探索更高级的JSON操作 (如递归解析) , 并关注官方文档中的最新功能更新.扩展阅读StarRocks JSON类型官方文档。

t.y.Tang的博客 1980

宇树机器人丝滑的二人转动作背后,MPC到底是什么?

了解MPC,让我们闻“机”起舞。

Barok的博客 2144

机器学习预测材料性能:从特征工程到SHAP可解释性分析

机器学习在材料科学中的应用,核心在于将复杂的材料性能预测问题转化为数据驱动的建模任务。其基本原理是通过算法从历史数据中学习特征与目标属性之间的映射关系。这项技术的价值在于能够大幅加速新材料的发现与设计周期,降低传统“试错法”的高昂成本。在工程实践中,它广泛应用于预测如形成能、带隙、弹性模量以及居里温度等关键材料性能。具体到磁性材料领域,居里温度的准确预测对于永磁体和自旋电子器件设计至关重要。本项目深入探讨了如何利用特征工程从材料成分与结构中构建有效描述符,并借助SHAP这一可解释性工具,揭示模型决策背后的物

weixin_27155667的博客 650

StarRocks 4.0:FlatJSON,让 JSON 查询像列存一样高效

StarRocks 4.0推出FlatJSON技术,大幅提升JSON查询性能。通过列式存储优化,自动识别高频JSON字段并转换为列存格式,配合索引、字典编码等技术,使JSON查询速度接近原生列存。相比传统JSON处理方案,FlatJSON显著降低了I/O和CPU开销,无需ETL即可实现高性能分析,适用于日志、埋点等半结构化数据分析场景,在测试中性能提升达10倍以上。该技术实现了灵活数据结构与高效分析能力的兼得。

StarRocks的博客 1128

【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db - 环境变量配置与路径修复指南

本文详细解析了地理空间数据处理中常见的【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db 错误。该错误的根源是PROJ库无法定位其核心数据文件proj.db。文章提供了从问题诊断到修复的完整指南,包括如何在不同系统(Windows/macOS/Linux)和安装方式(Conda/pip/源码编译)下找到正确的proj.db文件路径,并通过设置PROJ_LIB环境变量(临时、代码内或永久)彻底解决问题,同时给出了进阶排查技巧和

m2n3o4p5的博客 555

基于Tile的GPU编程入门完全指南:从核心理解Tile概念到用TileGym写出第一个内核

**TileGym** 是 NVIDIA 开源的 **CUDA Tile 内核库**,提供了一套面向初学者的**基于 Tile 的 GPU 编程**教程与内核(kernel)示例集合。无论你是第一次接触 GPU 编程,还是想优化大语言模型推理中的关键算子,都能在这里找到从"理解 Tile 概念"到"写出第一个内核"的完整路径。本文用 5 个步骤带你快速上手。 ## 一、先搞懂:什么是 Tile?

gitblog_00278的博客 451

CANOE DIVA 工程怎样在具体服务前增加前置条件

然后会在CANoe的Test Module视窗中发现一个跟系统条件相关的Test Module模块,在该模块中有生成跟系统条件相关的CAPL 脚本。这里需要根据你的实际项目进行更改,diva工程加载到canoe的工程的时候,会同步加入你创建的cdd文件,这里示例的ABS_ESP 就是你的cdd的ECU命名,后面就是具体的前置条件服务。4、配置完成后,测试用例就会如下图Trace窗口所示,在每一次10 02请求之前都会调用CAPL Function的PreconditionCheck函数中定义的脚本。

weixin_45940007的博客 1961

使用单调栈求解最大矩形面积问题的C++实现

通过本文的介绍,我们详细讲解了如何使用单调栈求解砖墙中最大矩形面积的问题,并提供了完整的C++代码实现。希望通过本文的学习,你能掌握单调栈的基本概念及其在实际问题中的应用。如果你有任何疑问或建议,欢迎在评论区留言交流。

m0_57781768的博客 812

EMR Serverless与StarRocks AI Function实现金融文本智能分类实战

在数据处理领域,SQL作为通用查询语言,是数据分析师和数据工程师最核心的工具之一。其原理是通过声明式语法对结构化数据进行操作,技术价值在于降低了数据处理的复杂度。随着人工智能技术的普及,如何将AI能力无缝集成到数据仓库中,实现库内机器学习,成为提升工程效率的关键。应用场景广泛,尤其在金融、电商等行业的海量非结构化文本处理中,如客服对话分类、舆情分析等。本文通过EMR Serverless与StarRocks AI Function的组合,展示了如何用SQL直接调用BERT等模型处理文本,实现从数据到AI推理

weixin_33857679的博客 360

28、数字电路测试与半导体内存测试全解析

本文全面解析了数字电路中的顺序电路测试生成方法与半导体内存测试技术。内容涵盖顺序电路中的故障检测、多重观察测试、可驱动性分析、伪组合电路测试及初始化问题,并深入探讨了内存技术发展、故障模型、测试流程与未来趋势。重点介绍了DRAM、SRAM等主流内存类型的特点,以及制造和使用过程中面临的永久性与非永久性故障挑战,提出了基于故障模型的高效测试策略与优化方案。

go5gopher的博客 122

【StarRocks】极限十分钟入门StarRocks

StarRocks快速入门指南 StarRocks是一款开源MPP分析型数据库,兼容MySQL协议,擅长海量数据分析。本文演示如何通过Docker快速部署存算一体架构的StarRocks测试环境

编码人生 424

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

手把手保姆级|Python爬取微信公众号文章完整版,反反爬策略拉满,附可运行完整代码(永久可用)

做Python爬虫的朋友都知道,爬取微信公众号文章 绝对是爬虫领域的「香饽饽」也是「硬骨头」。一方面,微信公众号的文章是极具价值的数据源:不管是自媒体从业者做竞品分析、新媒体运营者整理干货、还是个人学习收集资料,都需要批量爬取公众号文章;另一方面,微信的反爬机制堪称全网最严苛之一 ——腾讯对微信生态的风控做到了极致,动态渲染页面、高频IP封禁、Cookie短时效失效、请求头严格校验、自动化工具秒识别、频繁请求直接拉黑,这些反爬手段让90%的爬虫新手望而却步:要么爬了几篇就被封IP,要么Cookie失效爬取中

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2623

告别 SQL 幻觉!用 Python + MCP 打造你的专属 StarRocks 数据分析 Agent

在讲技术之前,我们先打个比方。如果把大模型比作一个“极其聪明但刚入职的实习生”他大脑很灵光(逻辑推理能力强),但他没有公司的内网权限,也不知道公司的数据库里存了什么。过去,我们只能把表结构复制粘贴给他(Context 窗口限制),他写好 SQL 后,我们再手动去数据库跑,跑完报错了再把报错信息贴给他……整个过程极其痛苦。而,就像是给这位实习生配发了一台“装了公司内网 VPN 和数据库客户端的工作电脑”。MCP 是一种标准协议,它允许大模型直接调用本地或远程的工具(Tools)。

xiebing502161175的博客 456

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Apache Calcite 1.37.0 版本亮点深度解析:Arrow 适配器、StarRocks 方言与 SQL 新特性

Apache Calcite 1.37.0 于 2024 年 5 月发布,是该项目在 [1.36.0](https://link.gitcode.com/i/8c042e3b2136258e8f168b615222282e) 之后时隔 5 个月推出的重要版本。本文以官方发布公告为骨架,结合当前仓库中的源码与测试,逐项拆解该版本的六大核心能力:新增 Apache Arrow 适配器([CALCITE

gitblog_01133的博客 608

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

StarRocks极速OLAP数据库实战:从架构原理到部署优化全解析

在当今数据驱动的时代,海量数据的实时分析能力已成为企业核心竞争力的关键。面对传统Hadoop/Spark生态在复杂即席查询和高并发场景下的性能瓶颈,新一代MPP(大规模并行处理)数据库应运而生。其核心原理在于通过分布式架构将计算任务并行化,结合列式存储技术大幅提升数据压缩比与I/O效率,并利用向量化执行引擎充分压榨现代CPU的SIMD指令集潜力,从而实现亚秒级的极速查询响应。这种技术组合为实时数仓、交互式BI报表和即席分析等高价值场景提供了强大支撑。本文以StarRocks这一典型代表为例,深入剖析其如何通

weixin_33946020的博客 375

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据安全第一道防线:StarRocks严格模式(Strict Mode)深度解析与使用指南

你是否曾因数据导入时的隐式转换导致分析结果异常?是否在调试SQL时花费数小时追踪数据格式错误?StarRocks严格模式(Strict Mode)正是为解决这些问题而生。本文将系统解析严格模式的工作机制、应用场景及最佳实践,帮助你构建更健壮的数据处理流程。 ## 严格模式核心价值与应用场景 严格模式是StarRocks提供的一种数据校验机制,通过禁用危险的隐式转换和严格校验数据格式,从源头减少...

gitblog_00741的博客 498

dbx 的 Doris 与 SelectDB SQL 函数辅助:从函数目录生成到补全、签名提示与语义建模

本文围绕 dbx 桌面端([apps/desktop](https://link.gitcode.com/i/3bb89d68bb65271ddc7d8fc9bfc2025b))内置的 **Doris 与 SelectDB SQL 函数辅助**功能展开:它如何从 Apache Doris 官方文档站点自动提取 496 个 SQL 函数的目录与签名,如何把这些目录注入 SQL 编辑器的函数补全、签名

gitblog_00313的博客 405
上一篇: 新手零基础入门教程-手把手带你从零开始安装Python3.10.11编程开发环境
下一篇: Python基于amazon/chronos-t5-base的预训练模型离线对时间系列数据的未来进行预测
数智客栈
博客等级 码龄17年 5699粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值