altinity-expert-clickhouse-ingestion
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDiagnostics
诊断
Run all queries from the file checks.sql and analyze the results.
运行checks.sql文件中的所有查询并分析结果。
Problem-Specific Investigation
针对性问题排查
Insert with MV Overhead - Correlate by Query ID
带MV开销的插入 - 通过Query ID关联分析
When inserts feed materialized views, slow MVs cause insert delays. To correlate a slow insert with its MV breakdown:
sql
-- Correlate slow insert with MV breakdown (requires query_id)
select
view_name,
view_duration_ms,
read_rows,
written_rows,
status
from system.query_views_log
where query_id = '{query_id}'
order by view_duration_ms desc当插入操作触发物化视图时,性能低下的MV会导致插入延迟。要将缓慢的插入操作与其MV的性能分解数据关联起来:
sql
-- Correlate slow insert with MV breakdown (requires query_id)
select
view_name,
view_duration_ms,
read_rows,
written_rows,
status
from system.query_views_log
where query_id = '{query_id}'
order by view_duration_ms descKafka Consumer Exception Drill-Down (Targeted)
Kafka消费者异常深入排查(针对性)
Use this only for problematic Kafka tables to avoid noisy output.
sql
-- Filter to a specific Kafka table when lag is observed
select
hostName() as host,
database,
table,
consumer_id,
is_currently_used,
dateDiff('second', last_poll_time, now()) as last_poll_age_s,
dateDiff('second', last_commit_time, now()) as last_commit_age_s,
num_messages_read,
num_commits,
length(assignments.topic) as assigned_partitions,
length(exceptions.text) as exception_count,
exceptions.text[-1] as last_exception
from clusterAllReplicas('{cluster}', system.kafka_consumers)
where database = '{db}'
and table = '{kafka_table}'
order by is_currently_used desc, last_poll_age_s desc
limit 50仅针对存在问题的Kafka表使用此查询,避免产生过多无效输出。
sql
-- Filter to a specific Kafka table when lag is observed
select
hostName() as host,
database,
table,
consumer_id,
is_currently_used,
dateDiff('second', last_poll_time, now()) as last_poll_age_s,
dateDiff('second', last_commit_time, now()) as last_commit_age_s,
num_messages_read,
num_commits,
length(assignments.topic) as assigned_partitions,
length(exceptions.text) as exception_count,
exceptions.text[-1] as last_exception
from clusterAllReplicas('{cluster}', system.kafka_consumers)
where database = '{db}'
and table = '{kafka_table}'
order by is_currently_used desc, last_poll_age_s desc
limit 50Ad-Hoc Query Guidelines
临时查询指南
Required Safeguards
必要的安全措施
sql
-- Always limit results
limit 100
-- Always time-bound
where event_date = today()
-- or
where event_time > now() - interval 1 hour
-- For query_log, filter by type
where type = 'QueryFinish' -- completed
-- or
where type like 'Exception%' -- failedsql
-- Always limit results
limit 100
-- Always time-bound
where event_date = today()
-- or
where event_time > now() - interval 1 hour
-- For query_log, filter by type
where type = 'QueryFinish' -- completed
-- or
where type like 'Exception%' -- failedUseful Filters
实用过滤条件
sql
-- Filter by table
where has(tables, 'database.table_name')
-- Filter by user
where user = 'producer_app'
-- Filter by insert size
where written_rows > 1000000 -- large inserts
where written_rows < 100 -- micro-batchessql
-- Filter by table
where has(tables, 'database.table_name')
-- Filter by user
where user = 'producer_app'
-- Filter by insert size
where written_rows > 1000000 -- large inserts
where written_rows < 100 -- micro-batches