如何从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源码:函数分析和自定义函数UDF

    clickhouse函数介绍 clickhouse官方提供了许多的函数 包括常规的数学函数 聚合函数 时间函数 逻辑函数 比较函数等等 关于官方的函数可以在官方文档中查看 官方文档 当然随着clickhouse的流行 国内也有不少的博主已经
  • clickhouse ::: There is no supertype for types Date,string because some of them are String/

    clickhouse 遇到的日期问题报错 There is no supertype for types Date string because some of them are String 解决办法 clickhouse 出现这个记得把
  • clickhouse优化最佳实践

    clickhouse在易企秀数据仓库项目中已投入使用两年 主要为内部用户提供快速查询和多维分析的能力 希望你在业务当中遇到的性能问题 在这里都能得到解决 Clickhouse堪称OLAP领域的黑马 最近发布的几个版本在多表关联分析上也有了极
  • ClickHouse副本同步及分布式DDL的原理

    相信了解大数据的小伙伴们都知道 基本上所有的分布式存储系统都有一个共同的特点 将庞大的数据量分成多个小块存储在不同的机器上 通常称为分片 每个分片为了保证它数据不丢失 它们又有各自副本 ClickHouse也不例外 一起来看看ClickHo
  • 统一观测丨借助 Prometheus 监控 ClickHouse 数据库

    引言 ClickHouse 作为用于联机分析 OLAP 的列式数据库管理系统 DBMS 最核心的特点是极致压缩率和极速查询性能 同时 ClickHouse 支持 SQL 查询 在基于大宽表的聚合分析查询场景下展现出优异的性能 因此 获得了广
  • 【HBZ分享】Clickhouse常用命令及SQL语法

    Clickhouse常用命令及SQL语法 建库语句 CREATE DATABASE 库名 例 CREATE DATABASE first clickhouse MergeTree建表语句 create table 库名 表名 字段1 字段2
  • ClickHouse中文官方文档

    什么是 ClickHouse ClickHouse 是一个面向列的数据库管理系统 DBMS 用于查询的在线分析处理 OLAP 在 正常 的面向行的 DBMS 中 数据按以下顺序存储 排 手表ID Java启用 标题 好活动 事件时间 0 8
  • Clickhouse表引擎-日志系列

    1 表引擎的介绍 Clickhouse的表引擎类似MySQL的表引擎 表引擎决定了如何存储表的数据 主要包含如下特性 数据的存储方式和位置 写到哪里以及从哪里读取数据 支持哪些查询以及如何支持 并发数据访问 索引的使用 如果存在 是否可以执
  • 一百、Kettle(9.3.0)连接ClickHouse

    注意 低版本的kettle即使装ClickHouse驱动包后也不一定支持ClickHouse数据库连接 具体kettle从什么版本开始支持ClickHouse没测试过 只有高版本的kettle在安装ClickHouse驱动包后才支持Clic
  • 腾讯mini项目-【指标监控服务重构】2023-08-13

    今日已办 使用watermill框架替代当前的base runner框架 a 参考官方提供的sarama kafka Pub Sub https github com ThreeDotsLabs watermill kafka 实现kafk
  • 【ClickHouse数据库】如何在Win10的Ubuntu上通过ClickHouse存取行情数据

    如何在Win10的Ubuntu上通过ClickHouse存取行情数据 前言 一 ClickHouse是什么 二 如何在Ubuntu上安装ClickHouse 三 添加用户并设置密码 四 使用 1 使用DBeaver操作数据库 2 向Clic
  • 腾讯mini项目-【指标监控服务重构】2023-07-30

    今日已办 调研 CPU Memory Cadivisor adivisor gt Prometheus gt Grafana SigNoz Web google cadvisor Analyzes resource usage and pe
  • 在 clickhouse 中枢轴

    我想在 clickhouse 中进行数据透视 我的数据格式为 rule name result string 1 result 1 string 2 result 2 string 3 result 3 string 4 result 4
  • 在 clickhouse 中将日期转换为 Jalal 日期

    我使用clickhouse版本22 3 15 33 在我的表中 日期的格式如下 2023 01 15 我想计算表中每个 Jalal 月份变量的总和 所以首先我需要将此日期转换为 Jalal 日期 然后获取月份 然后使用group by基于月
  • 如何在clickhouse中添加列

    我在 clickhouse 中有一个表 称为 my table 其中有重复项 my table rep1 我需要添加一个 float64 类型的列 默认值 1 我该怎么做呢 我希望默认值实际上不会添加到现有条目中 The 文档 https
  • 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
  • Clickhouse字符串字段磁盘使用情况:null vs 空

    我正在为一个大型 Clickhouse 表设计一个架构 其中的字符串字段可能非常稀疏 我想知道这些字段是否应该为空或者我是否应该存储一个空字符串 作为默认值 就存储而言 哪个更好 您应该存储一个空字符串 可空列会占用更多磁盘空间 并使查询速
  • 在 Spark 中将带有 MapType 列的 DataFrame 写入数据库

    我正在尝试使用 clickhouse native jdbc 驱动程序将带有 MapType 列的数据帧保存到 Clickhouse 架构中也包含地图类型列 并遇到以下错误 Caused by java lang IllegalArgume

随机推荐

  • 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