Size: a a a

ClickHouse не тормозит

2021 January 21

DC

Denny Crane [not a Y... in ClickHouse не тормозит
да, я нашел pr, дописал в тикет
источник

D

Dj in ClickHouse не тормозит
Vladimir Rudev
Владимир, поделитесь пожалуйста опытом - были ли другие пробелмы кроме озвученной у вас при таком обновлении-прыжке?
У нас кластер на 19.16 и вопрос обновления стоит уже критически. Хочется прийти к 20.8-lts, но сразу через такое кол-во версий прыгать страшно, а роллить по мажору и каждый перепроверять - много чело-часов надо и вообще времени. Чейнджлог весь прочитали, критов обратно несовместимых не заметили вроде бы.
У нас кластер в 3 шарда, в шарде по 2 ноды, куча replicated/distributed но пишем напрямую в Replicated.

И 2 вопроса к аудитории(гуглил, ответов что-то не нашел):
1. Роллинг апдейт: есть ли принципиально не совместимые версии между 19.16 и 20.8 которые никак не будут работать в одном кластере? Можно ли писать в новую/старую ноду когда кластер не полностью обновлен?
2. есть ли какая-то политика отката ноды? Т.е. в случае чего можно ли кластер откатить на старую версию? Например, если не было записи в ноду с новой версией.
DDLки проверьте на совместимость и поправьте перед прыжком...
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vladimir Rudev
Спасибо большое за ответ! Про ALTER'ы и мутации очень полезно.
У нас distributed по факту используются не совсем так как они задуманы. У нас 3 шарда, Distributed смотрит в Replicated. Данные пишутся в Replicated напрямую, шардирование идет по проекту, данные между проектами не пересекаются никак(т.е. нет запроса который тянет данные с разных шардов).

EDIT: Но запрос может прийти на шард 1 а все данные для него на шарде 2

А что скажете на счет такого плана:
1. переносим запись/чтение на одно зеркало в каждом шарде(группа old)
2. обновляем оставшиеся зеркала(группа new)
3. Пробуем читать из new
4. Если все ОК то останавливаем запись(или переносим на группу new)
5. Апдейт группы old

Если не ок то откат/ресетап зеркал группы new.
сработает. Из-за записи, скорее будет много ошибок про контрольные суммы, потому что компрессия не совпадет и создаст совместимые парты но с разной контрольной суммой, т.е. "false positive" в каком-то смысле, и поэтому реплики будут тягать парты с друг друга.
источник

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
да, я нашел pr, дописал в тикет
так вопрос собственно про методологию, вот я вижу ПР, как прийти от него к релизу 20.8?
источник

VR

Vladimir Rudev in ClickHouse не тормозит
Блин, как интересно... а парт как-то модифицируется при скачивании с зеркала? Или это будет на партах которые появятся после мержей на обновленной ноде?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Dj
так вопрос собственно про методологию, вот я вижу ПР, как прийти от него к релизу 20.8?
да в этом случае pr вмержен другим pr . Я просто в pr-ы покликал, наверное лучше diff смотреть как вы сделали
источник

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
да в этом случае pr вмержен другим pr . Я просто в pr-ы покликал, наверное лучше diff смотреть как вы сделали
ну я в этот ПР ткнул, тут тож нет релиза
https://github.com/ClickHouse/ClickHouse/commit/597463dfa261f2b57ce5ffbb56c1d83cb731f12e
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vladimir Rudev
Блин, как интересно... а парт как-то модифицируется при скачивании с зеркала? Или это будет на партах которые появятся после мержей на обновленной ноде?
нет парты не модифицируются.

будет вот что:

реплика 19.16 будет назначать мержи, потому что в вашем случае реплики 20.8 не будут назначать мержи (там специально выключится механизм выбора лидера, потому что в >20.4 нет лидеров)

реплика 19.16 назначит мерж n-партов в парт XXX и начнет мержить
реплика 20.8 тоже начнет мержить n-партов в парт XXX
например реплика 20.8 успеет первой и запишет в ЗК контрольную сумму у XXX = ZZZ
реплика 19.16 закончит мержить на секунду позже сверит контрольную сумму, она не совпадет возможно,
попробует смержить еще 2 раза, неудачно
скачает парт XXX с 20.8
напишет много ошибок в логи
дальше все будет работать ОК, парты совместимы, компресиия совместима, но получаются разные контрольные суммы
источник

VR

Vladimir Rudev in ClickHouse не тормозит
Понятно, благодарю за пояснение.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
не знаю правда что будет с компактными партами, не проверял, я бы их выключил на первые месяцы жизни с 20.8
источник

VR

Vladimir Rudev in ClickHouse не тормозит
да, так и сделаем, спасибо
источник

DN

Dmytro Nemesh in ClickHouse не тормозит
ребята кто то может подсказать опенсоурсное решение для визуализации даных. Очень важно иметь возможно делать производную между двума метриками. Например CTR . (как например в tableau)
источник

DN

Dmytro Nemesh in ClickHouse не тормозит
и иметь возможность на одной визуализации накладывать результат двух запросов (например CTR, количество пользователей, и Click to Contact)
источник

D

Denisio in ClickHouse не тормозит
я только d3js могу посоветовать :))
источник

MV

Max Vikharev in ClickHouse не тормозит
Dmytro Nemesh
ребята кто то может подсказать опенсоурсное решение для визуализации даных. Очень важно иметь возможно делать производную между двума метриками. Например CTR . (как например в tableau)
источник

Д

Денис in ClickHouse не тормозит
Уважаемые. Есть запрос

select distinct vrp.Doc1CId, vrp.DocNumber, vrp.DocDate 
                   from vwRnk_plain vrp
                   join vwUPDdata_plain u on u.mc_short=vrp.code_marking_short and u.upd_id ='2eb5e6bc-58b2-11eb-80d2-94188269d468'

при его выполнении на версии 20.4.2.9 все отрабатывало нормально, но сейчас, обновил до версии 21.1.2.15, начались ошибки

Code: 403, e.displayText() = DB::Exception: Not equi-join ON expression: upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468'. No columns in one of equality side.: While processing upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468' (version 21.1.2.15 (official build))


может кто сталкивался и как поправить?
источник

AP

Alexander Petrov in ClickHouse не тормозит
Денис
Уважаемые. Есть запрос

select distinct vrp.Doc1CId, vrp.DocNumber, vrp.DocDate 
                   from vwRnk_plain vrp
                   join vwUPDdata_plain u on u.mc_short=vrp.code_marking_short and u.upd_id ='2eb5e6bc-58b2-11eb-80d2-94188269d468'

при его выполнении на версии 20.4.2.9 все отрабатывало нормально, но сейчас, обновил до версии 21.1.2.15, начались ошибки

Code: 403, e.displayText() = DB::Exception: Not equi-join ON expression: upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468'. No columns in one of equality side.: While processing upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468' (version 21.1.2.15 (official build))


может кто сталкивался и как поправить?
Вынести условие upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468' в where?
источник

Д

Денис in ClickHouse не тормозит
Alexander Petrov
Вынести условие upd_id = '2eb5e6bc-58b2-11eb-80d2-94188269d468' в where?
это баг в новых версиях? )
источник

AP

Alexander Petrov in ClickHouse не тормозит
Денис
это баг в новых версиях? )
Это фикс бага старых версий 😜https://clickhouse.tech/docs/en/whats-new/changelog/#clickhouse-release-v21-1-2-15-stable-2021-01-18 см. последний пункт в Bug Fix
источник

Д

Денис in ClickHouse не тормозит
Понятно, спасибо большое!
источник