ClickHouse支持单机运行与分布式集群运行,这里先介绍单机ClickHouse的安装、部署、运维配置的知识。关于在macOS、Linux系统中安装ClickHouse,可以参考官网(https://clickhouse.com/#quick-start),获得快速安装ClickHouse的命令行,这里仅做简单介绍。虽然ClickHouse官网文档(https://clickhouse.com/docs/zh/getting-started/install)没有提供Windows操作系统下安装ClickHouse的方法,但是2.1.3节详细介绍了使用Docker ClickHouse镜像安装部署运行的方法,可以作为参考。你也可以直接使用ClickHouse源码安装,详细安装方法可以参考官网文档,此处不再赘述。
本节介绍如何在macOS系统中安装单机ClickHouse。
1.直接下载二进制包安装
如果采用Intel芯片的macOS,则执行如下安装命令:
如果采用Apple Silicon芯片的macOS,则执行如下安装命令:
2.使用命令行启动ClickHouse Server
在终端执行如下命令即可启动ClickHouse Server:
通过运行日志,我们可以看到ClickHouse Server的启动过程:
有了这个脉络,我们就可以把源码拿过来,提纲挈领地去深入了解背后的细节了。
3.使用clickhouse client命令行连接ClickHouse Server
在终端执行如下命令,连接端口号为9000的ClickHouse Server:
连接成功,输出如下所示:
在客户端交互界面中,执行如下SQL语句,查询当前Server的全部数据列表:
查询成功,输出如下所示:
本节介绍如何在Linux系统中安装ClickHouse。Linux有很多版本,不同的版本对应不同的ClickHouse安装方式。
1.在Ubuntu与Debian系统中安装
直接下载二进制包进行安装:
启动服务端:
连接客户端:
2.在CentOS与RedHat系统中安装
直接下载二进制包进行安装:
启动服务端:
连接客户端:
3.在其他Linux(x86)系统中安装
对于其他Linux系统,ClickHouse的安装过程比较复杂,直接参考如下命令行一步一步执行即可:
4.在ARM版Linux系统中安装
执行如下命令进行安装:
5.在FreeBSD(x86_64)系统中安装
执行如下命令进行安装:
本节介绍如何在Windows操作系统中使用Docker安装ClickHouse(在macOS、Linux系统中同样可以按此操作完成安装)。
1.安装Docker
首先,访问https://www.docker.com/get-started,下载Docker安装包。
安装好Docker桌面版之后。除了可以在界面查看Docker上与ClickHouse相关的镜像清单,还可以通过命令行查看:
2.安装Docker ClickHouse镜像
访问Docker ClickHouse镜像页面:https://hub.docker.com/r/clickhouse/clickhouse-server/,了解ClickHouse镜像的详细介绍。
下面我们就从拉取Docker的ClickHouse镜像开始安装,然后在客户端中访问连接ClickHouse服务。
首先,拉取clickhouse-server镜像,在命令行中执行如下命令:
输出如下:
可以在Docker桌面看到新拉取的clickhouse-server镜像,如图2-1所示。
图2-1 在Docker桌面看到新拉取的clickhouse-server镜像
3.启动ClickHouse Server实例
可以在Docker界面上直接单击RUN按钮,启动ClickHouse Server,如图2-2所示。
图2-2 在Docker界面上直接启动ClickHouse Server
单击RUN按钮,弹出运行新建容器界面,如图2-3所示。
为了简便,我们在Container Name处输入clickhouse-server,在Ports下面的Local Host处输入9000(容器虚拟机本机的端口号),其他值保持默认即可,如图2-4所示。
图2-3 新建容器界面
图2-4 新建ClickHouse Server容器配置
单击Run按钮,在Docker界面菜单Containers/Apps目录下可以看到运行中的Docker容器——clickhouse-server,如图2-5所示。
图2-5 运行中的Docker容器——clickhouse-server
注意,正在运行的Container实例的端口号为9000。9000是Docker容器对外暴露的端口号,我们后面使用客户端工具连接ClickHouse Server时用到的端口号即是9000。单击运行中的容器实例,进入实例控制后台,可以看到有3个Tab页面——LOGS、INSPECT、STATS,如图2-6所示。
图2-6 ClickHouse Server容器实例LOGS页面
在Docker控制台LOGS页面下可以看到ClickHouse Server启动日志:
另外,在INSPECT页面中可以看到ClickHouse的配置文件CLICKHOUSE_CONFIG的目录是/etc/clickhouse-server/config.xml,如图2-7所示。
图2-7 容器实例配置
打开config.xml文件,内容如下:
关于ClickHouse的配置,我们将在后文中详细介绍,这里不再展开。
最后,在STATS页面中可以看到ClickHouse的基本性能监控数据,如图2-8所示。
图2-8 ClickHouse的基本性能监控数据
4.连接Docker容器的ClickHouse Server
我们使用JetBrains出品的数据库客户端工具DataGrip来连接ClickHouse Server。
首先,新建数据源。打开数据源配置界面,如图2-9所示。
按照图2-9所示设置General页面中的各参数。单击Test Connection按钮,输出如下信息,表示连接成功。
从上面的信息中可以看到:
1)版本号为ClickHouse 22.2.2.1。
2)驱动信息为ru.yandex.clickhouse-jdbc。JetBrains出品的DataGrip工具里自带Click-House的JDBC,可以直接使用。
图2-9 新建ClickHouse Server连接
如果想要从本机命令行客户端直接连接到Docker ClickHouse Server,可以执行下面的命令:
其中,冒号前面的clickhouse-server是Docker容器ClickHouse实例的名字。如果本机Docker没有clickhouse/clickhouse-client镜像,会触发自动下载,耐心等待即可。上面命令的输出如下:
至此,终端已经成功连接到Docker ClickHouse实例。执行下面的SQL语句,可以查看当前ClickHouse的版本号:
可以看到,当前ClickHouse的版本号是22.2.2.1。
要查看schema下面的所有数据库信息,执行如下SQL语句即可:
另外,我们可以在需要执行的SQL语句前面加上EXPLAIN查看执行计划,详细内容请参考6.7节。