
Иван
29.09.2018
17:48:51
Аах) понятно

Ilya
29.09.2018
17:56:04
Уважаемые коллеги, какие общие рекомментации по установке max_concurrent_queries ? Хотим писать в БД очень и очень активно, стоит ли ставить перед ней какую-то очередь или можно выкрутить max_concurrent_queries на десятки тысяч?

Wolf
29.09.2018
18:00:31

Иван
29.09.2018
18:00:44

Google

Иван
29.09.2018
18:05:35
Еще вопрос, нормально что кх все время что то качает? примерно на 5гб в день?

Alexander
29.09.2018
18:05:36

Wolf
29.09.2018
18:06:01
ну расчитывайте на 1-4 вставки в секунду например на сервер
то есть поток за секунду поделите на 1-4 в зависимости от вкуса

Ilya
29.09.2018
18:07:02
понял, поставим очередь перед ним, спасибо!

Alexander
29.09.2018
18:07:26

Ilya
29.09.2018
18:08:11
ну, там парой: все наши сотни тысяч записей в очередь, а из очереди выгребает воркер(ы), пакует и шлет в КХ пачкой — я так это вижу

Alexander
29.09.2018
18:08:59
Кафка!

Ilya
29.09.2018
18:11:05
почему кафка?

Alexander
29.09.2018
18:11:49
Просто я с ней сейчас вожусь и она мне нравится. На самом деле просто к слову пришлось. Кроме того, у CH есть возможность интеграции с кафкой.

Ilya
29.09.2018
18:12:33
а, ну у нас кролик, тоже норм ? пока тьфу-тьфу

Alexander
29.09.2018
18:12:59
Но у меня есть вопрос к обществу. Как сделать доставку данных из кафки прямиком в CH?
Сделать табличку с engine kafka и по крону делать insert .. select? Или есть более умные способы?
Я люблю ушастого, но то, с какими спецэффектами он разваливается в случае отсутствия 60% свободной памяти - меня, как админа, расстраивает.

Google

Michal
29.09.2018
18:14:16

Alexander
29.09.2018
18:14:56
Ну, получается, данные будут материализоваться только по запросу клиента, или я что-то не правильно понимаю?

Michal
29.09.2018
18:16:12

nikoinlove
29.09.2018
18:16:54
а у кого есть?)

Alexander
29.09.2018
18:17:01

Michal
29.09.2018
18:17:02

Alexander
29.09.2018
18:17:29
Если я правильно понял, то engine Kafka - это всего лишь, по факту, коннектор. Сам CH данные с кафки не забирает, пока не будет select. Соответственно кто-то должен триггерить апдейт mat view

Michal
29.09.2018
18:21:54
Можешь развернуть немного мысль?
Ну т.е. просто все что приезжает в Кафка будет видеть таблица с движком Кафки, и для каждого нового блока данных будет выполнять вставку в materialized view. Короче MV в данном сценарии позволяет просто сбрасывать поток сообщений в реальную таблицу практически в реалтайме.

Alexander
29.09.2018
18:22:22
Хм. Попробую на неделе, спасибо.
Т.е. таки это полноценный консьюмер.

Daniel
30.09.2018
09:21:17
Можно зарепортить самому

Alexander
30.09.2018
10:05:42
Привет. При использовании Kafka движка + MV, каким образом можно управлять периодичностью и объемом вставки? Например, как вставлять не менее 10к записей, не чаще одного раза в 5 сек?

Vladimir
30.09.2018
10:08:14

Alexander
30.09.2018
10:15:12
Не очень понял. Если источник данных Kafka топик, то консьюмер при подключении сам забирает батч данных. Как часто он их запрашивает, решает сам консьюмер. В данной схеме - консьюмер это таблица КХ с движком Kafka

Roman
30.09.2018
10:22:01

Alexander
30.09.2018
10:37:29
Точно, оно. Спасибо!

Wolf
30.09.2018
10:40:15
почему может не выполняться на новой версии запрос on cluster в конфиге ремоутс прописан пароль для дефолт юзера , на одном шарде выполнился а на втором нет?
Progress: 2.00 rows, 116.00 B (2.05 rows/s., 118.62 B/s.) 49%
Received exception from server (version 18.12.17):
Code: 159. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000013 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background.

Mike
30.09.2018
12:49:02

Vladimir
30.09.2018
14:16:03
Скажите а какой параметр отвечает за максимальный размер данных который можно пропихнуть через http запрос КХ?

Google

Kirill
30.09.2018
14:26:36
Кстати, насчет той же Kafka. А как себя поведет engine если случайно в очереди не JSON, а мусор записали?
Где нибудь прикапывает такие сообщения как "unparsed" ?

Oleg
30.09.2018
14:27:43

Kirill
30.09.2018
14:28:46
принял, спасибо !
Ох, а я ведь правильно понял, что еще и exactly once не гарантируется?
https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/Kafka/StorageKafka.cpp
Ну то есть оффсеты не сохраняются в КХ вместе с данными и при очередном чтении просто берут из Kafka.
прочитал && сложил в КХ & kill -9 && не закоммитил && at least once
я просто погрепал вызовы методов set_offset/assign partitions у librdkafka.
0 нашлось => на стороне consumer никто явно не управляет с какого оффсета на самом деле нужно читать


molo4ko
30.09.2018
15:20:43
микробатчинг и EOD вообще плохо совместимы, а если уж их запрятать в черный ящик, то лучше такого избегать
а без микробатчинга не выйдет писать, как положено, потому что либо записал и закоммитил, и куски выходят по 1 сообщению, либо рискуешь забатчить и получить at least once
когда я делал свою писалку, постарался как-то отлавливать partial failures, но до сих пор не уверен, что все работает, как нужно
high avaiability в лучшем виде)

Гурам
30.09.2018
15:29:15
Но это не относится конкретно к http

Kirill
30.09.2018
15:39:04
а без микробатчинга не выйдет писать, как положено, потому что либо записал и закоммитил, и куски выходят по 1 сообщению, либо рискуешь забатчить и получить at least once
не очень понял. offset монотонно растет, kafka engine мог читать N сообщений, напротив каждой партиции сохранять MAX(offset) вместе с данными.
на старте, при инициализации consumer'a, забирать известный ему offset и проставлять явно, вне зависимости от того, что закоммичено в kafka.
другое дело, если в силу особенностей КХ невозможно "транзакционно" и данные сохранить и оффсет прикопать, тогда да, ничего не поделать.
разве что доп колонки напротив каждого сообщения topic:partition:offset делать

molo4ko
30.09.2018
15:42:15
не знаю, как работает kafka engine, но если атомарность вставки одного батча не гарантирована, то батчинг будет работать корректно только при условии отсутствия падений в середине записи
кажется, так

Kirill
30.09.2018
15:45:38
> атомарность вставки одного батча не гарантирована
это что то новенькое, то есть INSERT не всегда атомарен?
PS я только пару дней как знакомлюсь с КХ

Denis
30.09.2018
15:55:50

Kirill
30.09.2018
16:02:19
понял, больше спасибо!

Denis
30.09.2018
16:06:00
Не понимаю как кто-то пользуется Кафка энжин, у меня вообще ничего не работает и не работало, даже на банальных тестах из 3 строк, но может я продьюс неправильно делаю. Или Кафка у меня не той системы.


Wolf
30.09.2018
16:31:07
@milovidov_an а может подскажете куда копать если он кластер не выполняется на втором шарде, сперва подумал в версии проблема, накатил ансиблом аналогичный тестовый стенд все выполняется он кластер без проблем , в system.clusters все реплики есть , порты все открыты клиентом и телнетом между серверам все коннектит , но на первом шарде запросы он кластер выполняются , даже если его запустить на репликах второго шарда, а на втором дает таймаут, при этом ошибок в еррор логе кх нет никаких на всех репликах , уже даже не знаю в какую сторону копать
↘️ Progress: 2.00 rows, 116.00 B (1.69 rows/s., 97.88 B/s.) 49%Received exception from server (version 18.12.17):
Code: 159. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000015 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background.
при этом в дистрибьютед таблицы все запросы проходят нормально

Google

Wolf
30.09.2018
17:06:26
в целом по выводу выше видно что он не видит реплики второго шарда в активных , но как посмотреть какие активны и почему какие то не активны не очень понятно


Alex
30.09.2018
17:09:10

Wolf
30.09.2018
17:20:04
нет
по инфе вижу что кх считает реплики второго шарда не активными , хотя с чего бы вдруг, и где это посмотреть и причины где искать тоже не понятно

Alex
30.09.2018
17:21:07
ну сообщайте если зарешаете)

Alexander
30.09.2018
18:48:02
https://github.com/Vertamedia/chproxy
Кто-нибудь пользовался?

Марат
30.09.2018
19:31:46
Извиняюсь заранее за возможно глупый вопрос. Проект написан на PHP с использованием Mysql базы данных. Проект связан с affiliate маркетингом. Как раз искали что-то подобное, т.к ожидается десятки миллионов записей в одной из таблиц. Использовали фреймворк Codeigniter. Там для работы с БД есть специальный класс. Как теперь переобуться и использовать clickhouse там, где он нужен?
https://github.com/8bitov/clickhouse-php-client
вот это я так понимаю подойдет для меня?

Gerasimov
30.09.2018
21:54:09
Подойдет скорее всего, но этот проект по живее выглядит:
https://github.com/smi2/phpClickHouse

Andrey
30.09.2018
21:54:43

Марат
30.09.2018
21:55:31

Andrey
30.09.2018
21:56:48
не понял:)
Вам выше посоветовали несколько библиотек, но важно помнить что у ClockHouse есть простой http интерфейс и с ним можно взаимодействовать напрямую. Это на случай если библиотеки не подойдут.

Марат
30.09.2018
21:57:18

Andrey
30.09.2018
21:57:51
а как его найти?
Порт 8123, с ним же кстати и библиотеки эти взаимодействуют скорее всего

Vadim
01.10.2018
06:54:17
Привет всем.
Если на одном из серверов не хватает блоков, которые были ранее. Как заставить сервер скачать недостающие данные с реплики?

Aleksandr
01.10.2018
07:27:53

Google

Artem
01.10.2018
08:53:41

Wolf
01.10.2018
08:59:46

terry
01.10.2018
09:26:50
добрый день
а https://tabix.io/doc/Install/ , который клиент для clickhouse, может подключиться к ssl подключению clickhouse?

Vadim
01.10.2018
09:42:01