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 表中执行 SELECTINSERT 语句。本文介绍 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 表引擎 的文档页面。

相关推荐
无级程序员5 分钟前
clickhouse创建用户,登录出错的问题,code 516
linux·服务器·clickhouse
l1t5 分钟前
DeepSeek总结的在单节点上处理 1TB Parquet 数据方法
数据库·人工智能·duckdb
么么...9 分钟前
系统性 MySQL 优化:性能分析、索引设计与失效场景全解
数据库·经验分享·sql·mysql
heartbeat..14 分钟前
数据库性能优化:优化的时机(表结构+SQL语句+系统配置与硬件)
java·数据库·mysql·性能优化
YongCheng_Liang15 分钟前
分布式数据库核心原理深度解析:架构、理论与事务解决方案
运维·数据库·sql
UrSpecial17 分钟前
IM项目——文件管理子服务
服务器·数据库·oracle
一个响当当的名号18 分钟前
lectrue6 缓冲池
数据库
小唐同学爱学习19 分钟前
缓存与数据库一致性问题
java·数据库·spring boot·缓存
chem411121 分钟前
ONENET API创建设备并返回设备密钥和设备ID
运维·服务器·mysql
Traced back23 分钟前
Windows窗体应用 + SQL Server 自动清理功能方案:按数量与按日期双模式
数据库·windows·c#·.net