@clickhouse_ru

Страница 511 из 723
Alexander
26.04.2018
08:53:23
котелось бы вернуться к рзговору про "не менее 1000 записей в секунду", если есть разработчики движка, хотелось бы уточнений: если вносить 1 или 10 или 100 или 1000 записей за INSERT, потом снимать с CH нагрузку и ждать сколь угодно долго, будет ли отличие в том, как это ляжет на диск?

Alexander
26.04.2018
08:55:43
значит разница только в нагрузке на цпу и i/o, так?

Kirill
26.04.2018
08:56:50
значит разница только в нагрузке на цпу и i/o, так?
При мерже 1-й записи или 1000 вы разницы не заметите

Google
Alexander
26.04.2018
08:57:47
@kshvakov спасибо огромное за разъяснения

Vladyslav
26.04.2018
08:59:36
Здравствуйте. Есть ли прогресс в сторону миграций для clickhouse?

Wolf
26.04.2018
09:01:21
А в чем проблема миграции, тут вроде почти без изменений все простые запросы мигрируют

Vladyslav
26.04.2018
09:04:32
https://habr.com/company/smi2/blog/317682/ - здесь читал про ограничения DDL-запросов в clickhouse, авторы написали либу, которая нам к сожалению не подходит. Так же они писали, что анонсирована работа в этом направлении в clickhouse

Alexander
26.04.2018
09:05:57
И последний вопрос, но насчет работы с JSON: есть функция по выдергиванию значения по ключу, все отлично SELECT visitParamExtractRaw(header, 'X-Forwarded-For') FROM access LIMIT 1 FORMAT RowBinary возвращает ["79.104.200.2"] - так получилось, что по ключу лежит JSON-массив. Я не нашел в документации функции для работы с JSON-массивами. Их не существует? Есть ли в планах их создание?

Alexander
26.04.2018
09:18:13
@Sablast думаю да, splitByChar должно получиться выдернуть 79.104.200.2

Konstantin
26.04.2018
09:21:27
@Sablast думаю да, splitByChar должно получиться выдернуть 79.104.200.2
вот тут еще посмотрите, сравните что вам удобнне/быстрее: https://clickhouse.yandex/docs/ru/single/#replaceregexpallhaystack-pattern-replacement

Alexander
26.04.2018
09:22:33
регулярки были бы очень круто, но есть опасения, что будет не очень быстро

Konstantin
26.04.2018
09:23:14
протестируйте)

Alexander
26.04.2018
09:24:24
да, как раз об этом подумал) спасибо)

иногда создается впечатление, что КХ весь состоит из хаков и воркэраундов)))

Alex
26.04.2018
09:27:20
Хороший вопрос, но не для теоретиков..., попробуй спросить в профильном сообществе, ссылку в лс скинул.

Google
Беслан
26.04.2018
09:28:38
дисциплина теоритического sql)))

?
26.04.2018
09:33:41
иногда создается впечатление, что КХ весь состоит из хаков и воркэраундов)))
потому что он весь вокруг практических рабочих кейсов построен

Aleksandr
26.04.2018
10:37:21
/stat@combot

Combot
26.04.2018
10:37:21
combot.org/chat/-1001080295593

Yuran
26.04.2018
11:35:29
Alexander
26.04.2018
11:38:43
кто сказал, что это плохо?)

Egor
26.04.2018
11:41:48
CH = Constantly Hacking

?
26.04.2018
11:43:13
)

Alex
26.04.2018
11:57:45
По-моему, этого никто и не скрывал :). И это не плохо
"Это open source, детка, тут могут и нах*й послать" :)

Ivan
26.04.2018
12:13:59
Планируется ли как-то имплементировать операцию update?

antuan
26.04.2018
12:16:23
апдейт для слабаков

но да, судя по road map'у

Kirill
26.04.2018
12:22:05
Планируется ли как-то имплементировать операцию update?
При большом желании и сейчас можно апдейтить данные, просто это не всегда удобно.

Ivan
26.04.2018
12:22:24
@kshvakov а как?

Kirill
26.04.2018
12:24:37
@kshvakov а как?
Учитывая что КХ, обычно, занимается группировкой данных то можно перезатереть "старые" записав поверх отрицательные значения, если пользоваться CollapsingMergeTree, SummingMergeTree то они вообще старые данные после мерджа удалят.

Serge
26.04.2018
12:34:35
всем, привет! а регистронезависимый LIKE можно сделать только через positionCaseInsensitive или есть другой метод?

Serge
26.04.2018
12:38:58
спасибо!

Леонид
26.04.2018
13:24:09
Добрый. Кто знает, можно sample включить в уже созданной таблице? или пересоздавать придется?

Google
Вася
26.04.2018
13:25:23
Придётся.

Леонид
26.04.2018
13:45:45
Печально(

mikhail
26.04.2018
13:48:52
Привет, как принудительно обновить внешний словарь?

M
26.04.2018
13:49:15
SYSTEM RELOAD DICTIONARIES

обновит все

mikhail
26.04.2018
13:49:51
@pavlov_m, пасибоу!

Tima
26.04.2018
13:50:40
Есть ещё SYSTEM RELOAD DICTIONARY, подозреваю можно передать имя конкретного словаря, но не пробовал

А кто-нибудь пользуется superset-ом вместе с КХ? У меня простой запрос вида SELECT COUNT(*) работает, а запрос вида SELECT mark, COUNT(*) FROM .... LIMIT 10 думает 30 секунд и пишет что превышет timeount. Хотя этот же запрос в консоле выполняется меньше чем за секунду. В логе КХ видно что запрос отрабатывает за меньше чем секунду, но что superset делает что-то ещё 30 секунд и в результате нифига. Причем это именово вкладке "SQL Lab", в остальных режимах тоже думает, но всё равно показывает результат

Maxim
26.04.2018
14:13:11
Всем доброго дня. Я пытаюсь разобраться с использованием Kafka в Clickhouse. Разделе посвященном Kafka есть запрос присоединения материального представления к движку Kafka: CREATE MATERIALIZED VIEW consumer TO daily AS SELECT toDate(toDateTime(timestamp)) AS day, level, count() as total FROM queue GROUP BY day, level; При его выполнении Clickhouse ругается на лексему "TO": Expected AS. Подскажите, в чем причина? ClickHouse server version 1.1.54380

Alexandr
26.04.2018
14:30:09
Всем привет. Помогите, пожалуста. Имеются таблицы вида: CREATE TABLE data.user_contacts ( date UInt32, user_id UInt32, site_id UInt32, timespan_start UInt32, timespan_end UInt32, timestamp_start DateTime, timestamp_end DateTime, date_day Date MATERIALIZED toDate(concat(substring(toString(date), 1, 4), '-', substring(toString(date), 5, 2), '-', substring(toString(date), 7, 2)))) ENGINE = MergeTree PARTITION BY (date_day, site_id) ORDER BY (date_day, site_id, timespan_start, timespan_end) SETTINGS index_granularity = 8192 CREATE TABLE data.events ( event_id String, site_id UInt32, date UInt32, timestamp_start DateTime, timestamp_end DateTime, quantity UInt32, total_event_id_duration UInt32, event_duration Int32 MATERIALIZED timestamp_end - timestamp_start, date_day Date MATERIALIZED toDate(concat(substring(toString(date), 1, 4), '-', substring(toString(date), 5, 2), '-', substring(toString(date), 7, 2)))) ENGINE = MergeTree PARTITION BY date_day ORDER BY (date_day, site_id, timestamp_start, timestamp_end, event_id) SETTINGS index_granularity = 8192 И запрос: SELECT event_id, user_id, date_day, event_duration, least( timestamp_end, timestamp_end_event )- greatest( timestamp_start, timestamp_start_event ) AS intersected_duration, total_event_id_duration FROM data.user_contacts ALL INNER JOIN( SELECT events.event_id, events.site_id, events.date_day, events.quantity, events.timestamp_start AS timestamp_start_event, events.timestamp_end AS timestamp_end_event, event_duration, total_event_id_duration FROM data.events ) events USING( date_day, site_id ) WHERE date_day BETWEEN '2017-01-01' AND '2017-01-31' AND timestamp_start < timestamp_end_event AND timestamp_start_event < timestamp_end Проблема заключается в большом потреблении оперативной памяти Для справки: 1) ClickHouse server version 1.1.54380. 2) Данных в таблице data.user_contacts намного больше, чем информации в data.events 3) Индексы по непонятной причине используются только для ограничения data.user_contacts по датам и не участвуют в join 4) Пробовал создавать и такой индекс: (date_day, site_id) - результат не отличается от п.3 Подскажите, пожалуйста, как максимально эффективно соединить 2 таблицы по пересекающимся временным интервалам?

Denis
26.04.2018
14:31:28
Всем привет. Помогите, пожалуста. Имеются таблицы вида: CREATE TABLE data.user_contacts ( date UInt32, user_id UInt32, site_id UInt32, timespan_start UInt32, timespan_end UInt32, timestamp_start DateTime, timestamp_end DateTime, date_day Date MATERIALIZED toDate(concat(substring(toString(date), 1, 4), '-', substring(toString(date), 5, 2), '-', substring(toString(date), 7, 2)))) ENGINE = MergeTree PARTITION BY (date_day, site_id) ORDER BY (date_day, site_id, timespan_start, timespan_end) SETTINGS index_granularity = 8192 CREATE TABLE data.events ( event_id String, site_id UInt32, date UInt32, timestamp_start DateTime, timestamp_end DateTime, quantity UInt32, total_event_id_duration UInt32, event_duration Int32 MATERIALIZED timestamp_end - timestamp_start, date_day Date MATERIALIZED toDate(concat(substring(toString(date), 1, 4), '-', substring(toString(date), 5, 2), '-', substring(toString(date), 7, 2)))) ENGINE = MergeTree PARTITION BY date_day ORDER BY (date_day, site_id, timestamp_start, timestamp_end, event_id) SETTINGS index_granularity = 8192 И запрос: SELECT event_id, user_id, date_day, event_duration, least( timestamp_end, timestamp_end_event )- greatest( timestamp_start, timestamp_start_event ) AS intersected_duration, total_event_id_duration FROM data.user_contacts ALL INNER JOIN( SELECT events.event_id, events.site_id, events.date_day, events.quantity, events.timestamp_start AS timestamp_start_event, events.timestamp_end AS timestamp_end_event, event_duration, total_event_id_duration FROM data.events ) events USING( date_day, site_id ) WHERE date_day BETWEEN '2017-01-01' AND '2017-01-31' AND timestamp_start < timestamp_end_event AND timestamp_start_event < timestamp_end Проблема заключается в большом потреблении оперативной памяти Для справки: 1) ClickHouse server version 1.1.54380. 2) Данных в таблице data.user_contacts намного больше, чем информации в data.events 3) Индексы по непонятной причине используются только для ограничения data.user_contacts по датам и не участвуют в join 4) Пробовал создавать и такой индекс: (date_day, site_id) - результат не отличается от п.3 Подскажите, пожалуйста, как максимально эффективно соединить 2 таблицы по пересекающимся временным интервалам?
>Проблема заключается в большом потреблении оперативной памяти что это значит? для меня это например больше 100ГБ. я бы WHERE заменил на PREWHERE

Страница 511 из 723