clickhouse升级最新版21.6.6

7/7/2021 clickhouse升级最新版21.6.6

# 闲聊

上章提到clickhouse版本更新迭代较快,bug较多。 以上篇文章20.8为例

项目中有用到clickhouse20.8来实时同步mysql8.13的数据,但是同步过去的表正常查询数据 插入数据都没有问题,遇到复杂查询(嵌套,运算,聚合)就会报错,在网上找了好多方法,最后才发现是clickhouse版本的问题,clickhouse官网文档在新的版本也有修复。

类似这一个sql,好像也不支持用in来嵌套

SELECT
  generateUUIDv4() as ukey,
  apiName,
  toStartOfDay(toDateTime(timestamp / 1000)) AS time,
  count(apiName) AS num
from
  audit.http_stripped_event
where
  apiName in (
  SELECT
    data_val
  from
    data_dataTransfer_ch.t_task_check_field_data
  where
    task_id = '796D82C8-CB64-41AC-84EE-9D292880FEBC'
    and data_version = 0)
GROUP BY
  apiName,
  time;

centos7836 :) select * from data_dataTransfer_ch_test.t_task_check_field_data;
SELECT *
FROM data_dataTransfer_ch_test.t_task_check_field_data
Received exception from server (version 20.8.3):
Code: 32. DB::Exception: Received from 192.168.78.36:9000. DB::Exception: Attempt to read after eof. 
0 rows in set. Elapsed: 0.405 sec. 

在这里插入图片描述 然后就将我的clickhouse进行了升级,以下是操作

# clickhouse升级最新版21.6.6

以我们项目为例,整理下ClickHouse升级的相关注意事项,由于鄙人学识浅薄,提供的方式方法仅供大家参考,引起的任何问题,本人不承担任何责任。安全生产第一条:记得备份、记得备份、记得备份,重要的事情说三遍。

我们ClickHouse是通过RPM方式来安装的,包括如下三个文件:

[root@k8s-master repo]# ll
total 159984
-rw-r--r-- 1 root root     62996 Jul  4 20:34 clickhouse-client-21.6.6.51-2.noarch.rpm
-rw-r--r-- 1 root root 163667677 Jul  4 20:34 clickhouse-common-static-21.6.6.51-2.x86_64.rpm
-rw-r--r-- 1 root root     87450 Jul  4 20:34 clickhouse-server-21.6.6.51-2.noarch.rpm

# 备份

1、备份配置文件

路径为:/etc/clickhouse-server,把这个文件夹下面都备份吧,正常安装新版本,clickhouse会自动将之前的配置文件config.xml备份,命名为:config.xml.rpmsave。不过小心使得万年船。

2、备份数据文件

数据文件的路径是在config.xml中进行配置的,我们配置指向一块单独的盘。 在这里插入图片描述总而言之,言而总之,把整个数据文件备份吧。

# 卸载旧版本

1、查看目前安装版本

yum list installed | grep clickhouse

2、删除软件版本

yum remove -y clickhouse-common-static

yum remove -y clickhouse-server-common

# 安装新版本

rpm包下载地址:https://repo.clickhouse.tech/rpm/stable/x86_64/ (opens new window) 下载完成之后直接

rpm -ivh *.rpm

安装成功后,会在/etc/clickhouse-server下生产相应的配置文件。

按照旧的config.xml配置信息,更改config.xml。也可先直接覆盖,如果后续不成功,还是一条一条来修改,最好比对下。防止有小版本差异。

新版本clickhouse由systemd控制 重启服务验证功能

systemctl start clickhouse-server