Войти Регистрация
Data base

115. Серверы, которые сейчас в ошибке

Средняя

ClickHouse · ClickHouse 26.3.57.12

ВКонтакте пишет отладочные логи с десятков тысяч серверов в ClickHouse, например вывод ffmpeg при перекодировании видео. Вставки идут пачками через локальный прокси KittenHouse, поэтому порядок строк в таблице не совпадает с порядком событий.

В debug_logs у записи есть ts (секунды) и seq — номер внутри секунды. Последняя запись сервера — с наибольшим (ts, seq). Верните server, last_ts и message для серверов, у которых последняя запись имеет level = error.

В работе: Панель дежурного: какие машины сейчас сломаны, без перечитывания всей истории.

Как проверяем Движка ClickHouse в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите все верные варианты (одна лишняя отметка допустима). После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
argMaxтоп-N в группеLIMIT BYкортежи

Источник: кейс ВКонтакте: логи с десятков тысяч серверов в ClickHouse через KittenHouse, Хабр, 2018. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Какие запросы вернут серверы, у которых последняя запись — ошибка?

  • argMaxIf(message, ts, level = 'error')
  • max(level) = 'error'
  • argMax по кортежу (ts, seq)
  • argMax только по ts
  • ORDER BY ts DESC, seq DESC и LIMIT 1 BY server