首页 > 其他分享 >ClickHouse 副本

ClickHouse 副本

时间:2022-11-11 08:22:21浏览次数:37  
标签:sku 00 副本 05 hadoop201 2022 id ClickHouse

ClickHouse 副本的目的主要是保障数据的高可用性,即使一台ClickHouse节点宕机,那么也可以从其他服务器获得相同的数据。官网地址如下: https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication/

1、副本写入流程

2、配置步骤

启动zk集群

[root@hadoop201 hui]# jps.sh
-----------hadoop201---------------
2885 Jps
2247 QuorumPeerMain
-----------hadoop202---------------
1559 QuorumPeerMain
2124 Jps
-----------hadoop203---------------
1561 QuorumPeerMain
2123 Jps
在hadoop201的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml的配置文件,内容如下:
[root@hadoop201 hui]# vim /etc/clickhouse-server/config.d/metrika.xml
<?xml version="1.0"?>
<yandex>
        <zookeeper-servers>
            <node index="1">
                <host>hadoop201</host>
                <port>2181</port>
            </node>
            <node index="2">
                <host>hadoop202</host>
                <port>2181</port>
            </node>
            <node index="3">
                <host>hadoop203</host>
                <port>2181</port>
            </node>
        </zookeeper-servers>
</yandex>
修改文件所属组
[root@hadoop201 config.d]# chown clickhouse:clickhouse metrika.xml 
分发
[root@hadoop201 hui]# sudo /home/hui/bin/sxync.sh /etc/clickhouse-server/config.d/metrika.xml 
在 hadoop201的/etc/clickhouse-server/config.xml中增加 大约719行左右
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
分发 config.xml
[root@hadoop201 hui]# /home/hui/bin/sxync.sh /etc/clickhouse-server/config.xml 
分别在hadoop201 hadoop202和hadoop203 上启动ClickHouse服务
[hui@hadoop201 ~]$ chkall.sh sudo systemctl start clickhouse-server
在hadoop201和hadoop202上分别建表,副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表
hadoop201 :) ccreate table t_order_rep (
:-]      id UInt32,
:-]      sku_id String,
:-]      total_amount Decimal(16,2),
:-]      create_time  Datetime
:-]   ) engine =ReplicatedMergeTree('/clickhouse/tables/01/t_order_rep','rep_201')
:-]     partition by toYYYYMMDD(create_time)
:-]     primary key (id)
:-]     order by (id,sku_id);

CREATE TABLE t_order_rep
(
    `id` UInt32, 
    `sku_id` String, 
    `total_amount` Decimal(16, 2), 
    `create_time` Datetime
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/t_order_rep', 'rep_202')
PARTITION BY toYYYYMMDD(create_time)
PRIMARY KEY id
ORDER BY (id, sku_id)

Ok.

0 rows in set. Elapsed: 0.173 sec. 
hadoop202 建表
hadoop202 :) ccreate table t_order_rep (
:-]      id UInt32,
:-]      sku_id String,
:-]      total_amount Decimal(16,2),
:-]      create_time  Datetime
:-]   ) engine =ReplicatedMergeTree('/clickhouse/tables/01/t_order_rep','rep_202')
:-]     partition by toYYYYMMDD(create_time)
:-]     primary key (id)
:-]     order by (id,sku_id);

CREATE TABLE t_order_rep
(
    `id` UInt32, 
    `sku_id` String, 
    `total_amount` Decimal(16, 2), 
    `create_time` Datetime
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/t_order_rep', 'rep_203')
PARTITION BY toYYYYMMDD(create_time)
PRIMARY KEY id
ORDER BY (id, sku_id)
ReplicatedMergeTree 中,第一个参数是分片的zk_path一般按照: /clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写01即可。第二个参数是副本名称,相同的分片副本名称不能相同
hadoop201 :) ((102,'sku_002',2000.00,'2022-05-18 13:00:00'),
:-] ((102,'sku_002',12000.00,'2022-05-18 13:00:00'),
:-] ((102,'sku_002',600.00,'2022-05-19 12:00:00');

Syntax error: failed at position 2:

(102,'sku_002',2000.00,'2022-05-18 13:00:00'), (102,'sku_002',12000.00,'2022-05-18 13:00:00'), (102,'sku_002',600.00,'2022-05-19 12:00:00');

Expected one of: SELECT subquery, SELECT query, SELECT, list of elements, WITH, SELECT query, possibly with UNION, SELECT query, subquery, possibly with UNION

hadoop201 :) 
hadoop201 :) iinsert into t_order_rep values
:-] ((101,'sku_001',1000.00,'2022-05-18 12:00:00'),
:-] ((102,'sku_002',2000.00,'2022-05-18 12:00:00'),
:-] ((103,'sku_004',2500.00,'2022-05-18 12:00:00'),
:-] ((104,'sku_002',2000.00,'2022-05-18 12:00:00'),
:-] ((105,'sku_003',600.00,'2022-05-19 12:00:00');(105,'sku_003',600.00,'2022-05-19 12:00:00');

INSERT INTO t_order_rep VALUES

Ok.

5 rows in set. Elapsed: 0.289 sec. 
在hadoop202上执行select,可以查询出结果,说明副本配置正确
hadoop202 :) select * from t_order_rep;

SELECT *
FROM t_order_rep

┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 105 │ sku_003 │       600.00 │ 2022-05-19 12:00:00 │
└─────┴─────────┴──────────────┴─────────────────────┘
┌──id─┬─sku_id──┬─total_amount─┬─────────create_time─┐
│ 101 │ sku_001 │      1000.00 │ 2022-05-18 12:00:00 │
│ 102 │ sku_002 │      2000.00 │ 2022-05-18 12:00:00 │
│ 103 │ sku_004 │      2500.00 │ 2022-05-18 12:00:00 │
│ 104 │ sku_002 │      2000.00 │ 2022-05-18 12:00:00 │
└─────┴─────────┴──────────────┴─────────────────────┘

5 rows in set. Elapsed: 0.010 sec. 

标签:sku,00,副本,05,hadoop201,2022,id,ClickHouse
From: https://www.cnblogs.com/wdh01/p/16872951.html

相关文章

  • 时许数据库clickhouse数据类型
    一:查看ck支持的数据类型SELECT*FROMsystem.data_type_families  二:数值类型数值类型Int类型固定长度的整数类型又包括有符号和无符号的整数类型。    ......
  • 时序数据库clickhouse_数据库操作
    一:新增列ADDCOLUMN[IFNOTEXISTS]name[type][default_expr][codec][AFTERname_after]ALTERTABLEvisitsONCLUSTERcluster_nameADDCOLUMNcolumn_name1,A......
  • ClickHouse SQL 操作
    基本上来说传统关系型数据库(以MySQL为例)的SQL语句,ClickHouse基本都支持,这里不会从头讲解SQL语法只介绍ClickHouse与标准SQL(MySQL)不一致的地方。1、insert基本与标准SQL(M......
  • ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析
    目录建表语法数据处理策略资料分享参考文章MergeTree拥有主键,但是它的主键却没有唯一键的约束。这意味着即便多行数据的主键相同,它们还是能够被正常写入。在某些使用场合......
  • 多副本技术在数据安全中的应用
     为了保护数据可用性,一方面需要云服务提供商采取数据安全保障措施,防止由于系统漏洞、人为破坏等可控因素导致的数据丢失或服务器宕机;另一方面需要云服务提供商采取一定的......
  • ClickHouse 数据类型 (三)
    6、SummingMergeTree对于不查询明细,只关心以维度进行汇总聚合结果的场景。如果只使用普通的MergeTree的话,无论是存储空间的开销,还是查询时临时聚合的开销都比较大。ClickH......
  • ClickHouse集群部署
    集群节点信息192.168.175.212ch01192.168.175.213ch02192.168.175.214ch03搭建一个zookeeper集群复制数据需要zookeeper配合下载安装包zookeeper官网:https://......
  • ClickHouse 表引擎简介(一)
    1、表引擎介绍ClickHouse表引擎是ClickHouse的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:数据的存储方式和位置,写到哪里以及从哪里读取数据。支持哪些查询......
  • ClickHouse 数据类型
    1、整形固定长度的整型,包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1):Int8-[-128:127]Int16-[-32768:32767]Int32-[-2147483648:2147483647]Int64-......
  • ClickHouse(09)ClickHouse合并树MergeTree家族表引擎之MergeTree详细解析
    目录建表数据存储主键和索引在查询中的表现主键的选择选择与排序键不同的主键索引和分区在查询中的应用部分单调主键的使用跳数索引可用的索引类型并发数据访问列和表的TT......