clickhouse(十四、分布式DDL阻塞及同步阻塞问题)

文章目录

一、分布式ddl 阻塞、超时

现象

在clickhouse 集群的操作中,如果同时执行一些重量级变更语句,往往会引起阻塞。 一般是由于节点堆积过多耗时的ddl。然后抛出如下异常

bash 复制代码
ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 159, host: 127.0.0.1, port: 8123; Code: 159, e.displayText() = 
DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000318 is executing longer than distributed_ddl_task_timeout (=180) seconds. 

验证方法

1.查询zookeeper的队列数,节点完成情况。

2.查询mutations表,改更较重操作一般会在这个表记录。

bash 复制代码
select FQDN() as node,
    database,
    table,
    mutation_id,
    create_time,
    command,
    is_done,
    parts_to_do
FROM clusterAllReplicas('default_cluster', system.mutations)
WHERE is_done = 0;

解决方案

先看能不能是kill MUTATION ,确定一下是不是所有节点里都KILL了,如果所有节点都确定KILL了这个队列还堵在那就只能删ZK。

bash 复制代码
KILL MUTATION on cluster default_cluster  WHERE database = 'default' AND table = 'table'; 

二、副本同步阻塞

现象

写入副本表后,查询数据量不一致或是很长时间才能一致。例如原表8968w, 写入sql都已经执行完成,查询只有6629w。集群没有阻塞时会直接查询到全量数据。

bash 复制代码
CREATE TABLE tmp.dwm_we_search_query_ad_data_v5_copy_20230815_local ( 
 `f000_date` Nullable(Date),
 `row_key` Int64,
 `day_` Nullable(String),
 `hour_` Nullable(String),
 `position_id` String,
 `query` String,
 `aid` Int64,
 `advertiser_id` String,
 `query_classify_res` Nullable(Int64),
 `imp_fail_cnt` Nullable(Int64),
 `imp_pv` Nullable(Int64)
 ) 
ENGINE = ReplicatedReplacingMergeTree('/clickhouse/default_cluster/tables/{shard}/tmp/dwm_we_search_query_ad_data_v5_copy_20230815_local', '{replica}') 
PARTITION BY ds_ 
ORDER BY (ds_, position_id,query,aid,advertiser_id,row_key) 
SETTINGS index_granularity = 8192

验证

查询 system.replication_queue 表的数量,如果记录很多,说明正在同步的任务多,数据达到一致的延迟大。

bash 复制代码
-- 查询同步队列数
SELECT count() FROM system.replication_queue;
-- 查询同步表详情
SELECT * FROM system.replication_queue LIMIT 1 FORMAT Vertical;

解决方案

首先确认同步队列中的表是否正常业务需要的,集群的io是否正常。 如果确实有大量的写入业务,就需要调整副本并行的线程大小replicated_max_parallel_fetches_for_host, 如果发现大量没用/测试 的表在同步,可删除,这也是快速解决问题的方案。

相关推荐
xhtdj8 天前
智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
人工智能·clickhouse·安全·动态规划
xhtdj10 天前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划
Taerge011011 天前
Doris, StarRocks, ClickHouse, Hologres, ES 对比,选型建议
大数据·clickhouse·elasticsearch
海南java第二人13 天前
ClickHouse 表引擎完全指南:从 MergeTree 到集成引擎的选型实践
clickhouse
lhyzws14 天前
CENTOS上的网络安全工具(三十七)SPARK on CLICKHOUSE
clickhouse
海南java第二人14 天前
用户行为漏斗分析是什么?ClickHouse 如何轻松实现?
clickhouse
Irissgwe15 天前
11、五种 IO 模型与阻塞 IO
网络·阻塞·非阻塞·io模型·非阻塞io·异步通信·同步通信
时空无限16 天前
clickhouse 数据损坏无法启动问题修复
clickhouse
阿演17 天前
我把这个桌面数据库工具又升级了一轮:现在支持 ClickHouse,还能可视化建表和改表了
数据库·clickhouse·ai编程·数据库连接工具
海南java第二人17 天前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse