如何从clickhouse中的json中提取json?

2023-12-07

我的基地有一个 json:

{"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}]}

我需要获取每个键的所有唯一值,但在提取键“d”和键“e”的值时遇到一些问题。

Using:

SELECT
   DISTINCT JSONExtractRaw(column, 'c')
FROM t1

I get:

[{"d":3,"e":"str_1"}, 
{"d":4,"e":"str_2"}]

但是,如果我再次对键“d”和键“e”使用 JsonExtract 品种,它不会返回任何内容。如何解决这个问题呢?


如果需要,我会使用像这样的“安全”查询来正确处理无序成员和丢失的成员。这种方法不是很快但是可靠。

SELECT
  json,
  a_and_b,
  d_uniq_values,
  e_uniq_values
FROM (  
  SELECT
      json,
      JSONExtract(json, 'Tuple(a Nullable(Int32), b Nullable(Int32))') a_and_b,
      JSONExtractRaw(json, 'c') c_json,
      range(JSONLength(c_json)) AS array_indices,
      arrayDistinct(arrayMap(i -> JSONExtractInt(c_json, i + 1, 'd'), array_indices)) AS d_uniq_values,
      arrayDistinct(arrayMap(i -> JSONExtractString(c_json, i + 1, 'e'), array_indices)) AS e_uniq_values
  FROM
  (
      /* test data */
      SELECT arrayJoin([
        '{}',
        '{"a":1,"b":2}',
        '{"b":1,"a":2}',
        '{"b":1}',
        '{"a":1,"b":2,"c":[]}',
        '{"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}]}',
        '{"b":1,"a":2,"c":[{"e":"3","d":1}, {"e":"4","d":2}]}',
        '{"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}, {"d":3,"e":"str_1"}, {"d":4,"e":"str_1"}, {"d":7,"e":"str_9"}]}'      
        ]) AS json
  ))
FORMAT Vertical;

/* Result:

Row 1:
──────
json:          {}
a_and_b:       (NULL,NULL)
d_uniq_values: []
e_uniq_values: []

Row 2:
──────
json:          {"a":1,"b":2}
a_and_b:       (1,2)
d_uniq_values: []
e_uniq_values: []

Row 3:
──────
json:          {"b":1,"a":2}
a_and_b:       (2,1)
d_uniq_values: []
e_uniq_values: []

Row 4:
──────
json:          {"b":1}
a_and_b:       (NULL,1)
d_uniq_values: []
e_uniq_values: []

Row 5:
──────
json:          {"a":1,"b":2,"c":[]}
a_and_b:       (1,2)
d_uniq_values: []
e_uniq_values: []

Row 6:
──────
json:          {"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}]}
a_and_b:       (1,2)
d_uniq_values: [3,4]
e_uniq_values: ['str_1','str_2']

Row 7:
──────
json:          {"b":1,"a":2,"c":[{"e":"3","d":1}, {"e":"4","d":2}]}
a_and_b:       (2,1)
d_uniq_values: [1,2]
e_uniq_values: ['3','4']

Row 8:
──────
json:          {"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}, {"d":3,"e":"str_1"}, {"d":4,"e":"str_1"}, {"d":7,"e":"str_9"}]}
a_and_b:       (1,2)
d_uniq_values: [3,4,7]
e_uniq_values: ['str_1','str_2','str_9']
*/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从clickhouse中的json中提取json? 的相关文章

  • ClickHouse学习教程

    概述 官网 a fast open source OLAP database management system It is column oriented and allows to generate analytical reports
  • clickhouse修改默认密码

    1 明文密码 vim etc clickhouse server users xml 找到下面的语句 增加明文密码
  • [1182]clickhouse的日期函数

    文章目录 时间获取 时间转换 时间计算 时间格式化 时间获取 获取当前时间戳 select toUnixTimestamp now 获取指定时间的时间戳 select toUnixTimestamp 2021 05 11 14 37 37
  • ClickHouse物化视图(八)

    文章目录 概述 1 物化视图与普通视图的区别 2 优缺点 3 基本语法 1 创建物化视图的限制 2 物化视图的数据更新 4 物化视图创建示例 5 更多文章和干货请关注公众号 概述 ClickHouse 的物化视图是一种查询结果的持久化 它确
  • click house索引

    稀疏索引 好处 范围查询过滤比较快 弊端 不适合点对点查询 索引必须依赖物理存储顺序 排序字段a b c 索引字段 a ab abc 索引字段必须是排序字段的前缀 语句级多线程 由于一条数据 不适合高qps的高频短查询 更适合低频的大数据复
  • 基于clickhouse做用户画像,标签圈选

    clickhouse在做用户画像标签时 怎么去做圈选 表结构应该是怎么样的 我们应该怎么去处理 能够使其高性能的圈选 尽可能缩小其占用的存储空间 这个问题 我通过代码给大家做下的演示 先在hive中对数据预处理 最初表结构 create t
  • 【ClickHouse内核】资源管理

    目录 概述 资源使用追踪机制 MemoryTracker ProfileEvents QueryProfiler 举个例子 资源隔离机制 内存隔离 CPU隔离 IO隔离 资源使用配额 Quota 机制 结论 概述 资源管理对于数据库来说是非
  • Clickhouse表引擎-日志系列

    1 表引擎的介绍 Clickhouse的表引擎类似MySQL的表引擎 表引擎决定了如何存储表的数据 主要包含如下特性 数据的存储方式和位置 写到哪里以及从哪里读取数据 支持哪些查询以及如何支持 并发数据访问 索引的使用 如果存在 是否可以执
  • 【ClickHouse内核】对于分区、索引、标记和压缩数据的协同工作

    目录 概述 写入过程 生成分区目录 生成索引 生成标记和数据压缩文件 各个底层物理文件生成的过程 查询过程 借助索引文件降低扫描范围 借助标记文件降低解压数据的大小 数据标记与压缩数据块的对应关系 多个数据标记对应一个压缩数据块 一个数据标
  • clickhouse数据导入遇到的问题

    1 采用mybatis写入数据 速度很慢的问题 采用mybatis拼接sql的方式 可以写入数据 但是效率很低 每秒数据大概200 300条数据记录 2 采用jdbc写入数据 可以使用两种数据源 新版本的包 import com click
  • 腾讯mini项目-【指标监控服务重构】2023-08-13

    今日已办 使用watermill框架替代当前的base runner框架 a 参考官方提供的sarama kafka Pub Sub https github com ThreeDotsLabs watermill kafka 实现kafk
  • clickhouse insert的数据结构

    clickhouse insert大致分为两部分 1 sql语句部分 insert into table f1 f2 2 数据部分 数据部分又分为3部分 头 数据 尾 数据头 数据块1 数据块2 数据块N 数据尾 从中可以看出 每个inse
  • 腾讯mini项目-【指标监控服务重构】2023-07-30

    今日已办 调研 CPU Memory Cadivisor adivisor gt Prometheus gt Grafana SigNoz Web google cadvisor Analyzes resource usage and pe
  • ClickHouse进阶(十六):clickhouse优化-表优化

    进入正文前 感谢宝子们订阅专题 点赞 评论 收藏 关注IT贫道 获取高质量博客内容 个人主页 含各种IT体系技术 IT贫道 大数据OLAP体系技术栈 Apache Doris Kerberos安全认证 CSDN博客 订阅 拥抱独家专题 你的
  • 如何在数据库docker容器中创建数据库?

    我是 docker 的新手 所以无法理解 如果我想构建 mysql postgresql clickhouse 等容器 如何创建数据库和数据库 表的模式 也许在 Dockerfile 中或者我可以从 docker compose yml 中
  • 在 clickhouse 中枢轴

    我想在 clickhouse 中进行数据透视 我的数据格式为 rule name result string 1 result 1 string 2 result 2 string 3 result 3 string 4 result 4
  • Clickhouse 不返回列标题

    我正在尝试从 clickhouse 获取一些关系数据并在 pandas 中使用 它有效 但 pd read sql query 返回数据帧 其中列名是第一行的值 相反 我希望看到关系表中命名的列名称 我用 Postgres 做了同样的尝试
  • Clickhouse数据导入

    我在Clickhouse中创建了一个表 CREATE TABLE stock plant Int32 code Int32 service level Float32 qty Int32 ENGINE Log 有一个数据文件 head n
  • Clickhouse 从 csv DB::NetException 导入数据:写入套接字时,连接被对等方重置

    我正在尝试通过以下方式将 gz 文件加载到 Clickhouse clickhouse client max memory usage 15323460608 format csv delimiter query 插入 tmp1 my te
  • clickhouse 将采样缩减为 OHLC 时间条间隔

    对于一张桌子 例如包含日期 价格时间序列 每个价格例如毫秒 如何将其下采样为具有时间间隔的开高低收 ohlc 行组 例如分钟 虽然使用数组的选项可以工作 但这里最简单的选项是使用按时间间隔分组的组合min max argMin argMax

随机推荐

  • Oracle 11g 重命名。保证是原子的?

    我在 plsql 脚本中有一些 5 重命名语句 drop table new rename old to new 旧 表包含非常有价值的信息 在我看来 如果重命名命令保证是原子的 那么我就解决了一个问题 它是原子的吗 如果没有 有没有办法进
  • 使用 Fancybox 版本 2 - 关闭第二个 fancybox 时重新打开第一个 fancybox 而不是简单地关闭

    使用由以下提供的 Fancybox 版本 2http fancyapps com fancybox support 我想从我的主页打开一个 fancybox 但在第一个 fancybox 中可以调用第二个 fancybox 但是当第二个精美
  • 使用 PostSharp 在 C# 中的构造函数上应用方面

    我正在 PostSharp 中研究各种概念 Updated 这是我的程序类 namespace myconstructor class Program static void Main string args createfolder st
  • 仅从 txt 文件中读取整数并将每个找到的值相加

    我正在尝试读取包含整数字符串的 txt 文件 我希望能够从该文件中获取整数并将每个值相加以创建总计 我已经成功地读取了该文件 并且能够识别整数和非整数 我该如何将整数相加呢 public void goalCount throws File
  • 智能感知和代码建议在 Visual Studio 2012 Ultimate RC 中不起作用

    I have just downloaded and installed Visual Studio 2012 Ultimate RC but I m having an issue with the intellisense it doe
  • 无法找到软件包 google-drive-ocamlfuse ,突​​然停止工作

    我最近一直在使用 colab 直到现在我使用 google drive ocamlfuse 将我的项目链接到我的驱动器 但它无法加载包 apt get update qq 2 gt 1 gt dev null apt get install
  • 在 SQL Server 中使用 childs 创建 JSON(Web 树的结构)

    请帮助我创建一个查询 或建议阅读哪些内容 我在 SQL Server 表中有一个树形结构 当所有后代节点都成为嵌套 JSON 对象时 我需要将表数据转换为具有子级的 Web 树的 JSON 格式 我有这个数据表 DROP TABLE IF
  • 是否存在针对特殊字符的 PowerShell 转义功能

    As with in the self answer I like to be able to remove control characters from text to get a single line string Does the
  • 获取鼠标指针下方的窗口句柄,同时忽略半透明窗口

    我创建了一个半透明表单 60 不透明度 黑色背景色 我的应用程序在整个屏幕上启动该表单并最大化 基本上 它在整个桌面上投射灰色 当用户将鼠标悬停在桌面上的窗口上时 我想获取该窗口的句柄 hWnd 对我来说最简单的方法是 暂时隐藏我的表单 或
  • Lambda 捕获实例变量

    在一次令人沮丧的调试会话后阅读 JLS 我发现 lambda 会捕获value有效最终局部变量 但如果您引用实例变量 它会捕获对该变量的引用 这对多线程代码有严重影响 例如 以下是从一个更大的程序中提取的 MCVE public class
  • wpf属性网格

    我的 WPF 应用程序需要一个 propertyGrid 经过大量搜索后我发现this当我将 propertyGrid 添加到表单并运行它时 我已经添加了程序集 exe 文件 但在表单中看不到它 xaml代码
  • GMail API超级管理员通过API访问其他用户帐户?

    我的机构目前自 2009 年初以来一直在运行 Google Apps for Education 我负责创建 删除 修改学生电子邮件帐户等 我已将所有现有的 C 应用程序从 GData 转换为新的 Admin SDK 生活很美好 上周 其中
  • EF 代码优先 - 配置一对零或一关系,无需共享 PK/FK

    我正在尝试在两个实体之间建立一对零或一的关系 并且我希望依赖实体仍包含其自己的 Indentity 列 而不是共享密钥 我想尽可能遵循约定 而不是显式声明任何不需要显式声明的内容 因此 不不必要数据注释或 Fluent api 子句 实体
  • .net JSON 日期格式

    作为 net 服务的响应 我得到以下日期格式 日期 1233323754523 0100 1233323754523 是时间戳格式的日期 但我不知道 0100 是什么意思以及如何从java代码生成它 Thanks 我假设时间戳采用 UTC
  • React Native无法连接到Android中的SSE

    我正在使用该包 https www npmjs com package react native sse 即使我从文档中复制粘贴代码 我也无法设法从 android 中的服务器接收事件 import EventSource from rea
  • 在谷歌地图中设置城市周围的边界

    我正在寻找一种使用 JavaScript 在 Google 地图 API V3 中设置特定城市 城镇周围边界的方法 API 中是否支持这种类型的事情 基本上 我不希望我的用户能够比城市更远地平移地图 包括乡村地区而不仅仅是城市范围 那么您想
  • 用 Java 下载文件。多线程,这有效吗?

    首先 每个人都需要知道我对 Java 编码还比较陌生 更准确地说 我对面向对象编程完全陌生 对于这个问题 我正在尝试创建一个下载类来更新进度条以显示其进度 可能还有我决定将来更新的其他内容 目前的问题是 在我看来 这不应该起作用 我可以在
  • 如何检查用户是否在 Firebase 和 Express/Node.js 中经过身份验证?

    如果我有一个页面只能由经过身份验证的用户访问 我如何检查用户是否经过身份验证 我尝试使用 firebase auth currentUser null 但我收到一条错误消息 TypeError firebase auth is not a
  • Pyplot 在缩放时保持文本大小

    我想在 pyplot 图中包含一些文本 并且能够在不改变比例的情况下放大它 请参阅下面的情节示例 我希望发生什么以及实际发生了什么 重现错误的代码 import matplotlib pyplot as plt plt plot 0 0 1
  • 如何从clickhouse中的json中提取json?

    我的基地有一个 json a 1 b 2 c d 3 e str 1 d 4 e str 2 我需要获取每个键的所有唯一值 但在提取键 d 和键 e 的值时遇到一些问题 Using SELECT DISTINCT JSONExtractRa