StarRocks数据库在SQL语句中解析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, ‘ . h e i g h t ′ ) A S h e i g h t , :这里使用了 G E T J S O N O B J E C T 函数来从 u j s o n 字段中提取名为 h e i g h t 的 J S O N 属性的值 。 ′ .height') AS height,:这里使用了GET_JSON_OBJECT函数来从ujson字段中提取名为height的JSON属性的值。' .height′)ASheight,:这里使用了GETJSONOBJECT函数来从ujson字段中提取名为height的JSON属性的值。′.height’是JSON路径表达式,代表JSON对象的根,.用来访问对象的属性。所以’ . h e i g h t ′ 表示从 J S O N 对象的根开始,获取名为 h e i g h t 的属性的值。 A S h e i g h t 是将这个值重命名为列名 h e i g h t 。关于 G E T J S O N O B J E C T 和 ′ .height'表示从JSON对象的根开始,获取名为height的属性的值。AS height是将这个值重命名为列名height。 关于GET_JSON_OBJECT和' .height′表示从JSON对象的根开始,获取名为height的属性的值。ASheight是将这个值重命名为列名height。关于GETJSONOBJECT和′.'的写法
GET_JSON_OBJECT是一个函数,用于从JSON格式的字符串中提取指定路径的值。这个函数接受两个参数:第一个参数是包含JSON的字段,第二个参数是JSON路径表达式,用来指定要提取的JSON属性的位置。
'$.'是JSON路径表达式的写法。在JSON路径中:
代表JSON对象的根。
.用来访问对象的属性或数组的元素。
如果属性名是height或width,那么’ . h e i g h t ′ 和 ′ .height'和' .height′和′.width’就是指定这些属性的路径。
例如,如果ujson字段包含如下JSON字符串:
json{“height”: 180, “width”: 75}
那么GET_JSON_OBJECT(ujson, ‘ . h e i g h t ′ ) 将返回 180 , G E T J S O N O B J E C T ( u j s o n , ′ .height')将返回180,GET_JSON_OBJECT(ujson, ' .height′)将返回180,GETJSONOBJECT(ujson,′.width’)将返回75。
这种查询方式允许你直接在SQL查询中处理和使用存储在JSON字段中的数据,而不需要在应用层进行解析,从而提高了数据处理的效率和灵活性。
相关文章:
StarRocks数据库在SQL语句中解析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 CO…...
RabbitMq-队列交换机绑定关系优化为枚举注册
📚目录 📚简介:🚀比较💨通常注册🌈优化后注册 ✍️代码💫自动注册的关键代码 📚简介: 该项目介绍,rabbitMq消息中间件,对队列的注册,交换机的注册,…...
施磊C++ | 项目实战 | 手写移植SGI STL二级空间配置器内存池 项目源码
手写移植SGI STL二级空间配置器内存池 项目源码 笔者建议配合这两篇博客进行学习 侯捷 | C | 内存管理 | 学习笔记(二):第二章节 std::allocator-CSDN博客 施磊C | 项目实战 | SGI STL二级空间配置器源码剖析-CSDN博客 文章目录 手写移植SGI STL二级空…...
C++ | Leetcode C++题解之第507题完美数
题目: 题解: class Solution { public:bool checkPerfectNumber(int num) {if (num 1) {return false;}int sum 1;for (int d 2; d * d < num; d) {if (num % d 0) {sum d;if (d * d < num) {sum num / d;}}}return sum num;} };...
Git快速上手
概述 Git 是一个免费且开源的分布式版本控制系统,被广泛用于软件开发中的代码版本控制。通过使用 Git,开发者可以高效地追踪文件的变化历史,并支持多人协作开发。本教程将带你快速了解 Git 的基本概念和操作,帮助你开始使用 Git …...
宝塔如何部署Django项目(前后端分离篇)
一、环境安装 1、安装相关软件 点击软件商店,安装下面软件 一、宝塔部署前端 1、打包Vue项目 打开Vue3项目,输入下面打包命令,对Vue项目进行打包, npm run build 2、部署前端 点击宝塔的网站,在PHP项目里点击添加…...
JavaScript解析JSON对象及JSON字符串
1、问题概述? JavaScript解析JSON对象是常用功能之一。 此处我们要明确JSON对象和JSON字符串的区别?否则会给我们的解析带来困扰。 主要实现如下功能: 1、JavaScript解析JSON字符串和JSON对象? 2、JavaScript解析JSON数组? 3、JavaSc…...
Elasticsearch 构建实时数据可视化应用
Elasticsearch 构建实时数据可视化应用 Elasticsearch 构建实时数据可视化应用一、构建实时数据可视化应用的基本原则1. 数据采集2. 数据处理和清洗3. 数据存储和索引4. 数据可视化展示二、实时数据可视化应用数据存储和检索功能基于Elasticsearch构建实时数据搜索和过滤功能El…...
NVR批量管理软件/平台EasyNVR多个NVR同时管理:H.265与H.264编码优势和差异深度剖析
在数字化安防领域,视频监控系统正逐步成为各行各业不可或缺的一部分。随着技术的不断进步,传统的视频监控系统已经难以满足日益复杂和多变的监控需求。下面我们谈及NVR批量管理软件/平台EasyNVR平台H.265与H.264编码优势及差异。 一、EasyNVR视频汇聚平台…...
C/C++(六)多态
本文将介绍C的另一个基于继承的重要且复杂的机制,多态。 一、多态的概念 多态,就是多种形态,通俗来说就是不同的对象去完成某个行为,会产生不同的状态。 多态严格意义上分为静态多态与动态多态,我们平常说的多态一般…...
汽车及零配件企业海量文件数据如何管
汽车行业特点 汽车行业是工业企业皇冠上的一颗明珠,在国民经济中占据着举足轻重的地位。汽车行业具备技术密集、创新速度快、供应链复杂等特点,具体体现为: 技术密集:汽车行业是技术密集型行业,覆盖机械、电子、软件、…...
【AI学习】Mamba学习(十二):深入理解S4模型
#1024程序员节|征文# HiPPO的学习暂告一段落,按照“HiPPO->S4->Mamba 演化历程”,接着学习S4。 S4对应的论文:《Efficiently Modeling Long Sequences with Structured State Spaces》 文章链接:https://ar5iv…...
linux入门之必掌握知识点
#1024程序员节|征文# Linux基础 top命令详解 top命令是用来查看进程系统资源使用情况的工具,它可以动态的现实。 top命令执行后,按大写M可以按内存使用情况进行排序,大写P可以按CPU使用情况进行排序,大写H可以显示线…...
【Web.路由]——路由原理
这篇文章,我们来讲一讲什么是路由。 路由是 将用户请求地址映射为一个请求委托的过程,负责匹配传入的Http请求,然后将这些请求发送到应用的可执行终结点。 这里需要注意一个内容,发送到应用的可执行终结点。 路由的分类&#x…...
Spring Boot技术在中小企业设备管理中的应用
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
Lua表(Table)
软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 Lua中的表(table)是一种核心数据结构,它既是数组也是字典,能够存储多种类型的数据,包括数字、字符…...
51单片机应用开发(进阶)---外部中断(按键+数码管显示0-F)
实现目标 1、巩固数码管、外部中断知识 2、具体实现:按键K4(INT1)每按一次,数码管从0依次递增显示至F,再按则循环显示。 一、共阳数码管 1.1 共阳数码管结构 1.2 共阳数码管码表 共阳不带小数点0-F段码为ÿ…...
怎么区分主谓宾I love you与主系表I am fine? 去掉宾语看句子完整性 主系表结构则侧重于描述主语的状态、特征或性质
主谓宾与主系表是英语句子结构中的两种基本类型,它们在关注点、动词分类以及句子完整性方面有所区别。具体分析如下: 关注点 主谓宾I love you:主谓宾结构主要关注动作和影响对象之间的关系[1]。这种结构强调的是动态和行为,通常描…...
私域流量运营的误区
私域流量运营是近年来营销领域的重要趋势,但在实际操作中,很多企业和个人容易陷入一些误区。以下是几个常见的私域流量运营误区及其解决方法: 1. 只关注流量,不重视内容 误区:许多运营者认为,只要吸引到足…...
VirtualBox虚拟机桥接模式固定ip详解
VirtualBox虚拟机桥接模式固定ip详解 VirtualBox 桥接设置Ubuntu 24.04使用固定IP问题记录 VirtualBox 桥接设置 为什么设置桥接模式?桥接模式可以实现物理机和虚拟机互相通信,虚拟机也可以访问互联网(推荐万金油),物…...
面试问题基础记录24/10/24
面试问题基础记录24/10/24 问题一:LoRA是用在节省资源的场景下,那么LoRA具体是节省了内存带宽还是显存呢?问题二:假如用pytorch完成一个分类任务,那么具体的流程是怎么样的?问题三:详细介绍一下…...
中国区 Microsoft365主页链接请您参考:
Microsoft365主页链接请您参考: Redirecting PPAC链接请您参考: Power Platform admin center 关于Power Automate开启工单是在 https://portal.partner.microsoftonline.cn/Support/SupportOverview.aspx进行提交的。 对应所需对应管理员可以分配以下…...
Go encoding/json库
JSON在网络上广泛使用,是一种基于文本的数据传输方式。在本集中,我们将与 Daniel Marti 一起探索 Go 的 encoding/json 包和其他包。 本篇内容是根据2020年7月份[#141 {“encoding”:“json”}](https://changelog.com/gotime/141 “#141 {“encoding”…...
「实战应用」如何用图表控件LightningChart可视化天气数据?(二)
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学…...
苹果瑕疵数据集苹果质量数据集YOLO格式VOC格式 深度学习 目标检测 数据集
一、数据集概述 数据集名称:2类苹果图像数据集 数据集包含两类样本:正常苹果和有瑕疵的苹果。正常苹果样本代表完好的苹果,而有瑕疵的苹果样本代表苹果表面可能存在的损伤、瑕疵或病害。每个样本都经过详细标记和描述,以便训练模…...
旧电脑安装Win11提示“这台电脑当前不满足windows11系统要求”,安装中断。怎么办?
前言 最近有很多小伙伴也获取了LTSC版本的Win11镜像,很大一部分小伙伴安装这个系统也是比较顺利的。 有顺利安装完成的,肯定也有安装不顺利的。这都是很正常的事情,毕竟这个镜像对电脑硬件要求还是挺高的。 有一部分小伙伴在安装Windows11 …...
深入理解QT多线程编程
文章目录 多线程用法QThread类QtConcurrent类QFutureSynchronizer类获取线程信息线程优先级获取线程状态线程局部存储使用线程池监听线程事件Qt是一个跨平台的应用程序开发框架,广泛应用于图形用户界面(GUI)开发。它提供了强大的多线程支持,允许开发者在应用程序中创建和管理…...
React四官方文档总结一UI与交互
代码下载 React官网已经都是函数式组件文档,没有类组件文档,但是还是支持类组件这种写法。 UI 描述 组件 组件 是 React 的核心概念之一,它们是构建用户界面(UI)的基础。React 允许你将标签、CSS 和 JavaScript 组…...
如何理解 HTTP 是无状态的,以及它与 Cookie 和 Session 之间的联系
文章目录 一、什么是 HTTP?无状态的含义 二、为什么 HTTP 是无状态的?三、Cookie 和 Session 的引入1. Cookie特点:示例: 2. Session特点:示例(Java Servlet): 四、HTTP、Cookie 和 …...
OpenCV视觉分析之运动分析(2)背景减除类:BackgroundSubtractorKNN的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 K-最近邻(K-nearest neighbours, KNN)基于的背景/前景分割算法。 该类实现了如 319中所述的 K-最近邻背景减除。如果前景…...
手工木雕网站建设策划书/深圳全网推广排名
平常我们不会去注意系统的最后重启时间,但在特殊的情况下我们还是会去查看的,那么Linux系统怎么查看最后重启时间呢?就让学习啦小编来告诉大家Linux系统查看最后重启时间的方法吧,希望对大家有所帮助。Linux系统查看最后重启时间方法一:last…...
sql 新建网站/营销技巧和营销方法视频
前段时间分享的一篇《完了!CPU 一味求快出事了》得到了众多网友的好评,今天我们就来继续探讨 CPU 的那些事!图片来自 PexelsCPU明明8个核,网卡为啥拼命折腾1号核?中断机制我是 CPU 一号车间的阿 Q,我又来了!我们日常的工作就是不断执行代码指…...
网站建设开发团队介绍/比百度好用的搜索引擎
author:skate time:2008/2/18 oracle如何得到32位的世界唯一随机数 我们在创建表的时候一般都用序列生成的数字来保证数据的唯一,但这只能保证在单个实例中,无法适合并行或远程的环境的主关键字 因为在各自环境理里可能生成的数字重复,从而会…...
官方网站建设最重要的是/seo网站推广与优化方案
转载自 李旭, Tool: Download Images from Multiple Maps Summary SAS Planet是一款俄罗斯绿色免费软件,一直持续不断更新。该软件最大的一个特点就是无水印地从多种网络地图上下载影像,比如Google Earth、ESRI、Yahoo!等等,缺点是…...
wap网站的好处/网站设计师
目录 从登录接口获取到token,保存在sessionstory中 请求拦截器,保存到config 封装其他请求 请求拦截器的作用 请求等待中的页面效果 拦截器引入,变为插件的形式 使用插件 从登录接口获取到token,保存在sessionstory中 请求拦截器中 如果存在token&…...
动态网页文件/葫岛百度seo
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取博客所有的文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的http库 第三方库:cheerio&a…...