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. mybatis 缓存(cache)的使用

    许多应用程序,为了提高性能而增加缓存, 特别是从数据库中获取的数据. 在默认情况下,mybatis 的一级缓存是默认开启的.类似于hibernate, 所谓一级缓存,也就是基于同一个sqlsessio ...

  2. BZOJ2795&2890&3647[Poi2012]A Horrible Poem——hash

    题目描述 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节.如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. 输入 第一行一个正整数n (n<= ...

  3. Leetcode 189.旋转数组 By Python

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 ...

  4. NOIP2013题解

    NOIP2013题解 Day1 转圈游戏 circle 快速幂模板题. #include<iostream> using namespace std; int n,m,k,x; int f ...

  5. hdu 2844 coins(多重背包 二进制拆分法)

    Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. On ...

  6. .NET:C# 如何实现的闭包?

    背景 C# 在编译器层面为我们提供了闭包机制(Java7 和 Go 也是这种思路),本文简单的做个解释. 背景知识 你必须了解:引用类型.值类型.引用.对象.值类型的值(简称值). 关于引用.对象和值 ...

  7. eclipse复制工作空间配置

    eclipse复制工作空间配置   eclipse复制工作空间配置 总结一下,复制工作空间配置步骤如下: 1 使用eclipse新建workspace. 2 将新建的workspace下的.metad ...

  8. hive hadoop 大数据初探

    一.环境搭建: 1.安装虚拟机,mac 系统推荐parallels:直接转化讲师发的xmdl后缀名的文件:里面自带了环境: 注意事项:mac 本机和虚拟机中centos 的通讯,需要修改centos中 ...

  9. vs widows服务的发布

    1.在service1.cs里空白处点击右键,弹出菜单选择 添加安装程序 2.自动生成ProjectInstaller.cs文件后 可在InitializeComponent()方法里自定义服务名称 ...

  10. CM记录-Hbase启用安全认证控制

    1.cm-cluster2-HBase-2-HBase 安全授权(hbase.security.authorization)-simple改为true 2.添加配置 1)超级用户-加入root.hba ...