Clickhouse-高级

本文详细介绍了ClickHouse在OLAP场景中的应用,集群安装步骤,包括Zookeeper配置,以及MergeTree表引擎的特性,如主键索引、数据分区、数据压缩等。还深入探讨了一级索引、二级索引(跳数索引)的工作原理和TTL功能,展示了如何创建带有副本和分片的分布式表。
摘要由CSDN通过智能技术生成

Clickhouse使用场景

列式存储、数据压缩、向量化执行、支 持标准 SQL、支持 20 多张表引擎、支持多线程与分布式、多主架构、交互式查询、数据分 片与分布式查询等

ClickHouse 适合 OLAP 数据分析类的场景,数据体量越大,ClickHouse 的优势越 大。ClickHouse 不适合以下场景: 1) ClickHouse 不支持事务,事务场景不适合 2) 不适合根据主键进行行粒度查询或删除场景(支持但不建议)

ClickHouse集群安装

1)这里选择 node1、node2,node3 三台节点,上传安装包,分别在每台节点上执行如 下命令安装 ClickHouse:

rpm -ivh ./ClickHouse-common-static-21.9.4.35-2.x86_64.rpm
#注意在安装以下 rpm 包时,让输入密码,可以直接回车跳过
rpm -ivh ./ClickHouse-server-21.9.4.35-2.noarch.rpm
rpm -ivh ClickHouse-client-21.9.4.35-2.noarch.rpm

2)安装zookeeper集群并启动

搭建 ClickHouse 集群时,需要使用 Zookeeper 去实现集群副本之间的同步,所以 这里需要 zookeeper 集群,zookeeper 集群安装后可忽略此步骤

3)配置外网可以访问

在每台 ClickHouse 节点中配置/etc/ClickHouse-server/config.xml 文件第 164 行,如下:

<listen_host>::1</listen_host>
#注意每台节点监听的 host 名称配置当前节点 host
<listen_host>node1</listen_host>

4) 在每台节点创建 metrika.xml 文件,写入以下内容

在 node1、node2、node3 节点上/etc/ClickHouse-server/config.d 路径下 下配置 metrika.xml 文件,默认 ClickHouse 会在/etc 路径下查找 metrika.xml 文件,但是必须要求 metrika.xml 上级目录拥有者权限为 ClickHouse ,所以这里我们将 metrika.xml 创建在/etc/ClickHouse-server/config.d 路径下,config.d 目录 的拥有者权限为 ClickHouse。

在 metrika.xml 中我们配置后期使用的 ClickHouse 集群中创建分布式表时使用 3 个分片,每个分片有 1 个副本,配置如下:

vim /etc/ClickHouse-server/config.d/metrika.xml:

<yandex>
<remote_servers>
<ClickHouse_cluster_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node1</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node2</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node3</host>
<port>9000</port>
</replica>
</shard>
</ClickHouse_cluster_3shards_1replicas>
</remote_servers>
<zookeeper>
<node index="1">
<host>node3</host>
<port>2181</port>
</node>
<node index="2">
<host>node4</host>
<port>2181</port>
</node>
<node index="3">
<host>node5</host>
<port>2181</port>
</node>
</zookeeper>
<macros>
<shard>01</shard>
<replica>node1</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<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>

配置文件字段解释

 remote_servers: ClickHouse 集群配置标签,固定写法。注意:这里与之前版本不同,之前要求必须 以 ClickHouse 开头,新版本不再需要。

ClickHouse_cluster_3shards_1replicas: 配置 ClickHouse 的集群名称,可自由定义名称,注意集群名称中不能包含点号。这 里代表集群中有 3 个分片,每个分片有 1 个副本。 分片是指包含部分数据的服务器,要读取所有的数据,必须访问所有的分片。 副本是指存储分片备份数据的服务器,要读取所有的数据,访问任意副本上的数据即可。

shard:

分片,一个 ClickHouse 集群可以分多个分片,每个分片可以存储数据,这里分片可以理解为 ClickHouse 机器中的每个节点,1 个分片只能对应 1 服务节点。这里可以配置 一个或者任意多个分片,在每个分片中可以配置一个或任意多个副本,不同分片可配置不同 数量的副本。如果只是配置一个分片,这种情况下查询操作应该称为远程查询,而不是分布 式查询。

replica:

每个分片的副本,默认每个分片配置了一个副本。也可以配置多个,副本的数量上限是 由 ClickHouse 节点的数量决定的。如果配置了副本,读取操作可以从每个分片里选择一 个可用的副本。如果副本不可用,会依次选择下个副本进行连接。该机制利于系统的可用性。

internal_replication:

默认为 false,写数据操作会将数据写入所有的副本,设置为 true,写操作只会选择 一个正常的副本写入数据,数据的同步在后台自动进行。

zookeeper:

配 置 的 zookeeper 集 群 , 注 意 : 与 之 前 版 本 不 同 , 之 前 版 本 是 “zookeeper-servers”。

macros:

区分每台 ClickHouse 节点的宏配置,macros 中标签代表当前节点的分片 号,标签代表当前节点的副本号,这两个名称可以随意取,后期在创建副本表 时可以动态读取这两个宏变量。注意:每台 ClickHouse 节点需要配置不同名称。

networks:

这里配置 ip 为“::/0”代表任意 IP 可以访问,包含 IPv4 和 IPv6。 注意:允许外网访问还需配置/etc/ClickHouse-server/config.xml 参照第三 步骤。

ClickHouse_compression:

MergeTree 引擎表的数据压缩设置,min_part_size:代表数据部分最小大小:min_part_size_ratio:数据部分大小与表大小的比率。method:数据压缩格式。

注意:需要在每台 ClickHouse 节点上配置 metrika.xml 文件,并且修改每个节点 的 macros 配置名称

#node2 节点修改 metrika.xml 中的宏变量如下:

<macros>

        <shard>02</shard>

        <replica>node2</replica>

</macros>

#node3节点修改metrika.xml中的宏变量

<maros>

        <shard>03</shard>

        <replica>node3</replica>

</maros>

在每台节点上启动、查看、停止Clickhouse服务

首先启动 zookeeper 集群,然后分别在 node1、node2、node3 节点上启动 ClickHouse 服务,这里每台节点和单节点启动一样。启动之后,ClickHouse 集群配置 完成。

每台节点启动clickhouse服务

service clickhouse-server start

每台节点查看clickhouse服务状态

service clickhouse-server status

每台机器上重启clickhouse服务

service clickhouse-server restart

关闭每台机器上的clickhouse服务

service clickhous

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值