
Jen
08.02.2018
08:02:49
Коллеги, вижу тут посты про графану, может кто подскажет, каким образом лучше сделать расчет метрик на базе таблицы КХ для нее.
Натравливать графану на таблицу с сырыми данными, в моем понимании, не очень хорошо - поскольку при каждом изменении таймлайна последняя будет делать кучу селектов в таблицу для перестроения.
Правильно ли понимаю, что лучшим вариантом будет подготовка данных для графаны в фоне в другой таблице внешними средствами? То есть каждую минуту внешний скрипт будет делать селект в основную таблицу, получать метрики за минуту, и класть их в другую таблицу в КХ, с которой уже будет работать графана.

Kirill
08.02.2018
08:06:35
Мы сырые в Summing пишем, время до 5 секунд транкейтим и движок сам в фоне агрегирует

Jen
08.02.2018
08:07:15
дело в том, что мои метрики необходимо расчитывать из данных, т.е. у меня не сами метрики в КХ попадают, а данные, по которым их можно рассчитать
поэтому тут агрегировать особо ничего не получится

Google

Kirill
08.02.2018
08:09:18

Jen
08.02.2018
08:09:56
в сравнении с обычным MergeTree
+ данных у меня реально много (это IP-cессии, 40 полей)
кластер как у яндекса я себе позволить пока не могу :)

Kirill
08.02.2018
08:14:10
Ну, сделайте пару materialized View для метрик

Jen
08.02.2018
08:17:42


Roman
08.02.2018
08:19:11
Коллеги, вижу тут посты про графану, может кто подскажет, каким образом лучше сделать расчет метрик на базе таблицы КХ для нее.
Натравливать графану на таблицу с сырыми данными, в моем понимании, не очень хорошо - поскольку при каждом изменении таймлайна последняя будет делать кучу селектов в таблицу для перестроения.
Правильно ли понимаю, что лучшим вариантом будет подготовка данных для графаны в фоне в другой таблице внешними средствами? То есть каждую минуту внешний скрипт будет делать селект в основную таблицу, получать метрики за минуту, и класть их в другую таблицу в КХ, с которой уже будет работать графана.
Как правильно заметили, Вы можете сделать view специально для графиков. Так же, если Вы будете использовать https://github.com/Vertamedia/chproxy, то сможете настроить лимиты по выполнению запросов из графаны. Например, не больше 2 запросо одновременно, не больше 20 сек на выполнение. Так же можно настроить кеширование результатов запроса и округление запрашиваемого периода времени до 10мин, например.
Более подробно здесь - https://github.com/Vertamedia/clickhouse-grafana#chproxy-optional
От себя скажу, что мы постоянно смотрим сырые данные непосредственно ч-з графану


Jen
08.02.2018
08:20:45
да, прокся у меня как раз эта используется
единственный пикатнтный момент - найти описание самой вьюшки :)

Kirill
08.02.2018
08:24:52

Jen
08.02.2018
08:29:18
Спасибо!

Stas
08.02.2018
08:37:30
Единственный минус вьюшек сейчас - отсутствие под запросов :(

Google

Yuran
08.02.2018
09:44:24
все-таки, в заголовке не совсем правда про то, что кликхаус не тормозит (ниже — график LA на машине с кликхаусом)

Slach
08.02.2018
09:45:53
;) тормозит все, если нагрузить сверхмеры

Yuran
08.02.2018
09:51:41
в него вливается всего порядка 500 мбит/сек батчами по 1 мб
в буфер-таблицу

Kirill
08.02.2018
09:54:09
Просто не нужно использовать буфер-таблицы (с) А что мешает сразу в MergeTree лить ?

Yuran
08.02.2018
09:57:13
мы просто решили посмотреть, как оно будет справляться с 1000 одновременных потоков на запись :). Справляется очень плохо, как можно видеть выше.

Jen
08.02.2018
09:59:18

Yuran
08.02.2018
09:59:40
их просто очень много :)

Kirill
08.02.2018
10:02:06
А как же старая добрая рабочая схема: валим все в Кафку, а от туда пачками растаскиваем в сервера КХ?

Yuran
08.02.2018
10:03:43

Ivan
08.02.2018
10:18:15
Всем известно, что в кх не стоит лить данные частыми малыми инсертами, но кто-то решает это сделать, и заявить что он тормозит.
Это фича такая у базы, тормозить на таком юзкейсе :)

Yuran
08.02.2018
10:22:00
мы ведь не в MergeTree льем :)

Ivan
08.02.2018
10:22:46
странно, что вы это сваливаете на кх :)
просто у вас слабое железо

Yuran
08.02.2018
10:25:13

Google

Kirill
08.02.2018
10:25:58
Если не КХ и не железо тогда что?
@yourock88 В общем не стоит так делать, КХ, на данный момент, так работать не может. Нужно искать пути как увеличить размер батча и уменьшить количество пишущих в него. Если Кафка не вариант, то что-то ведь похожее должно у вас быть?

Yuran
08.02.2018
10:29:44

Mike
08.02.2018
10:40:03
Написать свой батчер, делов на пару дней

Slach
08.02.2018
10:45:05

Mike
08.02.2018
10:45:46
С чем мучения?

Aleksey
08.02.2018
10:52:02

Slach
08.02.2018
10:53:09
С чем мучения?
с пограничными случаями
"ой мы тут файловый дескриптов не закрыли"
"ой а тут у нас пришел OOM и буфера не флашнулись"
и еще много можно нафантазировать
но я правильно понимаю что когда мы говорим "батчер" это мы имеем ввиду взяли много маленьких INSERT и потом сделали один большой ?

Mike
08.02.2018
10:58:23
Типа того

Sergey
08.02.2018
11:08:05
всем привет, а есть какой-то подробный туториал с примерами про типы таблиц в CH?

Kirill
08.02.2018
11:08:26

Sergey
08.02.2018
11:09:25
ага

Kirill
08.02.2018
11:10:07
https://github.com/yandex/ClickHouse/tree/master/dbms/src/Storages ;)

Aleksey
08.02.2018
11:11:23
Просто не очень хочется лить батчами по сотни мегабайт. Но, видимо, к этому можем и придти.

Yuran
08.02.2018
11:14:55
Батчевать мы можем на любой размер, но хочется ещё и приемлемый latency иметь.

Ivan
08.02.2018
11:48:33
@yourock88 У нас несколько сот батчей в минуту в минуту и все ок. если довести хотя бы до тысячи то начинают сыпаться ошибкаи Too many parts to merge. Вам надо попробывать просто собирать таки батчи побольше и страться придерживаться 1 батч - 1 партишн
что это у вас за график? инсерты в минуту?
что вы имеете ввиду под LA?

Google

Вася
08.02.2018
11:52:51
https://ru.wikipedia.org/wiki/Load_Average

Ivan
08.02.2018
11:55:00
ага понял. Спасибо @vasya_toropov
@yourock88 а как вы данные загружаете в каком формате? сжимаете?

Kirill
08.02.2018
12:18:43
Какая-нибудь Kitten-Kafka )

Aleksey
08.02.2018
12:24:04

GithubReleases
08.02.2018
12:26:34
https://github.com/yandex/ClickHouse/releases/v1.1.54343-stable was tagged

Alex
08.02.2018
12:28:14
Парни полдня разбираемся... делаем инсерты в базу, небольшое количество строк заходит всегда одинаково. и суммы по колонкам (клики и показы) одинаковая. Когда объем вставляемых данных увеличиваем с 30000 до 60000 строк, по итогу количество строк в норме, но суммы кликов и показов отличаются. запросы на вывод сумм даже не меняем. вставляем по 500. При этом несколько раз вставляли (60000) одни и теже строки и всегда по разному суммы кликов и показов... полтергест.... помогите плиз...

Kirill
08.02.2018
12:28:27

Alex
08.02.2018
12:29:14
Ну и доброго дня всем)

Aleksey
08.02.2018
12:30:09
Так мы через nginx сейчас собираем) И лимиты на коннекты в апстримы

Артемий
08.02.2018
12:35:16
Помогите разобраться как работает Sign в CollapsingMergeTree.
Он должен быть -1 ил и1, но кто его должен менять.
Мне его указывать при вставке, или движок сам управляет этим значением?

papa
08.02.2018
12:35:47
указывать при вставке

Артемий
08.02.2018
12:36:17
А когда оно станет равным -1? Я же не могу менять его.
Или можно всегда указывать 1 и он будет схлапывать по этому признаку?

Kirill
08.02.2018
12:36:53
Строчку с тем же ключем записать, но с -1

Артемий
08.02.2018
12:38:44
Допустим я не знаю, вставляю ли я дубль или нет. Всталять Sign = -1?
Но знаю, что он дожен заменить предыдущую запись

Google

Kirill
08.02.2018
12:43:31
CollapsingMergeTree нужен когда точно знаете что нужно заменить запись, в противном случае просто лейте в MergeTree с дублями потом разберетесь

Vyacheslav
08.02.2018
12:44:21

Артемий
08.02.2018
12:46:47

Kirill
08.02.2018
12:50:15
при мердже КХ удалит строку с Sign=1

Артемий
08.02.2018
12:50:58
Спасибо!
А если я вставлю sign=1, и у меня уже есть уже есть sign=1?

Kirill
08.02.2018
12:51:43
он при мердже оставит только первую строку