最近项目遇到个问题,就是mysql做数据分析高并发情况下,老是报超时错误,主要原因还是因为mysql进行大批量关联查询太耗时间,于是在网上查询了下资料,决定试一下clickhouse

一、Clickhouse简介

Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承Ingres而来的), Paradigm4和SciDB的创办者。Michael Stonebraker于2005年创办Vertica公司,后来该公司被HP收购,HP Vertica成为MPP列式存储商业数据库的高性能代表,Facebook就购买了Vertica数据用于用户行为分析。简单的说,ClickHouse作为分析型数据库,有三大特点:一是跑分快,二是功能多,三是文艺范 
官网地址:https://clickhouse.yandex/ 
官方文档:https://clickhouse.yandex/docs/en/single/ 

二、安装配置

clickhouse只要是Linux,64位都可以安装。 
优先支持Ubuntu,Ubuntu有官方编译好的安装包可以使用。 
其次是CentOS和RedHat,有第三方组织altinity编译好的rpm包可以使用。 
如果是其他Linux系统,需要自己编译源码。 而且,机器的CPU必须支持SSE 4.2指令集。 

所以我们安装前先检查一下系统是否支持SSE 4.2指令集,我的系统还是一贯的Centos7.6,我们打开shell,输入

grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported” 回车

clickhouse的java驱动有哪些 clickhouse vertica_xml

可以看到是支持SSE 4.2的

接下来就正式开始安装

1、下载相关最新包:下载地址:https://packagecloud.io/altinity/clickhouse

我们下载4个文件

clickhouse-client-20.8.3.18-1.el7.x86_64.rpm

clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm

clickhouse-server-20.8.3.18-1.el7.x86_64.rpm

clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm

2.将上述下载的包移至Centos服务器目录中并进入该目录

clickhouse的java驱动有哪些 clickhouse vertica_数据库_02

上传后

clickhouse的java驱动有哪些 clickhouse vertica_xml_03

3、我们按照下面的文件顺序执行安装

rpm -ivh clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm

rpm -ivh clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm

rpm -ivh clickhouse-server-20.8.3.18-1.el7.x86_64.rpm

rpm -ivh clickhouse-client-20.8.3.18-1.el7.x86_64.rpm

clickhouse的java驱动有哪些 clickhouse vertica_数据分析_04

4、启动服务 执行 service clickhouse-server start

clickhouse的java驱动有哪些 clickhouse vertica_xml_05

5、进入客户端

执行 clickhouse-client

clickhouse的java驱动有哪些 clickhouse vertica_数据库_06

可以看到我们已经可以使用ck了 打印出了版本号

三、使用dbeaver工具连接ck,没使用过的请看我的使用教程 大数据分析学习第八课 数据仓库Hive配置客户端可视化管理工具DBeaver

我们新建数据库连接,搜索选择clickhouse

clickhouse的java驱动有哪些 clickhouse vertica_xml_07

下一步

clickhouse的java驱动有哪些 clickhouse vertica_数据库_08

我们填写主机地址slave107,点确定后,dbeaver会检查需要的驱动并开始下载驱动

clickhouse的java驱动有哪些 clickhouse vertica_xml_09

驱动安装后,我们遇到下面的报错

clickhouse的java驱动有哪些 clickhouse vertica_xml_10

应该是我们没有启用外网访问

我们进到server的配置文件config.xml

clickhouse的java驱动有哪些 clickhouse vertica_数据库_11

我们找到<listen_host>::</listen_host>这行  取消注释

clickhouse的java驱动有哪些 clickhouse vertica_数据库_12

接下来检查配置 users.xml

vi users.xml

主要检查下面节点如下正常即可

<networks>
    <ip>::/0</ip>
</networks>

接下来我们需要重启一下ck服务使配置生效

sudo service clickhouse-server stop #停止
sudo service clickhouse-server start #启动

clickhouse的java驱动有哪些 clickhouse vertica_数据分析_13

重启后 我们先用client连接测试一下

执行 clickhouse-client --port 9000 --host 127.0.0.1 --multiline

clickhouse的java驱动有哪些 clickhouse vertica_数据分析_14

测试正常 接下来我们继续使用 dbeaver连接,这里注意我们使用的端口不能是9000了,就用默认的8123

clickhouse的java驱动有哪些 clickhouse vertica_数据分析_15

可以看到连接正常了,左侧数据库连接展开,我们可以看到ck默认有2个库,一个default,里面什么都没有,一个system,是内置的一些系统表

clickhouse的java驱动有哪些 clickhouse vertica_数据分析_16

我们在default库新建一个test表

clickhouse的java驱动有哪些 clickhouse vertica_数据库_17

保存会弹出一个界面,里面有建表sql

clickhouse的java驱动有哪些 clickhouse vertica_xml_18

我们点击执行,表就建好了,我们插入4条测试数据

clickhouse的java驱动有哪些 clickhouse vertica_xml_19

接下来我们统计每个人名的个数,可以自己手工输入sql,也可以右键表名=>生成sql

clickhouse的java驱动有哪些 clickhouse vertica_数据库_20

总结
        感谢能看到这里的朋友😉