@clickhouse_ru

Страница 719 из 723
Mike
25.10.2018
10:43:50
Похоже init-скрипты для центоса не знают о bridge процессе и не перезапускают его в момент обновления

Sergey
25.10.2018
11:07:03
Проблема, похоже, не в драйвере, а в том, что датафрейм конвертирует не в то, что надо. Тогда другой вопрос - какого хрена? И что с этим можно сделать?

Google
Sergey
25.10.2018
11:08:18
а есть такой на примете?

Pavel
25.10.2018
11:08:41
у меня - нет

Aleksandr
25.10.2018
11:21:20
привет, а как репликейтед таблицы создаются новым синтаксисом?

ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192

Alex
25.10.2018
11:22:33
ENGINE ReplicatedMergeTree('path', 'replica_id'), а дальше всё так же

Alexey
25.10.2018
11:23:32
привет, а как репликейтед таблицы создаются новым синтаксисом?
engine = ReplicatedMergeTree('/clickhouse/tables/{shard}/default.my_table_1', '{replica}') partition by creation_date, order by ( id, id_client );

Aleksandr
25.10.2018
11:23:36
а если ReplicatedCollapsingMergeTree, то sign третьим параметром передается?

Alex
25.10.2018
11:23:58
да

Aleksandr
25.10.2018
11:24:25
спасибо

Yuran
25.10.2018
11:28:03
Пока никто не репортил. Интересно, можно ли как-нибудь изолировать причину?
Пока что не пробовали изолировать, но более-менее уверены в том, что именно в посылке некорректных запросов (с несуществующей фунцией) заключается проблема, потому что на других хостах с той же версией таких проблем мы не наблюдали :).



Wolf
25.10.2018
11:29:51
это у вас проблемы с зк , обычно бывает когда перевыбор лидера происходит

Google
Aleksey
25.10.2018
11:30:41
Wolf
25.10.2018
11:31:00
а где у вас зк стоит ?

Aleksey
25.10.2018
11:31:00
За сегодня уже 7 раз были и именно в эти моменты

Mike
25.10.2018
11:33:11
к вопросу про ЗК, 3.4.5 есть смысл на что-то более свежее обновить? претензий к его работе нет, но всеже

Aleksey
25.10.2018
11:41:56
а где у вас зк стоит ?
Три отдельный сервачка

Wolf
25.10.2018
11:43:45
Три отдельный сервачка
Посмотрите системные логи и логи зк , думаю как то связано все таки что они теряют сеть или лидера

Mike
25.10.2018
11:44:20
Нет проблем нет смысла
спасибо, услышал вас

Yuran
25.10.2018
12:00:22
Но диски на ClickHouse сервере очень сильно нагружены



Wolf
25.10.2018
12:00:52
Ну смотрите системные логи

Yuran
25.10.2018
12:00:55
ещё один момент — мы используем mdraid + xfs, если то вдруг влияет

Ну смотрите системные логи
а конкретнее, какие?

Wolf
25.10.2018
12:01:20
Ну основной системный он один ну ещё может дмесг

Yuran
25.10.2018
12:01:32
понятно

кто-нибудь может сталкивался все-таки :)?

Wolf
25.10.2018
12:02:08
А зачем xfs когда все очень хорошо работает на ext4?

Yuran
25.10.2018
12:03:31
А зачем xfs когда все очень хорошо работает на ext4?
потому что используем xfs по умолчанию на всех серверах ?

но если вдруг окажется, что по каким-то причинам проблемы именно из-за xfs, то готовы рассмотреть вариант и с ext4

Google
Wolf
25.10.2018
12:04:15
А сервер у вас так и должен быть загружен чтением ?

Yuran
25.10.2018
12:04:16
очень сомневаюсь, что дело в ФС

Aleksey
25.10.2018
12:04:42
Алексей
25.10.2018
12:04:50
Работает ли ALTER TABLE DELETE с подзапросом? ALTER TABLE table_1 DELETE WHERE col_1 in (SELECT col_1 FROM table_1 WHERE col_2 = x AND col_3 = y )

У меня создалась мутация, но зависла.

Yuran
25.10.2018
12:05:31
SELECT из той же таблицы?

Алексей
25.10.2018
12:05:42
да

Wolf
25.10.2018
12:05:52
Ну удаляйте руками теперь ее

Yuran
25.10.2018
12:06:03
(но я не знаю ответа на вопрос, просто это вполне вероятно может быть причиной :))

Wolf
25.10.2018
12:08:19
это большие мержи
А какая скорость? В мегабайт секундах?

Работает ли ALTER TABLE DELETE с подзапросом? ALTER TABLE table_1 DELETE WHERE col_1 in (SELECT col_1 FROM table_1 WHERE col_2 = x AND col_3 = y )
Мне кажется у вас там получится ересь , почитайте как работает делете он же не атомарно идёт

Алексей
25.10.2018
12:12:59
Мне кажется у вас там получится ересь , почитайте как работает делете он же не атомарно идёт
Я так понимаю причина в том что он не кеширует подзапрос? И не понимает что именно удалять? Он принял мутацию command DELETE WHERE col_1 IN ((SELECT history_id FROM table_1 WHERE col_2 = 100) AS _subquery1)

Wolf
25.10.2018
12:14:07
Ну если синтаксис правильный то конечно принял, это же не значит что будет делать

Wolf
25.10.2018
12:15:11
Нормально поведение, это же не обычный делаете

Wolf
25.10.2018
12:15:32
Особенности можно посмотреть в презентации функционала на сайте Яндекс евентс

Yuran
25.10.2018
12:15:50
я бы дождался ответа от разработчиков ?

Google
Wolf
25.10.2018
12:16:15
Ясно. Но это похоже на баг.
Вы вообще не читали как оно работает видимо

Алексей
25.10.2018
12:19:58
Вы вообще не читали как оно работает видимо
Я понимаю, что применяется к каждой партиции, по очереди. Но вопрос в том что он принял запрос и не выполнил его. У меня к этому вопросы. Ведь можно добавить признак состояния fail, кроме is_done, Тк не ясно - возможно она принята и выполняется, потребляет ресурс, но не заканчивается. А правильность синтаксиса - это вообще не аргумент.

Wolf
25.10.2018
12:20:36
Не должен, это все подробно описано в презентации

Ну и там сложно понять фейл оно или не фейл

Yuran
25.10.2018
12:21:14
Я понимаю, что применяется к каждой партиции, по очереди. Но вопрос в том что он принял запрос и не выполнил его. У меня к этому вопросы. Ведь можно добавить признак состояния fail, кроме is_done, Тк не ясно - возможно она принята и выполняется, потребляет ресурс, но не заканчивается. А правильность синтаксиса - это вообще не аргумент.
Не слушайте этого молодого человека :). Все знают, как это работает, вопрос лишь в том, почему ошибки не выдаются или почему они не ясны. Если запрос ошибочный и точно не может быть выполнен, должна выдаваться ошибка сразу, а не потом.

Yuran
25.10.2018
12:24:14
Ну реально нельзя выдавать желаемое за действительное.
Ну может и нельзя, однако всё же стоит стремиться к тому, чтобы те вещи, которые можно проверить перед выполнением альтера, собственно проверить. И если известно, что нельзя сделать DELETE с SELECT на ту же таблицу, это должно анализироваться перед выполнением операции и выдаваться ошибка. Это очень сильно экономит время при отладке проблем.

Алексей
25.10.2018
12:24:36
А какая версия у вас?
Я могу посмотреть это в самой СУБД? Я работаю через докер и не знаю с какой версией у меня сборка

Alex
25.10.2018
12:24:47
SELECT version()

Алексей
25.10.2018
12:25:11
Alex
25.10.2018
12:26:53
Да, при работе с подзапросами в мутациях был баг - попробуйте как минимум 18.12.17

Сейчас работает, правда неэффективно - подзапрос выполняется на каждый изменяемый кусок.

Алексей
25.10.2018
12:28:19
Ну а как проверить то? Вот ты туда засунули в селект вечный запрос, как узнать что он вечный не исполнив его?
Я могу без подзапроса перечислить записи какие необходимо удалить, но мне удобнее было использовать подзапрос. Я локально не имею 1000М записей, у меня 2М - тут нет вечного запроса.

Wolf
25.10.2018
12:29:29
Я могу без подзапроса перечислить записи какие необходимо удалить, но мне удобнее было использовать подзапрос. Я локально не имею 1000М записей, у меня 2М - тут нет вечного запроса.
Ну написать какой нибудь вечный же запрос не проблема как кх может узнать вечный он или нет, синтаксис будет ок, поэтому кх может проверить только синтаксис, ну в лучшем случае таймаут

Google
Wolf
25.10.2018
12:31:13
Ну это очень странно было бы, если бы база выполняла запрос перед другим запросом

Yuran
25.10.2018
12:31:16
Единственный момент, где я могу себе представить, чтобы был именно вечный запрос — это если делается UPDATE и делается SELECT по уже заапдейченым строкам

Но даже в этом случае, поскольку обновляются блоки только один раз, UPDATE всё равно выполнится, хоть и будет долго идти (вероятно)

Wolf
25.10.2018
12:31:55
Ну вот видите не особо напрягаясь вы придумали вечный запрос

Alex
25.10.2018
12:33:02
Вы оба правы :) Стопроцентной защиты валидация не даст, но это не значит, что её не надо улучшать.

Kirill
25.10.2018
12:55:13
Каждый раз ровно при исчерпании cached?
На багу похоже, по идее он должен отдавать что сессия заэкспайрилась когда она действительно заэкспайрилась и так ответил ЗК, а не потому что был какой-то подземный стук и мержи кэш повымывали. Надо покопаться или @ztlpn можно поспрашивать.

Просто у нас все еще :) select version() SELECT version() ┌─version()─┐ │ 1.1.54343 │ └───────────┘ И оно работает как надо, только фич новых сильно не хватает )

Alex
25.10.2018
13:06:36
Пока что не пробовали изолировать, но более-менее уверены в том, что именно в посылке некорректных запросов (с несуществующей фунцией) заключается проблема, потому что на других хостах с той же версией таких проблем мы не наблюдали :).
А можете пример такого запроса показать? Пытаюсь повторить примерно так: seq 0 999999 | parallel -j10 'clickhouse-client --query "SELECT nonexistent{}();"' 2>/dev/null, память значимо не растёт. То есть, нужно что-то посложнее.

Алексей
25.10.2018
13:14:32
Да, при работе с подзапросами в мутациях был баг - попробуйте как минимум 18.12.17
Перешел на 18.12.17. Но очередь мутаций на таблице зависла. Если создать новую то она становиться следующей и ждет другие. Можно ли как-то сбросить зависшие мутации?

Alex
25.10.2018
13:29:13
Всем привет! Я тут тулу для бэкапа кликхауса написал. Буду раз если найдутся желающие потестить и issue завести https://github.com/AlexAkulov/clickhouse-backup

Alex
25.10.2018
13:29:50
MergeTree
тогда выполняйте DETACH TABLE <table>, удаляйте плохую мутацию с диска (в data-директории таблицы) и делайте ATTACH TABLE <table>

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