Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
Ага, там ещё можно пооптимизировать. Например, если уникальных значений немного (макс 100 тыс), можно Lowcardinality вместо String. А для memorypeak можно кодек Delta или DoubleDelta попробовать. И вместо алгоритма сжатия lz4 попробовать zstd. Ещё бы от нулабельных полей отказаться.
У вас размер бд уже заметный, сэкономленные гигабайты лишними не будут. Но надо и на запросы смотреть.
engine = MergeTree(date, (date, project, eventName), 8192);
Дату в ключе сортировки лучше в конец поставить. Например так:
engine = MergeTree(date, (project, eventName, date), 8192);

будет лучше сжиматься. Общее правило по ключам: от нискокардинальных полей к более кардинальным. Вроде даже, лучше вместо date поставить created.
У вас синтаксис определения таблицы устаревший, по-моему.

С редисом переусложнили схему, конечно. Если у вас уже есть Кафка, то либо движок таблиц Кафка (как выше написали, хотя он «капризный», так сказать), либо тот же консюмер батчами накапливайте и вставляйте. Это проще и надёжнее.

Спасибо за статью. КХ крутой!
Работала одна женщина то ли директором департамента, то ли начальницей управления. Толковая. Устроилась недавно, месяцев семь-восемь. А потом пришёл ветер перемен и она неожиданно оказалась в «старой» команде (также как и мы).
И вот мы слышим как вдруг в коридоре кто-то кричит и ругается с новым директором. Это она изъяснялась на каком-то диалекте эджайл, видимо. А мы сидим, работаем и не верим своим ушам. Слышно было даже как звенели ее кандалы. Как же так, думаем, ведь мы теперь свободные все…
Через два дня она уволилась. Жаль, конечно. Она толковая и, между прочим, красивая. Но, судя по всему, ведьма.
Наконец-то, настали светлые времена. Сброшены оковы рабства. Внедрили долгожданный эджайл — люди пошли на поправку. Многие стали свободны…

Этот пьянящий запах Свободы! Приход нового сильного лидера и его команды (команды сильных профессионалов), как глоток свежего воздуха, как освежающий бриз после дождя. Как лучи утреннего солнца, переливающиеся в капельках росы…

Все те года, которые были раньше. Это были года страданий, беспросветной бюрократии, мракобесия и средневекового невежества. Настало время похоронить эти тягостные чувства. И выйти из мрака устаревших предубеждений и догм в этот новый светлый мир свободы и гибкости!
ClickHouse может загрузить файл и в xml формате. Обратите внимание на формат Custom или Regexp. В ссылке ниже есть презентация, в которой Алексей Миловидов рассказывает о «необыкновенных» возможностях использования. В частности, он даже продемонстрировал как пропарсить архив коммитов со всех репозиториев github.

А для аналитиков любопытная фича — использование clickhouse-local. То есть кликхаус можно использовать как утилиту командной строки для запросов к неструктурированным данным в файлах.

https://presentations.clickhouse.tech/highload_spb_2020/#16
Понял. Вы имеете ввиду логи приложения.

Обычно в таких логах есть время записи, уровень (error, warn, info и проч.), номер потока и сообщение. Их нужно сначала в логстеше, например, расщепить на столбцы и записать в ClickHouse.
Текст сообщения прям в отдельный столбец целиком.

А когда записи лога уже в таблице, то в графане просто настраивается виджет Таблица и к нему привязывается select с группировкой и фильтром в where через like. Примерно так:
select logdatetime
 , message
 , count() as c
from default.log_app
where message like '%сфейлилась с ошибкой%'
 and logdatetime > $from -- это фильтр времени в графане
group by logdatetime
 , message
order by logdatetime
limit by 100


В клике, конечно, нет полнотекстового индексирования как в эластике, и есть нюансы при хранении больших строк. Но сообщения из лога (без стек-трейса) вполне нормально могут работать (В последних версиях появилась крутая фича Adaptive granularity).

Мы у себя сейчас, как раз, в процессе настройки парсинга логов приложений. На дашборде видим таблицу с сообщениями варнингов и ошибок, например, за последние 12 часов.
Нам надо, наверное, отдельную статью написать про такой сценарий. Там есть нюансы. Но текущие результаты вполне устраивают. В файлы с логами смотреть не приходится.
А в начале статьи есть картинка из графаны. Это реальные графики на основе логов.
У графаны есть ещё виджет Таблица. Мы его тоже используем. Например, топ url запросов или топ ошибочных урл. Все понятно и удобно.
В целом, для дашборда можно задавать фильтры. Например, можно задать часть url.
У кликхауса есть утилита clickhouse-local, кстати. Которая позволяет использовать движок в командой строке (нет необходимости использовать сам сервер). На вход файл для обработки, на выход файл с результатом.

Не поделитесь скриншотами с текстами логов?

К сожалению, нет возможности — это конфиденциальная информация. Но надо сказать, что это обычный лог, генерируемый Microsoft IIS в формате w3c. Основной нюанс здесь — это составить grok-шаблон для логстеша, чтобы он расщеплялся на поля. Чтобы можно было их в фильтре дообработать. Так можно и логи апач распарсить или nginx.

Мы используем Grafana. Для мониторинга вполне хватает. Поскольку Clickhouse — sql-like база данных, есть odbc-драйвер. Это позволяет использовать множество готовых UI-инструментов: от Tableau и Power BI до SuperSet и Redash. Впрочем, мы их пока не использовали для таких целей.

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность