@clickhouse_ru

Страница 674 из 723
Vadim
25.09.2018
16:55:08
Значит в какой-то момент их было нечетное число.

четверо не будут работать?

Denis
25.09.2018
16:55:46
у zk не может быть сплитбрейна

Vadim
25.09.2018
16:55:53
у каждого свой ИД, и конфиг сосписком из 5 нод

Google
Wolf
25.09.2018
16:56:36
у zk не может быть сплитбрейна
Ахахаха ну расскажите мне как этого не может быть когда у меня был сплит Брейн у ЗК ))

Vadim
25.09.2018
16:57:36
может, если будет 2 кластера из 5 нод(3 в старом и 2 в новом)

и я вижу, что кластер из 4х нод ЗК работал вполне успешно

Denis
25.09.2018
17:06:14
Wolf
25.09.2018
17:06:57
ну при добавлении нод это сделать не так уж сложно , понятное дело что в статик конфиге у него таких вариаций не особо есть

Kirill
25.09.2018
17:34:27
четверо не будут работать?
Будут, но это только замедлит работу. Что при 3-х что при 4-х ЗК будет считать что может работать при 2-х живых нодах

Kirill
25.09.2018
17:39:31
В любом случае нет смысла в 4-з

Denis
25.09.2018
17:40:03
при четырех надо будет три живых все таки
кворум нужен для голосования, если лидер уже есть то будет работать те две ноды где был лидер , а нет, им кворум нужен постоянно, для каждой транзакции.

Max
25.09.2018
17:43:59
Всем привет! Товарищи, а ALTER DETACH вдруг в каких-то последних релизах не стал реплицируемым?

А то мы тут апдейтнулись и у нас DETACH как-то странно начал сообщать с ошибкой доступа к реплике, хотя казалось бы откуда он про нее знал бы.

Wolf
25.09.2018
17:48:22
детач всегда вроде был реплицируемым

Google
Max
25.09.2018
17:49:58
> CREATE, DROP, ATTACH, DETACH and RENAME queries are executed on a single server and are not replicated:

https://clickhouse.yandex/docs/en/operations/table_engines/replication/

нет

Wolf
25.09.2018
17:52:02
не могу сослаться на документацию ,но аттач иди детач на одной из реплик всегда приводили к дублированию на остальных репликах

Max
25.09.2018
17:57:13
да, беда в том, что детач работает только на лидере, посыпаю голову пеплом

и он таки реплецирется. документация боль

Alexey
25.09.2018
18:34:25
Еще вопрос по словарям: словарь на миллион строк (каждая по 1 кб) - это нормально будет работать?

Александр
25.09.2018
18:41:25
Alexey
25.09.2018
18:41:58
Denis
25.09.2018
19:03:26
словари из-за своего внутреннего устройства кушают очень много памяти, я бы проверил сначала, а то окажется что 100500 ГБ надо, и чем больше колонок тем хуже * кол-во колонок https://github.com/yandex/ClickHouse/issues/2738

Denis
25.09.2018
19:15:13
не пытайтесь сделать complex hash tuple(UInt32) , делайте просто хеш (там UInt64), сэкономите по памяти.

Alexey
25.09.2018
19:39:48
@milovidov_an какой у вас размер ZK snaptshot, и средняя latency? Видете ли вы часто такие ошибки? fsync-ing the write ahead log in SyncThread:3 took 8773ms which will adversely effect operation latency. See the ZooKeeper troubleshooting guide
Да, у нас полно таких сообщений. Доходит до 56 сек. И это действительно приводит к проблемам (operation timeout, потом session expired в течение нескольких секунд, потом сессия восстанавливается).

Alexandr
25.09.2018
19:45:56
а как боретесь с этой проблемой? насколько я понял session timeout/connection timeout приводит к тому чтобы выйти из потоков выполнения запросов, мерджей и репликаций на всех узлах? или немного не так?

Renat
25.09.2018
19:47:28
select 1 where [1, 2, 3] in (1) Received exception from server (version 18.12.17): Code: 53. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Type mismatch in IN or VALUES section. Expected: Array(UInt8). Got: UInt64. мне кажется или подобное работало в прошлых версиях?

Tatiana
25.09.2018
19:48:03
> CREATE, DROP, ATTACH, DETACH and RENAME queries are executed on a single server and are not replicated:
это не про ALTER это CREATE table, DROP table, ATTACH table, DETACH table, RENAME table, и они не реплицируются

Alexey
25.09.2018
19:58:48
-rw-r--r-- 1 zookeeper zookeeper 12842886606 сент. 25 20:34 snapshot.1fc176e33dc -rw-r--r-- 1 zookeeper zookeeper 12760562728 сент. 25 20:49 snapshot.1fc1794424b -rw-r--r-- 1 zookeeper zookeeper 12793824568 сент. 25 21:05 snapshot.1fc17c08e33 -rw-r--r-- 1 zookeeper zookeeper 13027591876 сент. 25 21:17 snapshot.1fc17df65b3 -rw-r--r-- 1 zookeeper zookeeper 13025550056 сент. 25 21:29 snapshot.1fc18005e6a -rw-r--r-- 1 zookeeper zookeeper 12940927972 сент. 25 21:45 snapshot.1fc182c1969 -rw-r--r-- 1 zookeeper zookeeper 12572519779 сент. 25 21:53 snapshot.1fc184384af -rw-r--r-- 1 zookeeper zookeeper 12872448244 сент. 25 22:09 snapshot.1fc186ee6fb -rw-r--r-- 1 zookeeper zookeeper 12749795736 сент. 25 22:19 snapshot.1fc1889f829 -rw-r--r-- 1 zookeeper zookeeper 12820889937 сент. 25 22:35 snapshot.1fc18b66faa -rw-r--r-- 1 zookeeper zookeeper 12664672285 сент. 25 22:45 snapshot.1fc18d08ab1 -rw-r--r-- 1 zookeeper zookeeper 13024532335 сент. 25 22:58 snapshot.1fc18f4ca23

Посмотрели, что возрастания latency происходят, в основном, во время purge в ZK.

Google
Alexey
26.09.2018
04:02:32
Добрый день, пара вопросов назрела: 1) обычно при создании каунтеров делают аггрегированные интервалы (например, по дню). В моем случае без агрегации счетчики за несколько месяцев считаются быстро в КХ, а вот за год начинают притормаживать из-за количества евентов. Стоит ли делать агрегированние, скажем, по месяцам или есть другой способ? 2) у меня предполагается словарь на 100 мб чистых данных (не знаю пока во сколько КХ развернет это), но обновление элементов в нем может происходить до раза в несколько секунд. Имеет ли смысл его порезать на 10 или 100 словарей и обновлять только то, что нужно? Это вообще нормальный подход?

Michal
26.09.2018
06:43:25
Добрый день, пара вопросов назрела: 1) обычно при создании каунтеров делают аггрегированные интервалы (например, по дню). В моем случае без агрегации счетчики за несколько месяцев считаются быстро в КХ, а вот за год начинают притормаживать из-за количества евентов. Стоит ли делать агрегированние, скажем, по месяцам или есть другой способ? 2) у меня предполагается словарь на 100 мб чистых данных (не знаю пока во сколько КХ развернет это), но обновление элементов в нем может происходить до раза в несколько секунд. Имеет ли смысл его порезать на 10 или 100 словарей и обновлять только то, что нужно? Это вообще нормальный подход?
Если событий много, а нужно их анализировать за широкий диапазон дат - то да, предварительная агрегация имеет смысл. В кликхаус это очень удобно делать с помощью Materialized View в таблицу с движком AggregatingMergeTree. Тогда всякие "неудобные" в агрегации метрики (типа количества уникальных пользователей) можно корректно суммировать.

Tima
26.09.2018
08:38:46
Vadim
26.09.2018
09:05:02
А могу я для борьбы с бесконечно мерджащимся блоком просто удалить блоки на сбойной ноде, она подтянет отсутствующие с реплик ?

что происходит, когда одна из нод КХ стартует и не находит данных в ФС ?

Evgeny
26.09.2018
09:07:40
что происходит, когда одна из нод КХ стартует и не находит данных в ФС ?
смотря каких данных. Если вообще ничего - создаст

Vadim
26.09.2018
09:08:44
смотря каких данных. Если вообще ничего - создаст
А если только 3-4 блоков, которые он пытается смерджить уже сутки, каждые 3 минуты сбрасывая результаты ?

или если результирующий блок скопирую с донора, он перестанет его мерджить или задачи мерджа неубиваемые?

Или лучше удалить результирующий блок на доноре, что бы все перемерджиил снова ?

Кто знает?

Slava
26.09.2018
09:58:26
всем, привет. Скажите, пожалуйста, есть ли какое-либо решение для версионирования ddl. clickhouse?

Kirill
26.09.2018
10:00:38
всем, привет. Скажите, пожалуйста, есть ли какое-либо решение для версионирования ddl. clickhouse?
https://github.com/golang-migrate/migrate Мы просто ручками в файлики пишем, не так часто это нужно

Alex
26.09.2018
11:06:04
Расскажите чем отличаются активные и неактивные партиции. Мне фризить только активные надо? А бэкапить нужно тоже только активные или все?

Wolf
26.09.2018
11:10:25
мне кажется вопрос бекапить только активные или нет не имеет смысла, бекапить нужно те которые вам нужны

Alex
26.09.2018
11:13:21
Хоту забэкапить всю таблицу, в таблице есть активные и неактивные партиции. Как быть? Что вообще обзначают активные и неактивные?

Это те которые изменяться больше не будут или те которые уже совсем ненужны и их удалить можно?

Wolf
26.09.2018
11:14:08
бекапить надо все )

Google
Roman
26.09.2018
11:14:32
в результате слияний нескольких кусков образуются новые куски. старые помечаются неактивными и удаляются через 8 минут

Wolf
26.09.2018
11:14:33
все не нужное кх удаляет сам

Konstantin
26.09.2018
11:14:51
18.12.4 получаю ошибку Code: 171. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Block structure mismatch in UNION stream: different names of columns: когда в WHERE 2 условия, каждое из условий по отдельности отрабавтывают нормально, что делать?)

Alex
26.09.2018
11:15:18
бекапить надо все )
А фризить тоже все?

Wolf
26.09.2018
11:15:29
А фризить тоже все?
ну там же парты актив не актив , а не партишены

Wolf
26.09.2018
11:15:50
насколько помню парты вроде фризить нельзя или уже стало можно ?

Alex
26.09.2018
11:16:16
ок, спс

Konstantin
26.09.2018
11:17:29
покажите запрос и таблицу
SELECT * FROM table AS o WHERE (column = '1') AND (column2 = '2') LIMIT 300 что интересно без лимита запрос выполняется оО

если в SELECT появляются столбцы отличные от используемых в WHERE при указанном LIMIT то запрос не выполняется

Так работает: SELECT column1, column2, id FROM table WHERE (column1 = '1') AND (column2 = '1') и так работает: SELECT column1, column2 FROM table WHERE (column1 = '1') AND (column2 = '1') LIMIT 1 а так не работает: SELECT column1, column2, id FROM table WHERE (column1 = '1') AND (column2 = '1') LIMIT 1 Received exception from server (version 18.12.14): Code: 171. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Block structure mismatch in UNION stream: different names of columns: id UInt32 UInt32(size = 0), column1 String String(size = 0), column2 String String(size = 0) column1 String String(size = 0), id UInt32 UInt32(size = 0), column2 String String(size = 0).

Roman
26.09.2018
11:29:53
а у вас поведение зависит от LIMIT?
нет, но валится только запрос к Distributed таблице. точно такой же запрос на каждом инстансе кластера к нижележащей Replicated таблице проходит

Konstantin
26.09.2018
11:30:19
у меня тоже дистриб таблица, но поведение зависит от limit или top

Артем
26.09.2018
11:55:50
Добрый день, какое поведение у КХ когда идет выполение одного большого запроса и нескольких более простых, но все из одной таблицы. У меня при выполение команды show processlist висят все запросы, но выполняется только один большой



Артем
26.09.2018
12:02:36
@milovidov_an спасибо, была такая мысль

@milovidov_an есть ли какое то решение по репликации таблицы в контексте одного сервера ? или какое то решение которое поможет избежать блокировок при алтере

Google
Michal
26.09.2018
12:31:51
@milovidov_an есть ли какое то решение по репликации таблицы в контексте одного сервера ? или какое то решение которое поможет избежать блокировок при алтере
Вряд ли есть какой-то "технический" способ избежать этого в общем случае - например представьте что работающий селект использует столбец который будет переименован альтером, а ждущие в очереди селекты уже используют новое название столбца. Но есть масса обходных путей. Если место позволяет - можно скопировать таблицу перед альтером, выполнить альтер на копии а потом выполнить двойной RENAME заменив таблицы местами. Можно запускать альтеры предварительно убедившись что нет висящих селектов / по ночам / уводя сервер в дайнтайм / предварительно убивая висящие селекты.

Артем
26.09.2018
12:43:16
Вряд ли есть какой-то "технический" способ избежать этого в общем случае - например представьте что работающий селект использует столбец который будет переименован альтером, а ждущие в очереди селекты уже используют новое название столбца. Но есть масса обходных путей. Если место позволяет - можно скопировать таблицу перед альтером, выполнить альтер на копии а потом выполнить двойной RENAME заменив таблицы местами. Можно запускать альтеры предварительно убедившись что нет висящих селектов / по ночам / уводя сервер в дайнтайм / предварительно убивая висящие селекты.
а при репликации будет возникаться блокировка, для примера такой кейс, на слейве выполянется долгий запрос, в этой время на местер прилетает ALTER , слейв начнет синкать МАСТЕРА и получать изменения, после этого при на слейв прилетят еще запросы, будут ли они заблокорованны АЛТЕРОМ который прилетел с мастера ?

Артем
26.09.2018
12:51:24
Скорее всего ваш альтер заблокирован мержем, детач достаточно быстрая операция
не совсем, АЛТЕР выполняется быстро, но SELECT перед ним выполнятся долго, поэтому и блокировка

Игорь
26.09.2018
12:55:33
Подскажите, а в kafka engine можно указать номер партиции из которой забирать данные?

Kirill
26.09.2018
12:57:28
не совсем, АЛТЕР выполняется быстро, но SELECT перед ним выполнятся долго, поэтому и блокировка
Понятно, у нас операции с тяжелыми запросами и обслуживанием просто упорядочены )

Артем
26.09.2018
12:59:53
Понятно, у нас операции с тяжелыми запросами и обслуживанием просто упорядочены )
упорядоченны звучит хорошо, можете раскрыть ее подробнее, используете репликацию или может еще как ?

Kirill
26.09.2018
13:01:28
упорядоченны звучит хорошо, можете раскрыть ее подробнее, используете репликацию или может еще как ?
Прям кусок кода скину ) func New() *worker { logger := log.WithField("service", "bender-worker") return &worker{ logger: logger, tasks: []Task{ task.Reports(logger), task.ClearColumns(logger), task.DropPartitions(logger), }, } }

Задачи выполняются последовательно

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