
Vladimir
01.08.2018
16:04:00
Вылез нюанс что если писать асинхронно и стопануть одну из 2 реплик то перестает мержить
В свою очередь после Х немержей шард перестает отвечать и кластер полудоступен
Хотя вроде как потеря реплики не должна к такому приводить.
Ок, сделали синхронную запись, опять 25, при остановке реплики вылезли дубликаты (видимо не только нет атомарности между таблицей и вьюхой но и между репликами)
Мы готовы к потерям данных или даже к дубликатам если полкластера легло, но при потере одной двух нод как то не расчитывали что пичаль настигнет

Google

Vladimir
01.08.2018
16:12:06
insert_quorum придется вернуть в 0
от вьюх отказались, будем сами писаль в несколько таблиц.
ЗЫ я не жалуюсь, я делюсь. Продукт оч быстрый, но есть нюансы при использовании как и везде. Просто эти дубликаты выглядят как серьезная проблема для серьезного использования

Denis
01.08.2018
16:16:16

Tatiana
01.08.2018
16:18:39
а я не понимаю, что у вас за ошибки при инсертах, из-за которых вы батчи повторяете?

Denis
01.08.2018
16:18:47
>Да, а как иначе если батч не прошел?
>Replaced движок это борьба с последствиями
>Одна причина это вьюхи, от них со скрипом отказались и
>выкручиваемся без них
все это очень странно, у меня миллиард строк в день, все обвешено вьюхами, проблемы бывают ну раз в году может и то обычно я сам виноват.

Vladimir
01.08.2018
16:19:09
ноду стопали?

Denis
01.08.2018
16:19:55
постоянно и падают и стопаю, я правда не пользуюсь записью через distributed

Vladimir
01.08.2018
16:19:57
У меня тоже все работало
А как начал тустировать что будет если вдруг нода выпадет так ой
Спрашивайте если что нужно дополнительно

Denis
01.08.2018
16:23:27
так а что с:
но вы понимаете, что дубликаты replacing может схлопнуть в отдаленном будущем а может и нет, т.е. надо писать запросы правильно к такой таблице чтобы дубликаты скрывать?

Vladimir
01.08.2018
16:24:37
Так я ответил что этот движок использовать не будем

Tatiana
01.08.2018
16:26:21

Google

Vladimir
01.08.2018
16:26:26
Без вьюх дубликатов нет (они есть или с вьюхами или если insest_quorum выставить в 2 например, как я написал выше причина видимо одна, неатомарность вставки со вьюхами (это подтверждено разработикми) и с репликами видимо тоже атомарности нет и в одну проходит а в другую нет)

Denis
01.08.2018
16:26:28
ну все ясно мне, я ни хера не понял.

Vladimir
01.08.2018
16:28:42
это уже последствия, а не причина
Не совсем понимаю о какой причине речь идет, я не разработчик КХ, точно указать причину мне сложно.
Или вы намекаете что стопать ноду не надо и все будет хорошо? К сожалентю в реальности они постоянно ломаються (сервера я имею в виду)
Татьяна я искренне пытаюсь подробно ответить на вашии вопросы, переформулируйте пожадуйста если я отвечаю не на то что вы задали

Tatiana
01.08.2018
16:29:55
у вас дубликаты, потому что вы вставляете по два раза
почему вы вставляете по два раза?

Vladimir
01.08.2018
16:31:41
потому что в первый раз что-то упало.
что-то упало в нашем случае например отказ на вставку из-за медленных мержей,
а они медленный в свою очередь потому как если одна реплика упала то на 2й какие-то танцы происходят
все что я при этом вижу в системных таблицах и логах я выложил в issue
давайте по пунктам напишу?

Tatiana
01.08.2018
16:32:40
и вы надеетесь, что дедупликация в КХ не допустит повторной вставки?

Vladimir
01.08.2018
16:32:50
конечно

Tatiana
01.08.2018
16:33:10
и вы вставляете второй раз теми же блоками, какими вставляли в первый?

Vladimir
01.08.2018
16:33:13
вроде как есди блоки одинаковые а они такие то не должно проходить
Алексей мой код проверил
Вроде бы не нашел явных багов
Вставляем точно тот же кусок
блок меньше настройки
и это работает но только если нет вьюх и нет синхронной репликации как выяснилось

Tatiana
01.08.2018
16:35:03
т.е. у вас блоки одинаковые, но их очень много, и вы не помещаетесь в 100 блоков, информацию о которых хранит КХ для дедупликации?

Vladimir
01.08.2018
16:35:55
Я не могу ответить на вопрос о корне проблем. Если бы я знал куда мы не помещаемся то я бы постарался это исправить
Вставок около 100 в минуту
по 40-50к строк

Google

Vladimir
01.08.2018
16:37:23
Как я понял с вьюхами проблема известная и она не в настройках и блоках

Tatiana
01.08.2018
16:37:46
вы можете посмотреть, про какие 100 блоков знает КХ, они в Зукипере лежат.
Но при 100 вставках в минуту я бы не рассчитывала на дедупликацию в КХ
проблема с вьюхами не имеет отношения к проблеме дубликатов

Vladimir
01.08.2018
16:38:31
Пример
1. Вставка в осн таблицу прошла
2. Во вьюху упала
3. Вернули исключение на клиент
4. Клиент перевставил
5. В осн прошла вставка
Бинго у нас дубликаты
Мне то что я вам выше написал объяснили разработчики
Если это не так то давайте с вами попробуем понять причину и главно ечто делать
100 можно увеличить как-то до 1000 и проверить?

Tatiana
01.08.2018
16:42:38
Вставка в таблицу и вью не атомарная, это факт, с этим надо жить.
Придумайте другой способ обработки ошибок, не вставляйте второй раз.

Vladimir
01.08.2018
16:45:09
так я ж без понятия что и куда вставилось а что и куда нет
если в исключении например будет информация что 1-Т вставилось а Т-П не вставилось и куда (в какую вью или таблицу) то я с удовольствием обработаю
а без этой информации не представляю как.
пролейте свет пожалуйста

Tatiana
01.08.2018
17:05:07

Vladimir
01.08.2018
17:05:32
идея понятно
спсб
помнит распределенная таблица или каждая локальная?

Tatiana
01.08.2018
17:06:44
помнит нода в Зукипере, т.е. таблица RepilcatedMergeTree
но если вы вставляете в Distributed, как вы можете быть уверены, что у вас блоки одинаковые?

Vladimir
01.08.2018
17:08:27
не знаю как ответить но мне пояснили что это не важно
(сейчас переделываю на вставку в локальную таблицу, как я понял вставка должна быть в одну и ту же RepilcatedMergeTree таблицу? есть разница на какую реплику? )

Tatiana
01.08.2018
17:10:13
нет, у разных реплик одной таблицы нода в Зукипере одна и та же

Google

Vladimir
01.08.2018
17:12:41
спсб

Tatiana
01.08.2018
17:13:22
Но я не могу представить, как могут получиться одинаковые блоки при вставке в Distributed таблицу, которая шардирует по rand()

Vladimir
01.08.2018
17:13:54
судя по тому что нода в ЗК одна то и шарда не важна, тоесть можно переслать на любую ноду кластера
это облегчает

Tatiana
01.08.2018
17:14:39
нода в ЗК - это первый параметр у ReplicatedMergeTree, по идее на разных шардах он разный должен быть

Vladimir
01.08.2018
17:16:27

Denis
01.08.2018
18:11:56
я не пользуюсь дедупликацией и вставкой в distibuted поэтому мне параллельно в какой шард и в какую реплику повторять вставку.
я вообще не понимаю откуда такие требования к точности в биг дата, вон дремель возращает результат с 99.7% шардов, ну и точность запроса будет 99.9%, да пофиг.
если надо 100%, храните в mysql

Sergey
01.08.2018
18:23:16
Вроде всё-таки big data не включает в себя потерю данных. Ну т.е. у меня, к примеру, ответное непонимание. Продолбать десять лямов записей? Пф, это же биг дата. :)

Vladimir
01.08.2018
18:23:36
Спсб за совет. У всех разные кейсы
Я не вижу что хочу чего-то невероятного
Просто пытаюсь разобраться
Если вы уже разобрались я искренне рад
Мне пока до конца не удалось, перебираю варианты

Denis
01.08.2018
18:37:45
КХ не гарантирует целостность данных. Там нет Durability (в терминах ACID).
Поэтому потери гарантированы самим дизайном.

Sergey
01.08.2018
18:47:11
Если эти потери прям фактически гарантированы, стоило бы на главной странице рядом с "Не тормозит" большими буквами добавить "и не сохраняет", раз уж ACID так сурово не соблюдается. Но мне пока думается, что всё менее трагично и D теряется в кейсах, которых можно избежать. Правда, их описания в доке поди найди.

Denis
01.08.2018
18:59:45
хм, а что какая-то буква из ACID соблюдается в КХ ?
кейс очень простой, делаем insert, видим OK, тут же посылаем kill -9 демону КХ, стартуем и не видим проинсерченного.

Alex
01.08.2018
19:25:41

Sergey
01.08.2018
19:29:56

Alex
01.08.2018
22:04:05
Юзает кто-нибудь Tableau Server на линуксе в связке с ClickHouse?
У меня это говнище нивкакую не заводится
Я ОРУ!

Google

GithubReleases
01.08.2018
22:21:56
yandex/ClickHouse was tagged: v18.6.0-stable
Link: https://github.com/yandex/ClickHouse/releases/tag/v18.6.0-stable
Release notes:
Auto version update to [18.6.0] [54401]

Александр
02.08.2018
06:11:40
Как же приятно видеть новый тег и сразу чейнджлог к нему!

Stanislav
02.08.2018
07:58:07
Господа, пытаюсь получить суммарную скорость чтения с дисков: http://paste.org.ru/?b8oeay
Либо я что-то не понимаю, либо runningDifference как-то странно работает.

Kirill
02.08.2018
08:03:17

Stanislav
02.08.2018
08:04:37
Хм... Так работает. Осталось сделать, чтоб ещё и для N хостов в IN сработало...

Юрий
02.08.2018
08:32:41
Привет, товарищи.
Вопрос: в каком случае КХ будет быстрее искать?
- поиск гуида в строке ( position("guid1,guid2,guid3", "guid2") )
- поиск гуида в массиве строк ( has(["guid1","guid2","guid3"], "guid2") )

Вячеслав
02.08.2018
08:33:11
Привет.
Есть 2 реплики с таблицей ReplicatedMergeTree.
Хочу выполнить удаление партиции: ALTER TABLE table ON CLUSTER cluster DROP PARTITION 'partition'.
Возвращается ошибка "Password required for user default".
Мне понятно что тот сервер, на котором я выполняю запрос не является лидером, но в конфигурации кластера я задал для каждой реплики user и password (к тому же user не называется default). В users.xml так же присутствует используемый пользователь.
Версия Clickhouse 1.1.54388.
Подскажите пожалуйста, в чем может быть проблема?

Vladimir
02.08.2018
08:36:09

Юрий
02.08.2018
08:37:25
Тяжело от гуидов уйти к сожалению, все ими пронизано.

Саша
02.08.2018
08:37:48
подскажите, а есть ли какой-нибудь аналог transform, но который в качестве правил преобразовани результаты запроса? Надо заменить несколько значений

Denis
02.08.2018
08:39:12

Alexey
02.08.2018
08:40:43

Юрий
02.08.2018
08:40:43
Второй вариант лучше.
понял.
предложенные преобразования guid -> int коснутся объема данных точно, а производительность сильно улучшит?

Denis
02.08.2018
08:42:20
я не знаю, надо проверять. преобразование-то не бесплатное будет.