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 表引擎 的文档页面。

相关推荐
十五年专注C++开发21 小时前
浅谈Qt中的QSql模块整体设计
开发语言·数据库·c++·qt
TDengine (老段)21 小时前
TDengine 生态系统连接指南
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
k***921621 小时前
C++:继承
java·数据库·c++
一只旭宝1 天前
Linux专题十二:mysql数据库以及redis数据库
linux·数据库·mysql
萧曵 丶1 天前
MySQL B+树详解
数据库·b树·mysql
鱼跃鹰飞1 天前
面试题:Spring事务失效的八大场景
数据库·mysql·spring
ss2731 天前
类的线程安全:多线程编程-银行转账系统:如果两个线程同时修改同一个账户余额,没有适当的保护机制,会发生什么?
java·开发语言·数据库
郑泰科技1 天前
windows下启动hbase的步骤
数据库·windows·hbase
子一!!1 天前
MySQL数据库基础操作
数据库·mysql·oracle
DarkAthena1 天前
【GaussDB】从 sqlplus 到 gsql:Shell 中执行 SQL 文件方案的迁移与改造
数据库·sql·oracle·gaussdb