文章目录
部署 ClickHouse 集群
Quantum Insights 的部署将基于一个高可用的分布式 ClickHouse 集群,以实现对大规模数据的高效处理和查询。
1.1 环境准备
- 准备至少三台服务器,用于 ClickHouse 的分布式部署。
- 每台服务器的系统要求: - 操作系统: CentOS 7- 内存:16GB 以上- CPU:8 核 以上- 磁盘:SSD 500GB 以上- 网络:千兆网络
1.2 安装 ClickHouse
在每台服务器上执行以下步骤进行 ClickHouse 的安装。
> yum install-y yum-utils
> yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
> yum install-y clickhouse-server clickhouse-client
1.3 配置集群
在每台服务器的配置文件
/etc/clickhouse-server/config.d/metrika.xml
中添加集群配置。假设有三台服务器,IP 分别为
192.168.1.1
,
192.168.1.2
,
192.168.1.3
。
<yandex><remote_servers><ycloud_clickhouse_cluster><shard><internal_replication>true</internal_replication><replica><host>192.168.1.1</host><port>9920</port><user>default</user><password>ycloud_123</password></replica></shard><shard><internal_replication>true</internal_replication><replica><host>192.168.1.2</host><port>9920</port><user>default</user><password>ycloud_123</password></replica></shard><shard><internal_replication>true</internal_replication><replica><host>192.168.1.3</host><port>9920</port><user>default</user><password>ycloud_123</password></replica></shard></ycloud_clickhouse_cluster></remote_servers><zookeeper><nodeindex="1"><host>192.168.1.10</host><port>2284</port></node><nodeindex="2"><host>192.168.1.11</host><port>2284</port></node><nodeindex="3"><host>192.168.1.12</host><port>2284</port></node></zookeeper><macros><shard>01</shard> ### 根据节点填写
<replica>192.168.1.1</replica> ### 根据节点填写
</macros><networks><ip>::/0</ip></networks><clickhouse_compression><case><min_part_size>10000000000</min_part_size><max_partitions_per_insert_block>0</max_partitions_per_insert_block><min_part_size_ratio>0.01</min_part_size_ratio><method>lz4</method></case></clickhouse_compression></yandex>
⚡️: zk 自行创建 ,macros根据节点填写,port部分我是调整过的根据实际情况填写
重启 ClickHouse 服务器以应用新的配置。
> systemctl restart clickhouse-server
创建分布式表
2.1 创建本地表
在每台服务器上创建本地表
gatewaySvrAls
。
CREATETABLEdefault.gatewaySvrAls ON CLUSTER ycloud_clickhouse_cluster
(
logtime DateTime,
method String,
orderId String,
transactionid String,
serialnumber String,
code Int32,
reserveNo String
)ENGINE= ReplicatedMergeTree('/clickhouse/tables/{shard}/default/gatewaySvrAls','{replica}')PARTITIONBY toYYYYMMDD(logtime)PRIMARYKEY(logtime,
orderId,
serialnumber)ORDERBY(logtime,
orderId,
serialnumber)
SETTINGS index_granularity =8192;
2.2 创建分布式表
在每台服务器上创建分布式表
gatewaySvrAls_all
,以对本地表进行分布式查询。
CREATETABLEdefault.gatewaySvrAls_all ON CLUSTER ycloud_clickhouse_cluster ASdefault.gatewaySvrAls
ENGINE=Distributed(ycloud_clickhouse_cluster,default, gatewaySvrAls, rand())
2.3 删除分布式表
在集群任意节点上执行
DROPTABLEdefault.gatewaySvrAls ON CLUSTER ycloud_clickhouse_cluster;DROPTABLEdefault.gatewaySvrAls_all ON CLUSTER ycloud_clickhouse_cluster;
测试分布式表
3.1 插入测试数据。
INSERTINTO gatewaySvrAls VALUES('2024-05-15 14:19:24','ycloud_1','123456','YCLOUD123456','','100','');INSERTINTO gatewaySvrAls VALUES('2024-05-15 14:19:25','ycloud_2','123456','YCLOUD123456','','100','');
在分布式表上执行查询,以验证集群配置和分布式表的工作情况。
SELECT * FROM default.gatewaySvrAls;
配置和管理
为了确保 Quantum Insights 的高可用性和稳定性,可以配置监控和报警系统,如 Prometheus 和 Grafana,并定期备份数据。
4.1 配置监控
- 安装 Prometheus 并配置 ClickHouse Exporter。
- 使用 Grafana 创建可视化面板监控集群健康状况。
4.2 数据备份
定期备份 ClickHouse 数据以防数据丢失。
# 在每台服务器上定期执行备份
clickhouse-backup create backup_name
clickhouse-backup upload backup_name
数据迁移
数据迁移需要确保数据从旧系统到新系统的完整性和一致性,本次使用的官方客户端进行数据迁移
5.1 导出
clickhouse-client -h 192.168.1.1--port 9920 -u default --password ycloud_123 --query="SELECT * FROM default.gatewaySvrAls" --format=CSV > output.csv
5.2 导入
clickhouse-client --host 192.168.1.1--port 9920 --user default --password ycloud_123 --query="INSERT INTO default.gatewaySvrAls FORMAT CSV" < output.csv
版权归原作者 努力做一名技术 所有, 如有侵权,请联系我们删除。