clickhouse 搭建副本集

一 原理:
  1 依赖ZK,ZK的基础上,ZK存储数据库元数据

2  使用复制表引擎创建复制表,包括ZK路径和副本名,相同ZK路径的表可以相互复制

3  复制表本身拥有数据校验功能,保证数据一致,推荐复制的最佳方案

4  复制最大的速度基本等于机器网卡的最大上限

5 一般创建表的副本名基本都是本机的域名或者IP,这样便于观察和记录

二 注意点:
  1 不会同步DDL操作,所以要预先创建表
  2 会进行双向全量同步,但是数据写入只会在单点写入,类似mysql的双主单写架构
  3 ZK配置文件要写在config文件中,其他写入在/etc/metrika.xml中
  4 复制引擎为ReplicatedMergeTree

5 任何情况下,不建议修改ZK的元数据。
三 配置文件 /etc/metrika.xml
  <remote_servers incl="clickhouse_remote_servers" >
  <remote_servers>
  <distable>
  <shard>
  <!-- Optional. Shard weight when writing data. Default: 1. -->
  <weight>1</weight>//权重
  <!-- Optional. Whether to write data to just one of the replicas. Default: false (write data to all replicas). -->
  <internal_replication>true</internal_replication>//单向写表
  <replica>
  <host>ip1</host>
  <port>9000</port>
   </replica>
  <replica>
   <host>ip2</host>
  <port>9001</port>
   </replica>
   </shard>
   </distable>
   </remote_servers>
   </remote_servers>
   <clickhouse_compression> //压缩
   <case>
   <min_part_size>10000000000</min_part_size>
   <min_part_size_ratio>0.01</min_part_size_ratio>
   <method>lz4</method>
   </case>
   </clickhouse_compression>
   配置文件/etc/config
  <zookeeper>
  <node index="1">
  <host>ZK_IP</host>
  <port>2181</port>
  </node>
   </zookeeper>

<interserver_http_host>本机IP</interserver_http_host>//添加IP绑定

<listen_host>::1</listen_host>

<listen_host>本机IP </listen_host>

这里一定要写在config里.不然不生效.我也是测试之后才发现的。。
四  创建复制引擎表
   节点1
   CREATE TABLE aa ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/aa','IP1') ORDER BY id AS SELECT * FROM mysql('IP:prot', 'db', 'table', 'user', 'password') ;
   因为create表操作不会同步
   所以
   根据/data/clickhouse/metadata/db/table.sql
   节点2
   CREATE TABLE aa
   (
   id UInt32,
   uid UInt32,
   repay_date Date,
   repay_amount String,
   type Int8,
   loan_id String
   )
  ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/aaa', 'IP1')//这里的IP1改成IP2
  ORDER BY id
  SETTINGS index_granularity = 8192;
  clickhouse -d db < table.sql
  然后观察即可,可以发现速度很快,这也是clickhouse的优势,同步秒级
五  ReplicatedMergeTree 引擎介绍
  非同步选项
  CREATE,DROP,ATTACH,DETACH and RENAME(针对分区表操作)
  同步选项
  insert 大部分DDL操作,包括列的操作,delete操作(只针对int类型,补充 全表删除 alter table delete where 1=1)

ALTER支持选项

ADD COLUMN, DROP COLUMN, CLEAR COLUMN, MODIFY COLUMN, MODIFY PRIMARY KEY, ATTACH PARTITION, DETACH PARTITION, DROP PARTITION, ATTACH PART, FETCH PARTITION, FREEZE PARTITION, DELETE WHERE, REPLACE    PARTITION, ON
六  监控
  select table,zookeeper_path,active_replicas,total_replicas from replicas;
  通过对比table和total_replicas的对比,可以发现哪些表没有同步
  通过对比active_replicas,total_replicas 可以发现集群服务是否都正常
七  伸缩节点
  对于clickhouse副本集的节点伸缩

1 修改配置文件,而定义集群的XML文件是可以热加载的,所以非常方便

2 如果节点宕机,并且可恢复,重启后无需关注,CH会自动同步

3 如果节点宕机,且不可恢复,需要更换新的机器,新增节点,ZK路径毫无疑问需要一致,分片名称务必不能一致,需要更改副本名
 八  补充
  1 副本集可以扩展成分片集群.需要定义shard标签
  2 对于不同步的语句要记得双向操作
  3 对于单节点引擎的效率对比,明天将会给出结果

列式数据库~clickhouse 副本集架构的搭建的更多相关文章

  1. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  2. 列式数据库~clickhouse 场景以及安装

    一 简介:列式数据库clickhouse的安装与基本操作二 基本介绍:ClickHouse来自俄罗斯,是一款列式数据库三 适用场景: 简单类型的大数据统计四 限制     1 不支持更新操作,不支持事 ...

  3. 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)

    概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...

  4. 列式数据库~clickhouse 底层存储原理

    简介:今天介绍列式数据库的一些基本原理 一  数据目录 Data目录 数据存储目录,数据按照part分成多个文件夹,每个文件夹下存储相应数据和对应的元信息文件 Metadata 表定义语句,存储所有表 ...

  5. 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)

    实战 案例使用 背景 ELK作为老一代日志分析技术栈非常成熟,可以说是最为流行的大数据日志和搜索解决方案:主要设计组件及架构如下: 而新一代日志监控选型如ClickHouse.StarRocks特别是 ...

  6. 列式数据库~clickhouse日常管理

    clickhouse日常管理一 变量相关  1 查看变量     system.setting相关表  2 设置变量     set variables= 请注意这里是session级别,如果想永久生 ...

  7. 列式数据库~clickhouse问题汇总

    一 简介:常见的clickhouse 问题汇总 二 问题系列  1 内存问题     Code: 241. DB::Exception: Received from localhost:9000, : ...

  8. 列式数据库~clickhouse 数据同步使用

    一 简介:进一步了解clickhouse二 数据操 1 单机建表 create TABLE aaa (    id UInt32,    uid UInt32,    amount Float64,  ...

  9. Hbase与Oracle比较(列式数据库与行式数据库)

    Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间.   Hbase本质上只 ...

随机推荐

  1. Get The Treasury HDU - 3642(扫描线求三维面积交。。体积交)

    题意: ...就是求体积交... 解析: 把每一层z抽出来,计算面积交, 然后加起来即可..! 去看一下 二维面积交的代码 再看看这个三维面积交的代码.. down函数里 你发现了什么规律!!! 参考 ...

  2. codeforces 777C

    C.Alyona and Spreadsheet During the lesson small girl Alyona works with one famous spreadsheet compu ...

  3. day30 小面试题 去重 (考核 __eq__ 以及 __hash__ )

    # 小面试题,要求将一个类的多个对象进行去重 # 使用set方法去重,但是无法实现,因为set 需要依赖eq以及hash, # hash 哈希的是内存地址, 必然不一样 # eq 比较的也是内存地址, ...

  4. idea 项目打包发布

    clean install -Dmaven.test.skip=true -pl 项目名(maven为准) -am -amd

  5. 13 Zabbix Item类型之Zabbix ODBC类型

    点击返回:自学Zabbix之路 13 Zabbix Item类型之Zabbix ODBC类型 ODBC是C语言开发的.用于访问数据库的中间件接口 . zabbix支持查询任何ODBC支持的数据库.za ...

  6. LOCALDB安装和连接

    关于LOCALDB的详细文档说明,包含安装,连接,共享连接等操作  https://technet.microsoft.com/zh-cn/hh510202 目的: 调试程序没有安装 sql serv ...

  7. AutoCompleteTextView 简单用法 实现自定义list adapter

    网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存       下面先上我写的代码:import andro ...

  8. IntelliJ IDEA工具的安装使用

    一:解压,到目录E:\IDEA\bin下,本机是64位,就点击idea64.exe,如下: 二:注册码获取地址:http://idea.lanyus.com/.如图: 将此注册码复制到上图中去. 三: ...

  9. MATLAB:图像的与、或、非、异或逻辑运算(&、|、~、xor)

    图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...

  10. #ifndef HeaderName_h #define HeaderName_h #endif 使用详解

    想必很多人都看到过头文件中写有:#ifndef HeaderName_h                                                #define HeaderNa ...