quantileTDigest для percentile-метрик API latency

Middle SQL data_engineering

Условие задания

**Данные:** логи API requests:

[см. код в задании]

Таблица содержит ~100M запросов/день.

**Задание:**

1. Рассчитать **p50, p95, p99** response time **по endpoint** за последний час
2. Использовать ClickHouse `quantileTDigest` (memory-efficient)
3. Сравнить точность с `quantileExact` (1 endpoint, обоснуй выбор)
4. Найти endpoint-ы где p99 > 5000ms — это SLA violations

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

CREATE TABLE api_quantiles_5min
(
  ts_5min DateTime,
  endpoint String,
  p50_state AggregateFunction(quantileTDigest(0.5), UInt32),
  p95_state AggregateFunction(quantileTDigest(0.95), UInt32),
  p99_state AggregateFunction(quantileTDigest(0.99), UInt32),
  request_count_state AggregateFunction(count)
)
ENGINE = AggregatingMergeTree
ORDER BY (ts_5min, endpoint);

CREATE MATERIALIZED VIEW api_quantiles_mv TO api_quantiles_5min AS
SELECT
  toStartOfFiveMinute(ts) AS ts_5min,
  endpoint,
  quantileTDigestState(0.5)(response_time_ms) AS p50_state,
  quantileTDigestState(0.95)(response_time_ms) AS p95_state,
  quantileTDigestState(0.99)(response_time_ms) AS p99_state,
  countState() AS request_count_state
FROM api_logs
GROUP BY ts_5min, endpoint;

Темы

ClickHouse quantileTDigest percentile API monitoring

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "quantileTDigest для percentile-метрик API latency"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: ClickHouse, quantileTDigest, percentile, API, monitoring.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «SQL»?

На zasqlpython.ru есть 520+ SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.

← Все задания