ClickHouse 分片分布式表本地表配置及使用

该博客介绍了ClickHouse(CK)的资源配置,配置了3台机器,每台配备16核64GB内存和1TB存储。CK集群采用3分片1副本的模式,通过ZooKeeper进行集群管理。数据根据user_Id进行Hash分片实现数据隔离,利用分布式表进行实时统计计算。文中还详细阐述了CK的基础名词解释,并提供了数据库初始化SQL,包括创建数据库、本地表、分布式表以及删除表的命令。
摘要由CSDN通过智能技术生成

1、Ck资源配置:

(16C 64G 1T)*  3 

2、CK  3台机器的初始化配置文件

<yandex>
    <clickhouse_remote_servers>
    <!--集群配置,需要在Config.xml 中配置-->
        <perfprod_3shards_1replicas>
        <!--集群模式配置 3 分片 1副本 -->
            <shard>
                <internal_replication>true</internal_replication>
                <!--数据主动复制 -->
                <replica>
                    <host>clickhouse-devops-prod-MRIG0a40</host>
                    <port>9000</port>
                    <user>xxx</user>
                    <password>xxxxx</password>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>clickhouse-devops-prod-VNUMuh7e</host>
                    <port>9000</port>
                    <user>xxx</user>
                    <password>xxxxx</password>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>clickhouse-devops-prod-nS7hs4ot</host>
                    <port>9000</port>
                    <user>xxx</user>
                    <password>xxxxx</password>
                </replica>
            </shard>
        </perfprod_3shards_1replicas>
    </clickhouse_remote_servers>
    <zookeeper-servers>
    <!--ZK 配置 -->
        <node index="1">
            <host>127.0.0.1</host>
            <port>3288</port>
        </node>
        <node index="2">
            <host>127.0.0.2</host>
            <port>3288</port>
        </node>
        <node index="3">
            <host>127.0.0.3</host>
            <port>3288</port>
        </node>
    </zookeeper-servers>
    <macros>
    <!--宏定义,各节点自定义的配置 -->
        <cluster>perfprod_3shards_1replicas</cluster>
        <shard>01</shard>
        <replica>clickhouse-devops-prod-MRIG0a40</replica>
    </macros>
    <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>
</yandex>

PS :需要将 metrika 配置文件 incl 到 节点的config 文件 集群配置才能生效。

3、设计 CK 逻辑架构  3 shard +1  replica ; 因CK 应用场景是 实时统计计算,固使用分布式表发挥分布式计算能力

分片路由规则:根据 user_Id  做 Hash 路由数据隔离。

4、CK 基础名词解释

名词

含义

备注

节点(node)部署CK服务的一台机器
集群(cluster)多台CK 服务组合方式
分片(shard)数据分布式存储
本地表存放在节点本地的实体表
分布式表分布式逻辑表类似视图

5、数据库初始化SQL

创建数据库:   
    CREATE DATABASE IF NOT EXISTS test on CLUSTER perfprod_3shards_1replicas;
 
创建本地表:
    CREATE TABLE test.user_info_real on CLUSTER perfprod_3shards_1replicas
    (
 
        `id` Int64,
 
        `user_id` String,
 
        `user_name` String
    )
    ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/user_info_real', '{replica}')
    PRIMARY KEY id
    ORDER BY id
    SETTINGS index_granularity = 8192;
     
创建分布式表:
    create table test.user_info  on CLUSTER perfprod_3shards_1replicas as test.user_info_real  ENGINE = Distributed(perfprod_3shards_1replicas, test, user_info_real,user_id);// 根据租户ID hash分片.
 
删除表:
    DROP TABLE test.user_info on CLUSTER perfprod_3shards_1replicas

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ClickHouse是一个高性能列式数据库系统,特别适合大数据分析和在线事务处理(OLAP)场景。在ClickHouse中,数据可以存储在本地表分布式中,它们各自有不同的特点和应用场景。 **1. 本地表(Local Table):** - **定义:** 本地表是存储在单个节点(或副本集中的某个节点)上的数据结构,适合较小的数据集或对实时查询有较高要求的情况。 - **优点:** 查询速度快,因为数据是按照列存储的,并且可以直接从磁盘读取,减少了网络延迟。 - **缺点:** 随着数据量的增长,扩展性有限,如果需要更大的存储容量或更高的并发访问,需要手动复制到其他节点或使用分布式。 **2. 分布式(Distributed Table):** - **定义:** 分布式是由多个本地表组成,数据分布在多台服务器上,每个部分存储一部分数据。这样可以提供更好的水平扩展和容错能力。 - **优点:** 可以处理大量数据,支持并行查询,提高了处理大规模数据的能力。数据分布可以根据负载均衡策略自动调整。 - **缺点:** 查询可能涉及网络I/O,速度可能会受到网络延迟的影响。此外,分布式的复杂性也意味着维护和管理可能更复杂一些。 - **创建与查询:** 创建分布式时需要指定一个分布式键(distr_id),并指定参与存储的数据源本地表。查询分布式时,ClickHouse会自动将查询分散到各个子,执行结果再汇总。 **相关问题--:** 1. 如何在ClickHouse中创建本地表? 2. 如何设置分布式的复制策略? 3. 分布式如何提高查询性能? 4. 如何进行分布式的故障恢复? 5. 分布式和并行查询有何关联?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值