
Александр
29.05.2018
12:25:30
Последний раз была информация о том, что нужны тесты для многопоточности. Что бы не было race condition

Dmitry
29.05.2018
12:43:11
Всем привет! Кто-нибудь знает докер образ, в котором была бы утилита clickhouse-format? В официальных образах clickhouse-client/server её нет.
И вообще, есть ли способ собрать данный бинарник без сборки всего кликхауса?

Alexander
29.05.2018
12:45:12
Добрый день! Подскажите как сделать left join с большим словарем, в котором хранится история, на дату. Т е в левой таблице table1 есть dict_id и my_date, во правой таблице словаря table2 есть dict_id, start_date, end_date. Необходимо выбрать значение из словаря на my_date без уменьшения выборки. Делаю all LEFT OUTER JOIN. Т к условия на даты нельзя использовать в using приходится выносить их в where наверх. А в этом случае выражение my_date>start_date уменьшает выборку, в случае если значения словаря есть на дату больше чем my_date, но на меньшую дату значения в словаре еще не определено.

Google

prll
29.05.2018
13:08:19
только собираться будет 90% кликхауса

Dmitry
29.05.2018
13:08:39
Спасибо!
Так много зависимостей?

prll
29.05.2018
13:09:51
пока да, мы медленно пытаемся это распутать но с самым низким приоритетом

Dmitry
29.05.2018
13:10:01
Ок, спасибо
@proller Я правильно понимаю, если мне нужен форматтер в докере, то билдить из сорсов кликхаус — единственный вариант?

prll
29.05.2018
13:20:18
на данный момент да
а вообще нет
бинарник clickhouse уже умеет format
можно сделать симлинк clickhouse-format -> clickhouse

Dmitry
29.05.2018
13:25:36

Google

Dmitry
29.05.2018
13:25:40
Спасибо

Ruslan
29.05.2018
13:31:47
Добрый день. Подскажите, в чем причина что индекс не используется? https://gist.github.com/Ruslan/834e32ff44f82e59569bcbc4037dd14a

papa
29.05.2018
13:33:04
добавьте условие на дату

Ruslan
29.05.2018
13:33:39
В конце запрос с условием на дату, в разных таблицах разный эффект
На дату (f2) добавил условие, не изменилось, обновил по ссылке результат

papa
29.05.2018
13:39:40
ага, ну смотрите, во первых, если у вас таблица f1f4, то условие на f4 по индексу работать не будет, ибо как
но
у вас кусок where уезжает в prewhere
а т.к. where нельзя сказать что сильно большой, то что есть, то и уезжает
т.е. фильтр по f4 в f1f4 таблице что-то там в prewhere отфильтровывает, и что остается уже обрабатывается "для всего запроса".
а когда вы f1f4 таблицу фильтруете по f1 или f4f1 по f4, то там индекс как бы работает и это вполне ожидаемо.
а когда у вас есть два условия в запросе, то в prewhere попадает условие по более легкой колонке
если я все правильно помню, и потом уже по оставшимся блокам проверяются оставшиеся условия

Ruslan
29.05.2018
13:45:01
А почему тогда в таблице f4f1 нормально работает индекс при запросе по f1?

papa
29.05.2018
13:45:54
насчет условия по дате это я кажется погорячился, оно будет иметь смысл если у вас данные попадают в разные партиции, т.к. это так и происходит в обычной жизни и оно не выведется из условия на datetime

Denis
29.05.2018
13:50:08

Max
29.05.2018
13:50:09
Всем привет! А можно ли в GraphiteMergeTree усреднять данные с учетом времени? Поясню - предполагается хранить некоторые метрики, значения которых - это скорость. Если такие метрики поступают неравномерно и в качестве агрегирующей функции взять avg, то усредненное значение получится некорректным, потому что надо усреднять с учетом времени между метриками. Как это можно решить?

papa
29.05.2018
13:50:11
А почему тогда в таблице f4f1 нормально работает индекс при запросе по f1?
потому что clickhouse не тормозит.
я думаю это зависит от того что на самом деле означает число processed. которое вы видите, и чему при этом равно время выполнения запроса в этом случае. в достаточно умной базе этот запрос можно было бы переписать в виде f4=v1 and cond(f1) or f4=v2 and cond(f1) .. чтобы индекс сработал, тут это вряд ли имеет место.

Tima
29.05.2018
13:51:38

Andrew
29.05.2018
13:52:08
а CH не умеет случайно залазить во второй столбец индекса если у первого столбца низкая кардинальность?

Google

Ruslan
29.05.2018
13:52:20
show create в начале по ссылке

papa
29.05.2018
13:53:00

Denis
29.05.2018
13:53:12

Ruslan
29.05.2018
13:53:15

Andrew
29.05.2018
13:55:01
по факту ему даже не нужно этого знать заранее, достаточно просто исключать диапазоны между метками, если значение первого столбца не менялось

Ruslan
29.05.2018
13:55:04

Ivan
29.05.2018
13:58:39
Умные дяди, объясните

Denis
29.05.2018
13:58:42


Ivan
29.05.2018
13:58:53
поднял кластер из двух нод. ZK на отдельном инстансе
На второй ноде получают такое:
2018.05.29 13:57:48.346602 [ 23 ] <Debug> distributed.distributed_logs (StorageReplicatedMergeTree): Fetching part 20180529_20180529_0_0_0 from /clickhouse/tables/distributed_logs/replicas/01
2018.05.29 13:57:48.391622 [ 23 ] <Trace> ReadWriteBufferFromHTTP: Sending request to http://localhost:9009/?endpoint=DataPartsExchange%3A%2Fclickhouse%2Ftables%2Fdistributed_logs%2Freplicas%2F01&part=20180529_20180529_0_0_0&compress=false
2018.05.29 13:57:48.391865 [ 23 ] <Error> distributed.distributed_logs (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused, e.what() = Connection refused
А если курлом - то все "звонится"

Max
29.05.2018
14:05:28

Ivan
29.05.2018
14:08:01

Max
29.05.2018
14:09:31
0.0.0.0
Тут должно быть: Hostname that is used by other replicas to request this server.
То есть hostname по которому сервер доступен для других реплик

Ivan
29.05.2018
14:12:10

Max
29.05.2018
14:12:21
да

Ruslan
29.05.2018
14:13:50

Ivan
29.05.2018
14:13:52
а разве это не ип других инстансов, которые надо слушать?

Max
29.05.2018
14:15:08
Нет, это ип или хостнейм самого сервера

Google

Denis
29.05.2018
14:43:43

Ruslan
29.05.2018
14:46:21
from tmp2 where f1 < '2018-05-01 10:00:00' => Elapsed: 1.191 sec. Processed 145.90 million rows

Евгений
29.05.2018
14:46:33

Ivan
29.05.2018
14:47:01

Andrew
29.05.2018
15:44:43
> Так что получается что простая перестановка в первичном ключе дает ускорение производительности в запросе, который использует все значения первичного ключа?
первичный ключ определяет порядок сортировки в котором данные лежат в таблице, а индекс там разреженный, так что всё логично

nikita
29.05.2018
15:44:59
вопрос про clickhouse + grafana. появился ли способ создавать графановские алерты, не копируя данные из clickhouse в prometheus?

Ivan
29.05.2018
15:46:46

Andrew
29.05.2018
15:47:12
но алертов под него afaik нет

Daniel
29.05.2018
15:48:25
алерты под плагин?) это что вообще такое?) плагины это коллекторы всего лишь, алерты настраиваются силами графаны
я выше кидал бинарник telegraf для influxdb, отлично подключается к графане

nikita
29.05.2018
15:48:47
Там же есть отдельный плагин для кх
ну это понятно, только в нем "tsdb.HandleRequest() error Could not find executor for data source type: vertamedia-clickhouse-datasource"
разработчики графаны пишут, что алерты под кастомные датасурсы будут не раньше grafana 5.2. вот я и спрашиваю, вдруг есть воркараунд какой.

Daniel
29.05.2018
15:49:52
так там для influxdb коллектор. считайте, родной для grafana

Ivan
29.05.2018
15:50:00

Andrew
29.05.2018
15:50:35
есть чатик "Церковь метрик", лучше туда с таким вопросом)

nikita
29.05.2018
15:50:51
Я вот тоже так считал
ну т.е. мораль в том, что grafana отдельно, а алерты на кликхаусовские данные разумно делать другой тулзой?

Andrew
29.05.2018
15:51:07
yep
я бы даже сказал "графана отдельно, а алерты разумно делать другой тулзой"

Phil
29.05.2018
15:52:44
А Kapacitor c КХ как-то интегрируется или он чисто для инфлюкса?

Ivan
29.05.2018
15:53:00
я чего-то не понимаю

Google

Ivan
29.05.2018
15:53:17
вот алерт. Соорудил и вперде

Andrew
29.05.2018
15:53:41
а кнопочка test работает?

Ivan
29.05.2018
15:53:48
Хотя совершенно не понятно, зачем алертингом у вас занимается графана, но это уже не моё дело

Andrew
29.05.2018
15:54:27
оно там в итоге ругнется что алерты поддерживаются только для graphite и influx(?)

Ivan
29.05.2018
15:54:51

Andrew
29.05.2018
15:55:52
походу пилят, но судя по error пока до конца не запилили?
про ненужность алертов графаны я выше писал что полностью солидарен

Ivan
29.05.2018
15:57:26

Andrew
29.05.2018
15:57:43
у авито впринципе странные доклады всегда)
(хотя не мне говорить, я сам тот ещё докладчик)

vladimir
29.05.2018
15:59:47

Ivan
29.05.2018
15:59:55
Ну я так понял, что это временное решение, потому что графит под приложения, а сооружать алертменеджер они пока не стали вокруг прома. Но чет мы уже в оффтопик

Andrew
29.05.2018
16:00:23
в доке https://clickhouse.yandex/docs/ru/query_language/queries/#query_language-queries-create_table блок
При создании материализованного представления, нужно обязательно указать ENGINE - движок таблицы для хранения данных.
Материализованное представление работает следующим образом: при вставлении данных в таблицу, указанную в SELECT, часть вставленных данных конвертируется запросом, а результат вставляется в представление.
задублирован
интересно, делал ли кто-нибудь на mat.view триггеры для мониторинга
и вообще можно ли так... ch умеет в kafka писать?

Ivan
29.05.2018
16:03:48
Я про кубу и т.д.