当前位置: 首页 > news >正文

clickhouse扩缩容

一、背景

我们之前已经学会了搭建clickhouse集群,我们搭建的是一套单分片两副本的集群,接下来我们来测试下clickhouse的扩缩容情况

二、扩容

扩容相对来说比较简单,我们原来的架构如下

hostshardreplica
192.169.1.111
192.169.1.212

现在我们要在这个基础上在加个shard,那么该怎么弄呢,其实很简单,准备一台机器192.168.1.3,然后将配置与之前的配置改成一致,这是基础配置,接下来是改动的部分

192.168.1.1和192.168.1.2,192.168.1.3的配置文件改动相同部分如下

文件原来的配置

<remote_servers><cluster_2S_1R><shard><internal_replication>true</internal_replication><replica><host>192.168.1.1</host><port>9000</port></replica><replica><host>192.168.1.2</host><port>9000</port></replica></shard></cluster_2S_1R></remote_servers>

改动后的配置

<remote_servers><cluster_2S_1R><shard><internal_replication>true</internal_replication><replica><host>192.168.1.1</host><port>9000</port></replica><replica><host>192.168.1.2</host><port>9000</port></replica></shard><shard><internal_replication>true</internal_replication><replica><host>192.168.1.3</host><port>9000</port></replica></shard></cluster_2S_1R></remote_servers>

192.168.1.3的单独改动的配置,macros配置如下

    <macros><shard>02</shard><replica>192.168.1.3</replica></macros>

接下来就可以查看集群信息了,发现我们新增的分片已经出现在上面了

select * from system.clusters;

扩容后的架构

hostshardreplica
192.169.1.111
192.169.1.212
192.169.1.321
# MergeTree的复制引擎是ReplicatedMergeTree,所以这里并不会复制数据
CREATE DATABASE db1 ON CLUSTER cluster_2S_1R;CREATE TABLE db1.table1 ON CLUSTER cluster_2S_1R
(`id` UInt64,`column1` String
)
ENGINE = MergeTree
ORDER BY id;
# 分片1插入
INSERT INTO db1.table1 (id, column1) VALUES (1, 'abc');
# 分片2插入
INSERT INTO db1.table1 (id, column1) VALUES (2, 'def');
# 在不同节点查询可以看到不同节点的数据不一致
SELECT * FROM db1.table1;# 创建设置分片键的表
CREATE TABLE db1.table1_dist ON CLUSTER cluster_2S_1R
(`id` UInt64,`column1` String
)
ENGINE = Distributed('cluster_2S_1R', 'db1', 'table1', rand())# 查看表
SELECT * FROM db1.table1_dist;

三、缩容

缩容与扩容的操作反向即可,但是这里要注意,clickhouse并不具备自动调动分片的能力,所以需要手动复制分片的数据导入到还存活的分片,不然数据会丢失

http://www.lryc.cn/news/133633.html

相关文章:

  • 动漫3D虚拟人物制作为企业数字化转型提供强大动力
  • 数据同步工具比较:选择适合您业务需求的解决方案
  • Python中数据结构列表详解
  • 引领行业高质量发展|云畅科技参编《低代码开发平台创新发展路线图(2023)》
  • Ubuntu22.04编译Nginx源码
  • 视频上传,限制时长,获取视频时长
  • Open3D 进阶(5)变分贝叶斯高斯混合点云聚类
  • 5、css学习5(链接、列表)
  • Synchronized与Java线程的关系
  • 使用本地电脑搭建可以远程访问的SFTP服务器
  • 批量修改文件名怎么操作?
  • 【LeetCode】538.把二叉搜索树转换为累加树
  • linux 安装 kibana
  • STM32入门——IIC通讯
  • DTC 19服务学习2
  • 【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统
  • 【vue3】对axios进行封装,方便更改路由并且可以改成局域网ip访问(附代码)
  • Java IO流(三)线程模型
  • string(模拟实现与深拷贝)
  • 5.Vue_Element
  • 链路追踪jaeger
  • 神经网络基础-神经网络补充概念-42-梯度检验
  • <kernel>kernel 6.4 USB-之-hub_port_connect()分析
  • linux驱动学习3-外部中断
  • vue中的canvas插件
  • 分享图片 | 快速浏览网页资源,批量保存、一键分享图片
  • Programming abstractions in C阅读笔记:p123-p126
  • 自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:LLMChain、RouterChain和SequentialChain]
  • ElasticSearch-安装部署全过程
  • mathematica报错:Tag Plus is \ Protected