Centos7从0-1安装部署Clickhouse验证与Mysql实时同步

CentOS 7 从 0-1 安装 ClickHouse 指南

在 CentOS 7 系统上安装 ClickHouse,需按‌环境准备、依赖安装、RPM 包下载、安装 ClickHouse、启动服务‌等步骤操作,以下是详细流程:

一、环境准备与依赖安装

检查系统版本‌:

执行 cat /etc/redhat-release,确认系统为 CentOS 7(如 CentOS Linux release 7.9.2009 (Core))。

检查 CPU 指令集‌:

执行 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported",确保 CPU 支持 SSE 4.2(ClickHouse 运行依赖该指令集)。

安装依赖包‌:

执行 yum install -y unixODBC,安装 ClickHouse 运行所需的 unixODBC 依赖。

二、下载 ClickHouse RPM 包

由于 ClickHouse 官方未直接提供 CentOS RPM 包,需通过‌Altinity 官方镜像站‌下载对应版本的 RPM 包。

访问下载页面‌:

打开浏览器访问 Altinity ClickHouse RPM 下载页(需确保网络可访问该域名)。

https://packagecloud.io/Altinity/clickhouse/

选择版本与包‌:

以 clickhouse-20.8.3.18-1.el7.x86_64 为例,需下载以下 4 个 RPM 包:

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

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

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

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

上传 RPM 包到服务器‌:

可通过 scp 命令将本地下载的 RPM 包上传到 CentOS 7 服务器(如 scp -r clickhouse/ root@<服务器IP>:/tmp/)。

三、安装 ClickHouse RPM 包

在 CentOS 7 服务器上,以‌root 权限‌执行以下命令安装 RPM 包(需按‌依赖顺序‌安装):

bash

Copy Code

安装 clickhouse-common-static(基础静态库)

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

安装 clickhouse-server-common(服务器基础组件)

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

安装 clickhouse-server(服务器主程序)

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

安装 clickhouse-client(客户端工具)

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

四、启动 ClickHouse 服务

安装完成后,执行以下命令启动 ClickHouse 服务:

bash

Copy Code

启动服务

systemctl start clickhouse-server

设置开机自启

systemctl enable clickhouse-server

五、验证安装与连接

验证服务状态‌:

执行 systemctl status clickhouse-server,确认服务状态为 active (running)。

连接客户端‌:

执行 clickhouse-client,进入 ClickHouse 客户端交互模式。

执行测试查询‌:

在客户端中执行 SELECT 1;,若返回 1,则安装成功。

六、配置与优化(可选)

若需修改 ClickHouse 配置(如数据存储路径、网络端口等),可编辑配置文件 /etc/clickhouse-server/config.xml 和 /etc/clickhouse-server/users.xml,修改后重启服务生效。

通过以上步骤,即可在 CentOS 7 系统上完成 ClickHouse 的从 0-1 安装与基础配置。

在 ClickHouse 中集成 MySQL

介绍如何使用 MySQL 表引擎从 MySQL 表中读取数据。

注意

在 ClickHouse Cloud 中,也可以使用 MySQL ClickPipe(目前处于公开测试阶段),便捷地将 MySQL 表中的数据迁移到 ClickHouse。

使用 MySQL 表引擎将 ClickHouse 连接到 MySQL

MySQL 表引擎允许将 ClickHouse 连接到 MySQL。可以在 ClickHouse 或 MySQL 表中执行 SELECT 和 INSERT 语句。本文介绍 MySQL 表引擎的基本用法。

1. 配置 MySQL

  1. 在 MySQL 中创建一个数据库:

    CREATE DATABASE db1;

  1. 创建一个表:

    CREATE TABLE db1.table1 (
    id INT,
    column1 VARCHAR(255)
    );

  1. 插入示例数据行:

    INSERT INTO db1.table1
    (id, column1)
    VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi');

  1. 创建一个用于连接到 ClickHouse 的用户:

    CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';

  1. 根据需要授予权限。(在本示例中,为 mysql_clickhouse 用户授予了管理员权限。)

    GRANT ALL PRIVILEGES ON . TO 'mysql_clickhouse'@'%';

注意

如果您在 ClickHouse Cloud 中使用此功能,可能需要允许 ClickHouse Cloud 的 IP 地址访问您的 MySQL 实例。 有关出站流量的详细信息,请参阅 ClickHouse Cloud Endpoints API。

2. 在 ClickHouse 中定义一张表

  1. 现在让我们创建一个使用 MySQL 表引擎的 ClickHouse 表:

    CREATE TABLE mysql_table1 (
    id UInt64,
    column1 String
    )
    ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')

最少需要的参数为:

parameter Description example
host 主机名或 IP mysql-host.domain.com
database MySQL 数据库名称 db1
table MySQL 表名 table1
user 连接到 MySQL 的用户名 mysql_clickhouse
password 连接到 MySQL 的密码 Password123!

注意

请参阅 MySQL table engine 文档页面以获取完整的参数列表。

3. 测试集成

  1. 在 MySQL 中插入一行示例数据:

    INSERT INTO db1.table1
    (id, column1)
    VALUES
    (4, 'jkl');

  1. 请注意,来自 MySQL 表的现有行已经出现在 ClickHouse 表中,同时还有您刚刚添加的新行:

    SELECT
    id,
    column1
    FROM mysql_table1

此时应能看到 4 行:

复制代码
Query id: 6d590083-841e-4e95-8715-ef37d3e95197

┌─id─┬─column1─┐
│  1 │ abc     │
│  2 │ def     │
│  3 │ ghi     │
│  4 │ jkl     │
└────┴─────────┘

返回 4 行。耗时: 0.044 秒。
  1. 现在向 ClickHouse 表中插入一行数据:

    INSERT INTO mysql_table1
    (id, column1)
    VALUES
    (5,'mno')

  1. 注意 MySQL 中已出现一条新记录:

    mysql> select id,column1 from db1.table1;

此时应能看到新行:

复制代码
+------+---------+
| id   | column1 |
+------+---------+
|    1 | abc     |
|    2 | def     |
|    3 | ghi     |
|    4 | jkl     |
|    5 | mno     |
+------+---------+
5 rows in set (0.01 sec)

总结

MySQL 表引擎允许你连接 ClickHouse 与 MySQL,以实现数据的双向交换。有关更多详细信息,请务必查看 MySQL 表引擎 的文档页面。

相关推荐
测试界的小码农36 分钟前
【图数据库实战进阶(01):从零认识 Neo4j,搭建第一个图数据库项目】
数据库·neo4j
x_SpiderMan1 小时前
搭建Oracle RAC 集群
数据库·oracle
测试界的小码农1 小时前
【图数据库实战进阶(03):Neo4j 图数据建模实战——节点、关系与属性应该怎么设计?】
数据库·oracle·neo4j
瑞克-桑切斯1 小时前
redis
数据库·redis·缓存
噜哥带你玩转 AI 大模型2 小时前
面试加分项!CASE WHEN 两种写法、CTE 公共表表达式、四大类窗口函数,老哥一次讲透
mysql·窗口函数·cte·sql 进阶
freejackman2 小时前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
bksczm2 小时前
InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer
数据库·mysql
招风的黑耳2 小时前
SpringBoot+Vue+MySQL 民宿在线预定平台 完整可运行版(源码+文档)
vue.js·spring boot·mysql
花间相见3 小时前
【计算基础|Redis02】【上手】五大数据类型命令逐条实操
数据库·redis·后端
敲上瘾4 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3