@clickhouse_ru

Страница 572 из 723
Дмитрий
29.06.2018
08:57:29
разобрался...

SELECT toDateTime('2018-06-29 10:05:34') AS test_datetime0, toDateTime(toDateTime('2018-06-29 10:05:34', 'UTC')) AS test_datetime1, toString(test_datetime0), toString(test_datetime1), toTypeName(test_datetime0),toTypeName(test_datetime1), cast(test_datetime0 as DateTime('UTC')), test_datetime1-test_datetime0, 3*3600

?
29.06.2018
10:24:17


Alexei
29.06.2018
10:24:24
Всем привет! Столкнулся проблемой.. Странной проблемой.. Делаю insert from select из одной таблицы в другую (точно такую же по структуре). В результате в выходной таблице оказывается намного больше записей.. И этот insert не останавливается.. движок MergeTree. Если делать по частям(по месяцам например), то норм. Всего около 3 млд записей в исходной. Может кто сталкивался.

Google
Victor
29.06.2018
10:25:34
в пулл реквестах диффы почитайте, там и по докам

?
29.06.2018
10:30:49
Vitaliy
29.06.2018
11:47:57
а ALTER TABLE t DELETE WHERE для MergeTree будете делать?

Alex
29.06.2018
12:02:31
Да

Solresl
29.06.2018
12:15:16
приветствую. Есть логи от веб-серверов в clickhouse, хочется из них получить метрики и работать уже с ними. Есть конечно идея формировать их в таблицу под формат graphouse для graphite. Но может кто уже сталкивался или сам подобное осуществлял?

Diomid
29.06.2018
12:42:13
Подскажите пожалуйста, зачем в последней версии из мастера добавили новые 2 строчки в systemd для chown? При статус running получаю Process: 24018 ExecStartPre=/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=0/SUCCESS) Process: 24016 ExecStartPre=/usr/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=203/EXEC) Или все-таки одну можно было убрать просто?

Alexey
29.06.2018
16:16:32
Подскажите пожалуйста, зачем в последней версии из мастера добавили новые 2 строчки в systemd для chown? При статус running получаю Process: 24018 ExecStartPre=/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=0/SUCCESS) Process: 24016 ExecStartPre=/usr/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=203/EXEC) Или все-таки одну можно было убрать просто?
Надо спрашивать у @proller - я не имею понятия. Возможно, в каких-то системах chown расположен в /usr/bin, а в других - просто в /bin? А что вообще можно писать в systemd? Есть ли там поиск по PATH? Можно ли писать кусок скрипта типа command chown? Можно ли написать || true? У нас никто не пользуется systemd. Если вы точно знаете, как сделать лучше - напишите.

Alexey
29.06.2018
16:44:41
А через || ?

А можно оставить chown в init-скрипте? Он ведь продолжает работать?

prll
29.06.2018
16:46:16
Там же что-то умное что проверяет пути, про || не уверен

Alexey
29.06.2018
16:47:08
А что сейчас портится от (code=exited, status=203/EXEC)?

Google
prll
29.06.2018
16:49:41
Там же специальное игнорирование плохого результата

Alexey
29.06.2018
16:58:51
А это где написано? ExecStartPre=-... равно минус - это игнорирование?

/bin/sh -c 'chown ...' - а так нельзя написать?

Evgeny
29.06.2018
17:16:32
Господа, скажите ПЛЗ про движок JOIN. Я думал что я могу к нему джойниться и дальше делать запрос с участием полей, но ошибка говорит мне что нет Code: 48, e.displayText() = DB::Exception: Method read is not supported by storage Join, e.what() = DB::Exception

Evgeniy
29.06.2018
17:22:35
Подскажите, сделать materialized view над CollapsingMergeTree чтобы в коде приложения использовать уже свернутые данные нормальная схема? Через какое время в представлении будут видны новые данные после вставки в основную таблицу?

Evgeny
29.06.2018
17:27:03
Там очень простой пример, я могу даже сюда

CREATE MATERIALIZED VIEW session_ads_by_pagetype ENGINE = Join(ALL, INNER, qksid, eventDate) POPULATE AS SELECT DISTINCT eventDate, qksid, qpt as page_type, dt as viewed_ad_time FROM logs2

Alexey
29.06.2018
17:27:53
Подскажите, сделать materialized view над CollapsingMergeTree чтобы в коде приложения использовать уже свернутые данные нормальная схема? Через какое время в представлении будут видны новые данные после вставки в основную таблицу?
К сожалению, это работать не будет. Дело в том, что materialized view производит вычисления над каждой пачкой вставляемых данных, а не над всеми данными в совокупности. Поэтому он не сможет "свернуть" все данные.

CREATE MATERIALIZED VIEW session_ads_by_pagetype ENGINE = Join(ALL, INNER, qksid, eventDate) POPULATE AS SELECT DISTINCT eventDate, qksid, qpt as page_type, dt as viewed_ad_time FROM logs2
Нужен полный пример, который можно проверить на пустом сервере. Сейчас непонятно, какая структура logs2.

Evgeny
29.06.2018
17:31:05
Понял. Сделаю - скину

Alexey
29.06.2018
19:01:36
@proller В init скрипте у нас делается много полезных вещей: проверка набора инструкций, chown директории с логами. См. https://github.com/yandex/ClickHouse/issues/1981#issuecomment-379131832 Происходит ли это при использовании systemd? Если нет - можем ли мы сделать, чтобы systemd просто запускала наш init скрипт?

Evgeniy
29.06.2018
19:56:23
Похоже нашел баг. В ставляю 19 млн строк в таблицу CollapsingMergeTree делаю select count() from table_name Получаю 10 млн. В ставляю еще 19 млн. Ожидаю 38 млн. Получаю 7 млн. Каждый раз количество строк разное. Делаю select count() from stat2.purchase FINAL Получаю 171. С ReplacingMergeTree та же история. Если движок MergeTree - работает как надо.

Evgeniy
29.06.2018
20:01:51
Collapsing- и Replacing- MergeTree удаляют строки в процессе фоновых мержей.
Спасибо большое. Добавил id в ключ, теперь как надо.

Michal
29.06.2018
20:09:57
Алексей, а есть какие-то простые признаки того что можно, а чего нельзя в матвью? Внешние джойны , подзапросы?

Т.е. например если будет обработка каждого блока заинсертованых данных но в сложносочиненном селекте где исходные данные будут собираться из подселекта и потом допиливаться функциями высшего порядка собираться в массивы и потом разбираться обратно с помощью array join?

Alexey
29.06.2018
20:16:55
Алексей, а есть какие-то простые признаки того что можно, а чего нельзя в матвью? Внешние джойны , подзапросы?
Следует воспринимать их как триггеры на INSERT. То есть, как штуку, которая делает какие-то вычисления над каждым вставляемым блоком. Из этого всё следует. Например, JOIN можно, но лучше несложный, так как он будет выполняться при каждой вставке. ARRAY JOIN, функции высшего порядка - не проблема. Подзапросы - в секции FROM должно быть Ок, в IN - лучше несложные.

Denis
30.06.2018
23:01:53
А насколько атомарен insert ? Я загрузил ~15млн. строк в TinyLog таблицу, затем set max_block_size = 15085455 (по числу строк во временной) set max_insert_block_size = 15085455 insert into fact.... select ... from tmp_TinyLog join ...... этот insert упал DB::Exception: Memory limit (for query) exceeded в таблицу fact загрузилось ~5млн. строк из 15. (все в одной сессиий через clickhouse-client) Таблица просто MergeTree, партиционирована по двум полям (account, toYYYYMM( инсерт вставляет сразу в 30 партиций (30 разных account). ClickHouse server version 1.1.54388.

Google
Yuran
01.07.2018
16:02:10
Вроде бы insert атомарен до 1 000 000 строк

Впрочем, это относится к движкам *MergeTree

Vladimir
01.07.2018
16:06:51
Может кто видит почему ругаеться КХ

ENGINE = ReplicatedMergeTree('/clickhouse/tables/metrics/{shard}/Metrics', '{replica}') PARTITION BY (floor(timestamp/86400)) ORDER BY (appId, metricId, timestamp) SAMPLE BY (appId, metricId, timestamp);

Sampling expression must be present in the primary key

Согласно этому https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/MergeTree/MergeTreeData.cpp#L125

Должно работать вроде

Alexey
01.07.2018
16:19:20
Может кто видит почему ругаеться КХ
Выражение сэмплирования - одно, не кортеж.

Vladimir
01.07.2018
16:19:45
ага спсб

Alexey
01.07.2018
16:20:02
https://yandex.github.io/clickhouse-presentations/rit2018/# - вначале.

Vladimir
01.07.2018
16:20:26
metricId в моем случае получается

спсб за презентацию

Vladislav
01.07.2018
22:06:39
Привет) А кто-нибудь в курсе как можно в CH сделать show сессионной переменной? Хочу посмотреть с каким user_profile сессия установлена.

Алексей
02.07.2018
03:32:55
/stat@combot

Combot
02.07.2018
03:32:55
combot.org/c/-1001080295593

Николай
02.07.2018
06:36:31
Подскажите по clickhouse, хочу использовать его как time series database. У меня собираются счетчики по 250 000 портам 4 раза в час. Это уже 24 миллиона записей в месяц. За год это будет 720 000 000 записей. Я думаю нам места таким образом не хватит. Раньше мы использовали RRD для этих целей, он столько места не занимал и была возможность посмотреть графики за год-два, сейчас просто RRD не справляется. Можете что-нибудь посоветовать по данной проблеме?

Dmitry
02.07.2018
06:37:03
NOC ?

укладывается в clickhouse, достаточно компактно

Николай
02.07.2018
06:39:01
NOC ?
Можно ссылку, пожалуйста, или расшифровку?

Dmitry
02.07.2018
06:39:20
давайте в личку

Google
Dmitry
02.07.2018
06:39:54
https://code.getnoc.com/noc/noc

Egor
02.07.2018
09:00:42
всем привет. объём базы КХ растёт, и бэкапить его селектом уже не представляется возможным. как быть? м.б. LVM-снапшот?

Wolf
02.07.2018
09:01:24
а в чем проблема селектом только новый день скажем забирать ?

Egor
02.07.2018
09:01:47
а остальное?

papa
02.07.2018
09:04:51
а остальное бекапить вчера

Egor
02.07.2018
09:08:51
наверное потому что ничего не знаю про это

щас почитаю

Victor
02.07.2018
09:09:11
на highload.ru была статья по бекапам, емнип

Stanislav
02.07.2018
09:14:17
А там было про бекапы зукипера вместе с кх?

Просто сейчас лично у меня есть проблемы с пониманием, как восстанавливать весь кластер из бекапа...

Wolf
02.07.2018
09:15:04
а остальное?
ну каждый день бекапите предыдущй в итоге у вас есть все дни

какое тут остальное ?

Michal
02.07.2018
09:18:20
Просто сейчас лично у меня есть проблемы с пониманием, как восстанавливать весь кластер из бекапа...
Если у вас есть информация о партиции(партициях) в зукипере и хотя бы одна живая реплика - все остальные утащат данные с неё.

Stanislav
02.07.2018
09:18:55
Я хочу защититься от случая падения зукипера

Вместе с датацентром :-)

Просто у меня уже был случай съезжания крыши у зукипера и не хотелось бы повторять.

Wolf
02.07.2018
09:27:54
Stanislav
02.07.2018
09:28:43
Возможны проблемы со связностью в сильно распределённом зукипере...

Google
Wolf
02.07.2018
09:29:44
ну вы не сильно распределяйте по чуть чуть

Vladislav
02.07.2018
09:34:16
Ну я по настройкам могу посмотреть, да, но самого профиля там нет :(

SELECT * FROM system.settings WHERE changed = 1 ?

Собственно сам вопрос следующий — пользуюсь версией 1.1.54385. Проставил пользователю <profile> и захожу им сначала через native интерфейс (clickhouse-client использую) — вижу настройки профиля, захожу через http интерфейс (использую clickhouse-cli от hatarist) — вижу дефолтные настройки... Такое ощущение, что <profile> при обращении через http не применяется и <readonly> пользователь становится не readonly

Vasilij
02.07.2018
10:01:06
Привет! Используется кворумная запись, для чтения стоит по дефолту select_sequential_consistency=1. После перехода на следующий месяц (партиционирование таблицы по месяцам), предыдущий перестал попадать в результаты селекта (но никаких ошибок не кидает). Ставим select_sequential_consistency=0 - данные видны. Запись идет нормально. Это баг или мы что-то неверно настроили?

Vladislav
02.07.2018
10:09:32
Пофикшено в 1.1.54388, см. changelog: >Настройки профиля пользователя не применялись при использовании сессий в HTTP-интерфейсе.
Круто, спасибо :) Ещё бы tag добавили в hub.docker.com, а то там только в latest и 1.1 залили новую stable

Nickolay
02.07.2018
10:10:06
Кто-то может подскажет best practice алгоритм по расширению кластера (добавление нового шарда)? Текущий кластер: <main_cluster> <shard> <weight>1</weight> <internal_replication>false</internal_replication> <replica> <host>ch-1-1</host> <port>9000</port> </replica> <replica> <host>ch-1-2</host> <port>9000</port> </replica> </shard> <shard> <weight>1</weight> <internal_replication>false</internal_replication> <replica> <host>ch-2-1</host> <port>9000</port> </replica> <replica> <host>ch-2-2</host> <port>9000</port> </replica> </shard> </main_cluster> такой алгоритм "сломает" кластер? - создать все таблицы на новом шарде - добавить на все сервера (начиная с серверов нового шарда) <shard> <weight>1</weight> <internal_replication>false</internal_replication> <replica> <host>ch-3-1</host> <port>9000</port> </replica> <replica> <host>ch-3-2</host> <port>9000</port> </replica> </shard> Нужно ли пересоздавать Distributed таблицы на "старых" шардах?

Wolf
02.07.2018
10:13:43
не нужно

Nickolay
02.07.2018
10:28:08
не нужно
т.е. воссоздать схему на новых и добавить их в конфигурацию кластера достаточно безопасное действие? версия КХ 1.1.54385 сама подхватит новый шард или требуется перезапуск?

Wolf
02.07.2018
10:29:04
безопасно

насколько помню само подхватывает конфиг кластера

Nickolay
02.07.2018
10:30:14
спасибо

Sergei
02.07.2018
11:02:24
Добрый день! подскажите пожалуйста, есть ли готовые инструменты для создания схемы таблицы на основе protobuf описания и драйвер, который может лить данные из протобуфа?

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