clickhouse是一个列式数据库(系统)。
官方文档
官 比较全,但也可以说比较杂,下面就是我个人的一些总结,以及在实际工作中的应用场景。
1.clickhouse适用场景
clickhouse主要适合那种大量数据做分析的场景。
一般数据insert进去,也就不要修改和删除了。
比如那种埋点的数据,每秒成百上千条插入,但对事务的要求不高。
clickhouse比较吃内存,这也是它比较快的原因之一。
我实际工作的场景,就是把每天几百万甚至几千万的业务数据,在各个维度把数据拉平,存在clickhouse中,所以存的是最细分的数据,然后作为统计 表的查询库,可以查出各个维度下或多个维度下的数据了。
2.clickhouse与mysql类比。
初学的时候,你可以把clickhouse类比mysql来用。
同样的都有数据库,都要创建表,都支持sql标准。
clickhouse的数据也是存在表中的,先建库,再建表,最后insert数据。
clickhouse默认有一个default库,建表的时候,数据类型的定义和mysql不一样,以及引擎也不一样。
clickhouse一般都用的是mergeTree引擎,我们后面也是以这个引擎为例。
3.clickhouse常用数据类型
clickhouse表中的每个字段,都必须在创建表的时候指定数据类型,常用的有以下几种:
1.整形
常用UInt16
2.浮点型
Float32, Float64
我用的比较少
3.Decimal
涉及到钱等类似其他精细计算的类型
4.String
最常用的类型,万物皆String
5.Date
精确到天,对应java中,是long类型。
insert的时候注意单位
当表的引擎用mergeTree时,还必须要有个Date类型的字段。
6.DateTime
精确到秒,对应java中,也是long类型
insert的时候,也是注意单位
7.其他
官 还提供了其他类型,平时用不到,所以先不说了
5.clickhouse的引擎
clickhouse提供了很多引擎,我们注意说说mergeTree
mergeTree引擎,主要有个分区的特点。
我们可以指定按天分区,或者按月分区,那么后面查询或者删除的时候,就可以按天或按月。
建表规范如下
重点看mergeTree()后面各个属性的定义顺序
删除数据(mergeTree引擎)
带分区的引擎,可以按分区删除。
以按天分区的表举例:
表名:response_event
不需要指定字段名,因为建表的时候已经指定了。
如果这个字段是null,就用 ‘0000-00-00’
4.实战—java中使用clickhouse
1.使用maven
2.JDBC连接数据库
3.创建表
4.插入数据
5.查询数据
5.clickhouse可视化软件
类似于mysql的navicat,clickhouse常用DBeaver来可视化
DBeaver官 下载,直接安装
![[数据库] --- clickhouse](https://www.iruanshi.com/news2/wp-content/uploads/2023/02/slt.png)
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成表31461 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!