
Kirill
31.05.2018
11:36:12

Alex
31.05.2018
11:38:00

Andrey
31.05.2018
11:38:31

Google

Kirill
31.05.2018
11:44:45
поднятие ноды и поднятие ноды взамен другой по идее же не связаны?
Нет, по идее это должно быть как-то так: падает нода, понимаем что проще стартануть новый контейнер, поднимаем новый, синкаем данные, понимаем что данные приехали и прописываем в remote_servers и где-то в этот момент подчищаем в Zookeeper данные о старой ноде, а не по таймауту )

Viktor
31.05.2018
11:45:16
Здравствуйте, скажите, с чем связанна данная ошибка
<Error> executeQuery: Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 20.180135335 seconds …. далее идет запрос SELECT
это таймаут на выполнение?

Kirill
31.05.2018
11:45:44

Alex
31.05.2018
11:46:22

Andrey
31.05.2018
11:48:15

Kirill
31.05.2018
11:54:50

Alex
31.05.2018
11:55:58
погляди в сторону consul, у них этот функционал называется autopilot, когда кластер сам подчищает за собой мусор, полезно во всяких AWS инсталляциях, когда у тебя размер кластера скачет туда сюда

Андрей
31.05.2018
12:14:49

Vladislav
31.05.2018
12:16:14
Всем привет.
Подскажите, пожалуйста, по дефолтным значениям колонок.
Правильно, ли я понимаю, что если мы добавляем колонку с дефолт значением альтером, то для старых данных на диск ничего записываться не будет. и выражения типа domain(`url`) будет пересчитываться при каждом селекте? И лучше всего пересоздать таблицу и перелить в нее данные, чем держать такие колонки?

Stanislav
31.05.2018
12:20:08
Как бы ее посмотреть, не поделитесь ссылкой?
Э...
1) настроить zookeer по https://clickhouse.yandex/docs/en/operations/tips/#zookeeper
2) вписать его узлы в секцию zookeeper (могу дать работающий пример, но вообще спёр это из док кликхауса)
3) настроить секцию macros индивидуально для каждого узла кликхауса (аналогично)
Из проблем вижу только настройки самого зукипера. Остальное - в соответствии с документацией.
https://clickhouse.yandex/docs/en/table_engines/replication/

Diomid
31.05.2018
12:21:29

Google

Diomid
31.05.2018
12:21:54

Stanislav
31.05.2018
12:22:25
# cat /etc/clickhouse-server/config.d/macros.xml
<?xml version="1.0"?>
<yandex>
<macros replace="replace">
<!-- id шарда, у нас всегда одно и тоже, ибо репликация типа зеркало -->
<shard>01</shard>
<!-- id реплики, уникальное для каждого сервера в шарде -->
<replica>01</replica>
</macros>
</yandex>

Андрей
31.05.2018
12:22:30

Stanislav
31.05.2018
12:22:51
Ну и использовал потом подстановки в CREATE TABLE

Diomid
31.05.2018
12:23:18
У меня проблема была в создании реплицируемой таблицы, я не мог долго понять какие параметры писать. Имя реплики и так далее.

Stanislav
31.05.2018
12:24:22
CREATE TABLE telegraf.docker ON CLUSTER telegraf_replica ( date Date, datetime DateTime, engine_host String, host String, service String, n_containers_stopped UInt64, n_used_file_descriptors UInt64, n_containers_running UInt64, n_listener_events UInt64, memory_total UInt64, n_cpus UInt64, n_containers UInt64, n_goroutines UInt64, n_images UInt64, n_containers_paused UInt64 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/telegraf_docker', '{replica}', date, (date, datetime, engine_host, host, service), 8192)
{shard} и {replica} берутся из макросов
Вобщем, по ссылке выше это тоже есть.

Diomid
31.05.2018
12:25:14
Спасибо!

Kirill
31.05.2018
12:26:42
Вопрос по организации хранения. Допустим у нас есть разные события. Какие-то события относятся к маркетингу, какие-то к игре, какие-то к чему-то еще. У каждого события есть определенные группы полей, причем есть набор полей, который общий для всех событий (например utm метки пользователя или идентификатор пользователя); остальные поля разные у всех событий и специфичны только для конкретного типа событий. Насколько корректно будет хранить все эти события в одной большой таблице? Т.е. проблема в том, что каждое событие будет заполнять только свои поля, а другие поля будут пустыми. Имеет ли место быть такая практика?

Wolf
31.05.2018
12:27:35
отлично будет храниться

Stanislav
31.05.2018
12:28:37
Нормально хранится, проверено.

Kirill
31.05.2018
12:28:46
Спасибо!

Александр
31.05.2018
13:22:00
А вот такое чудо о чем говорит? О том, что до ЗК не может достучаться, или ЗК долго думает?
<Warning> ZooKeeper: Error on attempt 0: operation timeout. Retry
Делает три попытки и валится дальше с ошибкой Cannot create table from metadata file...

Denis
31.05.2018
13:29:25


LeiDruid
31.05.2018
13:29:57
Товарищи, а что бы можно было сделать для ускорения мержей? Постоянно упираюсь в то, что КХ ругается на большое кол-во кусков мержей ( более 300), при этом самые частые записи уже делаются через буфер. Что-то ещё может покрутить ?

Vladislav
31.05.2018
13:30:47

Denis
31.05.2018
13:31:05

Google

Vladislav
31.05.2018
13:35:02
отлично
спасибо

Stas
31.05.2018
14:21:41
коллеги, подскажите а как в случае с curl отправить параметр на поднятие памяти (max_result_bytes) POST'ом а не в гете (curl -sS 'http://localhost:8123/?max_result_bytes=4000000)

Arto
31.05.2018
14:42:23
Коллеги, добрый день!
Кто-нибудь подключал кликхаус к Power BI в DirectQuery моде?

Konstantin
31.05.2018
14:44:38

Дмитрий
31.05.2018
14:45:36
Прошу прошения за глупый вопрос, но мне нужна функция типа DATEADD в мускуле есть такая? Не смог найти в доках

papa
31.05.2018
14:46:34
SELECT *
FROM system.functions
WHERE name LIKE '%add%'
┌─name───────┬─is_aggregate─┐
│ addSeconds │ 0 │
│ addMonths │ 0 │
│ addDays │ 0 │
│ addMinutes │ 0 │
│ addHours │ 0 │
│ addWeeks │ 0 │
│ addYears │ 0 │
└────────────┴──────────────┘

Дмитрий
31.05.2018
14:47:23

Konstantin
31.05.2018
14:48:27

Дмитрий
31.05.2018
15:08:03
А можно еще вопрос, создал я materialized view и у меня там только новые данные а старые не подтянулись, можно это как-то исправить? Или я просто сделал что-то не так?

Alex
31.05.2018
15:09:13
https://clickhouse.yandex/docs/ru/query_language/queries/#create-view
> Если указано POPULATE, то при создании представления, в него будут вставлены имеющиеся данные таблицы, как если бы был сделан запрос CREATE TABLE ... AS SELECT ... . Иначе, представление будет содержать только данные, вставляемые в таблицу после создания представления. Не рекомендуется использовать POPULATE, так как вставляемые в таблицу данные во время создания представления, не попадут в него.

Дмитрий
31.05.2018
15:10:39

Гаврилов
31.05.2018
15:36:23
а как кх будет себя вести если поставить условие not in("1 млн записей из внешнего справочника")
никто не пробовал?

Andrey
31.05.2018
15:37:07

Гаврилов
31.05.2018
15:37:21
миллион записей это айдишники
тоесть поидее не много
в сам запрос с таким not in насколько плохо будет работать?
у нас заказчик захотел черный список в аналитике...

Александр
31.05.2018
16:02:10

Google

Александр
31.05.2018
16:02:17
Работает как надо
Думаю можно ЧС в мемори таблицу загнать и периодически дополнять его

Гаврилов
31.05.2018
16:03:56
из memory удалять же нельзя?
и партиции там не дропаются?
у нас могут в любой момент удалить из чс

Александр
31.05.2018
16:05:54
Можно хранить список в другой бд, а при изменении чс пересоздавать таблицу и писать туда данные
он часто вообще обновляется?

Гаврилов
31.05.2018
16:10:32
пользователь может в любую секунд тыкнуть кнопку и отредактировать)
его еще нету
я думаю, как сделать

Renat
31.05.2018
16:15:32
у нас подобное нормально работает, но пришлось лезть в конфиг и увеличивать max_ast_elements

Гаврилов
31.05.2018
16:16:14
всмысле через справочник работает?

Renat
31.05.2018
16:17:38
справочник == словарь?
в нашем случае приложение формирует огромный запрос сразу с in (1, 2, 3, ...)

Гаврилов
31.05.2018
16:19:10
без этого бы хотелось обойтись
например написать id not in (select id from black_list)

Александр
31.05.2018
16:21:38
Мы так тоже делали
Пока строками за 16кб не вылезли
Пришлось писать транспорт через cli клиент

Renat
31.05.2018
16:22:31
откуда ограничение в 16кб?

Google

Гаврилов
31.05.2018
16:23:09
вопрос не столько - дебажить
при формировании запроса
придется спрашивать каждый раз у постгреса черный список
а в случае с внешним словарем можно поставить запуск обновления словаря в триггере постгреса

Renat
31.05.2018
16:24:15
vs обновлять ЧС на всех нодах кликхауса

Гаврилов
31.05.2018
16:24:47
1 млн айдишников это 4 килобайта
в рамках - обновить по триггеру фигня
но дергать для каждого запроса
накладно

Александр
31.05.2018
16:26:07

Гаврилов
31.05.2018
16:26:32
вы передавали строки
а odbc будет брать числа
вопрос больше в том