当前位置:   article > 正文

【clickhouse专栏】对标mongodb存储类JSON数据文档统计分析

【clickhouse专栏】对标mongodb存储类JSON数据文档统计分析



[]( )二、建立数据表

----------------------------------------------------------------



存储文档需要使用到Map这种数据类型,在某些比较旧的版本中,Map数据类型还是实验性的,不能直接使用。如果想使用,需要执行`set allow_experimental_map_type = 1;`。然后我们可以按照JSON的数据结构来建表,location是数组Array数据类型,meminfo是Map数据类型。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

CREATE TABLE dev_meminfo (

dev_ip String,

location Array(Float64),

meminfo Map(String, Float32)

)

ENGINE = MergeTree()

ORDER BY dev_ip;




clickhouse提供了数组类型Array(T),数组类型由多个T元素组成。T可以是任意的基础数据类型,或者也可以是数组类型。如果是数组类型就形成了多维数组,Cickhouse对多维数组的支持有限,所以不建议使用多维数组。数组里面所有的T元素的数据类型必须是一样的,否则会抛出异常。



[]( )三、数据入库

---------------------------------------------------------------



在linux环境下,我们可以将JSON数据保存为一个文档,命名如:dev\_meminfo.json。然后使用下面的命令行,完成文档JSON数据的入库。`jq`的作用是将JSON数组及Map从结构中剥离出来,从而符合JSONEachRow要求的输入格式。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

cat dev_meminfo.json |jq -c .[] | clickhouse-client --database acaidb -m -u acai --password ‘<你的密码>’ \

–query=“INSERT INTO dev_meminfo FORMAT JSONEachRow”




或者我们可以直接使用INSERT语句来完成数据的单条插入,如下:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

INSERT INTO dev_meminfo FORMAT JSONEachRow {“dev_ip”: “123.46.5.112”, “location”: [39.916144, 116.392582],“meminfo”: {“total”: 64,“used”: 27.8}};




[]( )四、查询数据

---------------------------------------------------------------



`select *` 的方式查询数据:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

clickhouse-client --database acaidb -m -u acai --password ‘4rfv$RFV’ \

–query=“SELECT * FROM dev_meminfo”

123.46.5.111 [39.916527,116.397128] {‘total’:64,‘used’:23.2}

123.46.5.112 [39.916144,116.392582] {‘total’:64,‘used’:27.8}




使用字段名称方式查询数据,需要注意的是Ciickhouse的数组的下标是从1开始的,这与我们传统编程开发中的规范是不一致的。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

clickhouse-client --database acaidb -m -u acai --password ‘4rfv$RFV’ \

–query=“SELECT dev_ip,location[1],location[2],meminfo[‘total’],meminfo[‘used’] FROM dev_meminfo”

123.46.5.111 39.916527 116.397128 64 23.2

123.46.5.112 39.916144 116.392582 64 27.8





### 最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

![image](https://img-blog.csdnimg.cn/img_convert/036df0e3ccf0a7661bcfd7964a37c347.webp?x-oss-process=image/format,png)

**这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!**

于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

[外链图片转存中...(img-9AhsMVVh-1714494608771)]

**这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!**

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/583130
推荐阅读
相关标签
  

闽ICP备14008679号