Clickhouse分布式配置(笔记)
- seanloo
- 2023-02-25
- 教程/笔记
- 1000浏览
- 0评论
clickhouse配置
首先编辑clickhouse-server下的config.xml文件,找到remote_servers节点
增加optional= true属性(这个属性默认是没有的)
然后在remote_servers配置的下方增加
<include_from>/mnt/metrika.xml</include_from>
最后配置如下:
<remote_servers incl="clickhouse_remote_servers" optional="true" > <!-- Test only shard config for testing distributed storage --> <test_shard_localhost> <shard> <replica> <host>localhost</host> <port>9000</port> </replica> </shard> </test_shard_localhost> </remote_servers> <include_from>/mnt/metrika.xml</include_from>
分布式配置文件
metrika.xml配置文件内容,这里直接给个模板样例:
<?xml version="1.0"?> <yandex> <clickhouse_remote_servers> //这里的名称要与clickhouse配置文件里面的remote_servers的incl属性里面的名字保持一致 <bm_cluster>//分片名称,可自定义 <shard> <replica> <host>192.168.218.151</host> <port>9000</port> <user>default</user> <password>v84bzd6C</password> </replica> <replica> <host>192.168.218.152</host> <port>9000</port> <user>default</user> <password>v84bzd6C</password> </replica> </shard> </bm_cluster> </clickhouse_remote_servers> <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>
对于主端和分片节点端,需要放开9000端口!
分布式节点查询
配置完成后,在主设备端登录clickhouse客户端可进行查询,看配置是否生效!
查询方式
select * from system.clusters;
如果能看到配置里面的节点,则说明配置成功!
配置修改是实时生效的!
分布式表的创建
在主设备端将不再创建存储的数据表,但需要创建同名的分布式表。即把引擎改为分布式引擎,并配置分布式名称。
优缺点
该方案优点在于可将所有分片节点的数据集中在一起进行业务查询!
缺点就是,在分片节点中,如果1台节点发生故障导致无法连接,则整个分布式查询都会中断,无法查询!对于节点的状态要求比较严格!在实际场景中如果使用该方案,需对节点的状态进行监控,实时变更配置文件,保证分布式配置里面的节点都是可用的
相关的配置项
skip_unavailable_shards
启用或禁用跳过不可用的分片。如果分片的所有副本都不可用,则认为分片不可用。默认0,禁止跳过,可选值0、1
distributed_product_mode
更改分布式子查询的行为。
当查询包含分布式表的乘积,即当分布式表的查询包含分布式表的非GLOBAL子查询时,ClickHouse将应用此设置。
限制条件:
仅适用于IN和JOIN子查询。
仅当FROM部分使用包含多个分片的分布式表时。
如果子查询涉及一个包含多个分片的分布式表。
不用于远程功能。
可设置的值:
deny:默认值。 禁止使用这些类型的子查询(返回“ Double-distributed in / JOIN子查询被拒绝”异常)。
local:将子查询中的数据库和表替换为目标服务器(碎片)的本地查询,而保留普通的IN / JOIN。
global:用GLOBAL IN / GLOBAL JOIN替换IN / JOIN查询。
allow:允许使用这些类型的子查询。
send_progress_in_http_headers
在clickhouse-server响应中启用或禁用X-ClickHouse-Progress HTTP响应标头。默认0,可选0、1
replace_running_query
使用HTTP接口时,可以传递'query_id'参数。这是用作查询标识符的任何字符串。如果此时已存在来自具有相同query_id的相同用户的查询,则行为取决于replace_running_query参数:
0(默认值):引发异常(如果已经在运行具有相同“ query_id”的查询,则不允许运行查询)。
1 :取消旧查询,然后开始运行新查询。
clickhouse数据库分布式
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。
转载请注明 : 文章转载自 » 心诺设计风尚 » 教程/笔记 » Clickhouse分布式配置(笔记)