@clickhouse_ru

Страница 585 из 723
Tima
11.07.2018
15:58:12
Я уже удалил парт, завтра перезалью и посмотрим что будет

Evgeny
11.07.2018
16:52:27
Можно ли применить bitOr в качестве агрегатной функции к столбцу? Или к массиву?

Konstantin
11.07.2018
17:27:10
“это фича, не баг” - есть реплицируемая таблица, есть партиции, две реплики, если на одной из реплик сделать alter table … detach partition … запрос реплицируется без проблем, далее alter table … attach partition … - локально отработаеть норм, а на соседней реплике данных так и не будет. Оказывается подобные запросы надо делать на лидере. Вопрос в том, почему detach/attach работают так не предсказуемо (хоть бы ошибку показал)? ?

ой, если потом на лидере выполнить alter table … attach partition … данные будут реплицировать по новой и на соседней будет задваиваение данных ? это ж так круто!

Google
Konstantin
11.07.2018
17:41:04
version 1.1.54390

Wolf
11.07.2018
17:43:27
Ну вроде все логично, кх не может знать есть у вас в детаче на реплике данные или нет

Konstantin
11.07.2018
17:49:01
я потому и написал “это фича, не баг”. это такие тонкости КХ о которых надо знать, ибо будет очень весело это потом это исправлять..

Wolf
11.07.2018
17:50:28
Ну в этом плане они пока что логичные

Konstantin
11.07.2018
17:52:40
с другой стороны так можно данные легко попортить. в доке об это сказано не очевидно. ИМХО запретить делать диттач не на лидере

Wolf
11.07.2018
17:54:15
А какая разница где сделать детач?

Konstantin
11.07.2018
17:55:52
чтоб понимать где потом делать аттач ? ну или в документации описать внятно

Wolf
11.07.2018
17:57:02
А какая разница где сделать аттач?

Атач разве реплицируется как команда?

Konstantin
11.07.2018
17:58:37
я выше описал к чему это может привести

реплицируется если сделать на лидере, дитач можно делать где угодно

Wolf
11.07.2018
17:59:58
Ну я не понял как это может привести к задваиванию данных, а если реплицируется то по идее задваивания данных быть не должно

Кх просто увидит что парты такие уже есть и не будет реплицировать

Google
Konstantin
11.07.2018
18:01:30
в тестовой среде у меня выходит на одной реплике 2k зписей, на другой 1k, ранее везде было 1000

я думаю разработчики могут прояснить проблему и почему это работает так как работает.

я конечно могу замарочится написанием скрипта эмуляции поведения, но только если разработчики скажу “что то тут не то и это баг” ?

В доке есть такое ALTER TABLE [db.]table DETACH PARTITION 'name' … The query is replicated – data will be moved to the 'detached' directory and forgotten on all replicas. The query can only be sent to a leader replica. To find out if a replica is a leader, perform SELECT to the 'system.replicas' system table. Alternatively, it is easier to make a query on all replicas, and all except one will throw an exception. Но исключения нет ни в каком случае ? похоже таки на баг

Wolf
11.07.2018
18:28:56
Ну с детачем понятно

Проблема же не в нем

А в аттаче

Kirill
11.07.2018
20:16:05
Таких записей в логе много, и судя по всему из-за этого у меня мутация зависает примерно посередине. Вот и хочу разобраться как делать INSERT INTO чтобы таких больших блоков не появлялось
А они в любом случае появлятся будут, тут можно смотреть либо в сторону увеличения max_bytes_to_merge_at_min_space_in_pool либо уменьшения количества тредов для мержа. По сути это нормально что он откладывает мержи и ждет появления ресурсов. Насчет мутации не совсем понял, почему она должна зависить от insert'a?

достаточно ведь лочить мерджи, а не запись в таблицу. тогда можно будет точно знать, из каких партов осталось докинуть данные
так себе идея, можно на время отсановить запись и запустить insert into select и включить запись )

Kirill
11.07.2018
20:22:38
А вот и я не знаю почему мутация не проходит, если делать её по таблице, заполненой через INSERT INTO
Если есть пример для воспроизведения то, я думаю, @ztlpn с удовольствием посмотрит )

Artem
12.07.2018
03:23:10
Коллеги, привет. Есть около 1,5ТБ данных, запись и чтение каждую секунду, но небольшими партиями. Какие будут требования по железу? Понятно, что никаких HDD, только SSD. Два CPU, вопрос по объему RAM, читал что CH очень любит память.

И второй вопрос, по поводу репликации мастер-мастер, насколько повышенные требования к каналу между ДЦ?

LeiDruid
12.07.2018
03:34:08
Коллеги, привет. Есть около 1,5ТБ данных, запись и чтение каждую секунду, но небольшими партиями. Какие будут требования по железу? Понятно, что никаких HDD, только SSD. Два CPU, вопрос по объему RAM, читал что CH очень любит память.
Это полностью зависит от вас. Для самого КХ памяти нужно немного. Остальное - память для запросов. Или должно целиком влазить или применять до определенной степени хитрости. С телефона неудобно подсказать, но поищите здесь по сообщениям что-то вроде query limit, будет ссылка на презентацию.

Wolf
12.07.2018
04:10:38
И второй вопрос, по поводу репликации мастер-мастер, насколько повышенные требования к каналу между ДЦ?
У кх только один тип репликации, канал не важен, что не подтянулось сейчас, подтянется потом.

По памяти у нас кстати ноды кх по шесть гигов памяти или по семь

Michal
12.07.2018
05:18:44
А я поддерживаю официальные рекомендации clickhouse.yandex/docs/ru/operations/tips/ Памяти - чем больше, тем лучше. Идеально - если объем данных который необходим для большинства запросов будет помещаться в памяти. Т.е. если у вас 1.5 Тб данных, к примеру за год, а большая часть запросов запрашивают последний месяц и только половину колонок, то хорошо бы было если б у вас было получено крайней мере 1.5тб/12/2 примерно 64 Гб, больше - лучше. Если памяти достаточное количество, то количество обращений к диску минимально, и быстрый диск становится менее важен.

Google
Андрей
12.07.2018
07:26:03
Доброе утро, в документации CH есть описание конфиг-файла ZK zoo.cfg, но там не прописаны ноды: #server.1=xxx.xxx.xxx.xxx:2888:3888 #server.2=xxx.xxx.xxx.xxx:2888:3888 Если их не указывать, ZK запускается в режиме standalone. Соответственно где прописывать ноды? Только в конфиге CH?

Stanislav
12.07.2018
07:27:17
можно положить отдельным файликом в config.d

А, пардон, вы про сам zookeeper

Если нужен кластер - таки надо прописать все ноды в каждом конфиге зукипера

Что-то типа такого: server.1=192.168.110.101:2888:3888 server.2=192.168.110.102:2888:3888 server.3=192.168.110.103:2888:3888

Андрей
12.07.2018
07:29:48
Если нужен кластер - таки надо прописать все ноды в каждом конфиге зукипера
Спасибо, проблема в том, что при указании серверов кластера ZK, zk-сервер не стартует...

Stanislav
12.07.2018
07:30:14
А они друг для друга доступны вообще?

Андрей
12.07.2018
07:30:57
Только 2 из трех, без кворума не стартанет вообще?

Stanislav
12.07.2018
07:31:26
Ну а накой кластер без кворума?

Андрей
12.07.2018
07:32:05
спасибо, сейчас проделаю все тоже самое с кворумом

Stanislav
12.07.2018
07:35:10
кстати, у зукиперов должны быть разные id, иначе таки да, друг друга не признают

Yury
12.07.2018
07:36:56
И 3 для зукипера мало, лучше 5 хотя бы

Stanislav
12.07.2018
07:37:19
А с чем связано количество?

Wolf
12.07.2018
07:38:28
ну с тем что из трех может отвалиться один а из пяти два могут отвалиться и система будет работать , если в кз нет кворума или он упал полностью блокируется записть в кх

Stanislav
12.07.2018
07:39:09
А... Я почему-то про быстродействие подумал.

LeiDruid
12.07.2018
07:40:36
А... Я почему-то про быстродействие подумал.
Быстродействие, наоборот, уменьшается Но что вам это абстрактное быстродействие? Главное, на сервера с КХ не кладите зукипер

Хотя да, соблазн положить рядом велик :)

Андрей
12.07.2018
07:43:56
Быстродействие, наоборот, уменьшается Но что вам это абстрактное быстродействие? Главное, на сервера с КХ не кладите зукипер
А можно поподробнее? Собственно так и хотели сделать, на серваках с CH развернули ZK. А как у вас реализовано?

LeiDruid
12.07.2018
07:44:11
ZK отдельно

Суть в том, что CH ест все доступные ресурсы. Если ZK не будет хватать ресурсов, он будет тупить, за ним сразу будет тупить CH. Это на графиках у нас выражалось в пиках снижения произвдительности/недоступности

Google
LeiDruid
12.07.2018
07:46:21
ну или зажмет по памяти и его убьет оомкиллер что полностью парализует кластер
Ну это вариант, скорее, из невероятных. Из опыта, быстрее упадет CH, если не тюнить OOM score

Андрей
12.07.2018
07:46:23
ZK отдельно
Т.е. если у меня 6 нод с CH разворачию столько же под ZK?

Wolf
12.07.2018
07:46:33
нет

кх отдельно зк отдельно

LeiDruid
12.07.2018
07:46:44
Под ZK есть смысл разворачивать нечетное кол-во нод

5 или 7

Wolf
12.07.2018
07:46:47
зк должно быть не четное количество

или 3

или 9

LeiDruid
12.07.2018
07:46:58
Можно и чётное, но смысла нет

Т.к. кворум = N/2+1

Wolf
12.07.2018
07:47:10
ну при четном будут проблемы с кворумом

LeiDruid
12.07.2018
07:47:48
нет, не будет, он себя будет вести так, так будто у него N-1 нод

Андрей
12.07.2018
07:49:27
Ок, тогда еще вопрос, сколько нужно ресурсов под ноды ZK? Хотя бы примерно.

Wolf
12.07.2018
07:49:38
ну у меня крутится на одном гиге оперативы и одном ядре

но и данных в кх у меня немного

сам зк потребляет чуть меньше 200 мб

данных всего поллтора тб

ну и ложу я их правильно пачками и редко

Google
Stanislav
12.07.2018
07:51:58
У меня - итого полгига памяти занято на любом узле зукипера + база в 4.6Гб, но я уменьшил количесво логов и интервал сброса. По диску точно не стоит ужиматься хотя бы на первое время.

В самом зукипере сейчас порядка 130к записей

Андрей
12.07.2018
07:59:16
Спасибо, т.е. я сейчас делаю 5 нод под ZK, прописываю их в config.xml в CH и zoo.cfg на всех нодах ZK,а после этого просто создаю Replicated* таблицы в КХ? Ничего не упустил из виду? На нодах с CH ведь все равно нужны клиенты ZK?

Wolf
12.07.2018
07:59:58
не нужны клиенты зк

кх умеет сам в них ходить

Андрей
12.07.2018
08:00:42
Wolf
12.07.2018
09:43:25
а ни у кого не умирал полностью зукипер?, что делать если пришлось его поднять с нуля ? какой лучше сценарий применить для востановления ?

Stanislav
12.07.2018
09:49:27
восстановить одну ноду из последнего работающего бекапа, у остальных прибить базу.

Потом долго и нудно делать attach на сброшенные партиции...

Timur
12.07.2018
09:54:15
Можно подробнее? Я всегда думал что zk нужен Только для репликации, те упал зукипер, нет репликации... И все. Зачем прибивать данные и делать аттач?

Wolf
12.07.2018
09:54:35
прибивать данные надо в зк

Timur
12.07.2018
09:54:43
А

Wolf
12.07.2018
09:54:46
чтобы не было конфиликта данных

Timur
12.07.2018
09:54:46
Ноду

А можно прибить ноду рутовую

Оно пересоздать?

Пересоздаст?

Wolf
12.07.2018
09:55:29
что такое рутовая нода ?

Stanislav
12.07.2018
09:55:35
речь про фс или про содержимое зк?

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