Size: a a a

ClickHouse не тормозит

2021 January 12

В

Владимир in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
либо у вас парты пересекались по номерам, поэтому attach приатачил не все
либо вы на обеих репликах положили в detached, то в этом случае надо было делать не так, attach атачит только на одной реплике, где он запущен, остальные реплики фетчат с него.
точно НЕ второй вариант - аттачил на одной реплике только.
inactive партции когда-нибудь исчезнут?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Владимир
точно НЕ второй вариант - аттачил на одной реплике только.
inactive партции когда-нибудь исчезнут?
в detached ничего само не исчезает. Вы взяли парты с одного шарда? Или с нескольких?
у вас номера блоков пересекались?
источник

I

Ivan in ClickHouse не тормозит
Slach
ну лучше сделать по доке которая в github
шаги примерно такие
устанавливаем оператор через web installer
curl -sL https://github.com/Altinity/clickhouse-operator/blob/master/deploy/operator-web-installer/clickhouse-operator-install.sh | bash -x

устанавливаем Zookeeper
https://github.com/Altinity/clickhouse-operator/blob/master/deploy/zookeeper/quick-start-persistent-volume/zookeeper-1-node-create.sh

для первого раза можно 1 нодовую конфигурацию взять

пишем свой yaml манифест определяющий кластер
за основу можно взять
https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/01-simple-layout-02-1shard-2repl.yaml
просто определите сколько у вас реплик и шардов

и делаете его kubectl apply

дальше смотрите через kubectl describe -n your-ns your-chi на статус как оно там накатывается
ну или через k9s смотрите как оператор ваш chi реконсайлит
👌пасип, попробую
источник

В

Владимир in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
в detached ничего само не исчезает. Вы взяли парты с одного шарда? Или с нескольких?
у вас номера блоков пересекались?
у меня один инстанс вообще был. на него всё писалось. после этого появилось две новые машинки, на них создал replicated таблицы. на той где были данные сделал по инструкции на сайте - переименовал обычную, создал репликейтед и данные из обычной в реплицируемую скопировал на файлухе в detached директорию. дальше тем скриптом из github issue прошёлся чтобы приаттачить
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Владимир
у меня один инстанс вообще был. на него всё писалось. после этого появилось две новые машинки, на них создал replicated таблицы. на той где были данные сделал по инструкции на сайте - переименовал обычную, создал репликейтед и данные из обычной в реплицируемую скопировал на файлухе в detached директорию. дальше тем скриптом из github issue прошёлся чтобы приаттачить
видимо это были inactive парты в старой MT

если все данные на месте, то просто удалите все из detached
источник

S

Slach in ClickHouse не тормозит
Ivan
👌пасип, попробую
будут вопросы, пишите =)
кстати пошарьте свой опыт потом, получилось или нет, это тоже очень интересно
источник

В

Владимир in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
видимо это были inactive парты в старой MT

если все данные на месте, то просто удалите все из detached
ок, спасибо!
источник

I

Ivan in ClickHouse не тормозит
Slach
будут вопросы, пишите =)
кстати пошарьте свой опыт потом, получилось или нет, это тоже очень интересно
Да у меня больше дум, как это в CI обернуть, и как автоскейл красиво сделать
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Roman
Добрый день

Столкнулись с проблемой расхождения ответов
У нас старый формат таблиц (данных много, поэтому сразу не перельешь). Сам движок ReplicatedReplacingMergeTree

Отправляем запрос вида
SELECT column FROM distributed_table WHERE column IN (набор из сотен значений)
получаем разное количество записей

Проблема проявляется первые 2-3 раза, после чего кол-во строк в ответе становится неизменным.
При запросе к одному из шардов, минуя дистрибьютед таблицу, баг не проявляется.
Проблема как минимум с ноября, обновились до 20.12.5.14 - не помогло

Что посоветуете?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Egor Zagorskiy
можно ли создать primary key после создания таблицы? че-то не могу нагуглить
нет, вторичных индексов нету, не верьте
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Egor Zagorskiy
т.е.  штатных средств для unique index нет?
нету, никак не проверить БЫСТРО что запись уже существует.
источник

S

Slach in ClickHouse не тормозит
Ivan
Да у меня больше дум, как это в CI обернуть, и как автоскейл красиво сделать
в CI/CD это так примерно заворачивается
берете токен от вашего кубернетес кластера + endpoint от apiserver
и кладете в ~/.kubeconfig
делаете переменную KUBECONFIG=~/.kubeconfig
и в CI/CD где то вызываете kubectl apply

автоскейл чего? автоскейл kubernetes или автоскейл clickhouse в кубернетес?
автоскейла в кликхаусе нет, но можно мониторинг прикрутить + podAntiAffinity чтобы по одному поду внутри StatefulSet на ноду и прикрутить к этому autoscaling node groups для того провайдера Kubernetes который это поддерживает

у вас какой k8s? облачный? bare-metal?
источник

S

Slach in ClickHouse не тормозит
Ivan
Да у меня больше дум, как это в CI обернуть, и как автоскейл красиво сделать
ну и вы вперед паровоза бежите
вы сначала научитесь с этим жить хотя бы локально на minikube чтобы понять как оно там устроено... а потом уже про масштабирование думайте
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
нету, никак не проверить БЫСТРО что запись уже существует.
Понятно, спасибо
источник

S

Slach in ClickHouse не тормозит
Egor Zagorskiy
т.е.  штатных средств для unique index нет?
ну вы попробуйте вставить в какой нибудь Postgres миллиард UUID записей с UNIQE index ;)
вместе поплачем над тем что надо до 9 чтений рандомных на каждую запись сделать
источник

ИФ

Игорь Фролов... in ClickHouse не тормозит
да, сразу не разобрался и полез в чат)
спасибо большое
источник

S

Slach in ClickHouse не тормозит
Egor Zagorskiy
т.е.  штатных средств для unique index нет?
то есть задача проверки "уникальности" для большого набора "произвольных данных", она сама по себе не тривиальна
и в OLTP базах более или менее решена только для случаев монотонно возрастающих числовых значений размерностью до UInt64 ;)
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
в OLTP базах в btree индексе random io небольшой из-за того что там логарифм получается с большим основанием, поэтому для млрд. будет 6 рандом чтений, а для 100млрд. будет 7. Даже если не монотонно возрастает. В КХ индекс не btree и еще и разреженный.
И еще внезапно КХ читает все марки в парте, поэтому надо проверить 1 строку, а КХ может 10ГБ одних марков вычитать с диска и еще в памяти это 10ГБ надо разложить.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Запрос выполняется по PK , выполняется около секунды, при этом с диска ничего не читает.

https://gist.github.com/den-crane/1f3143176c4333530ab6f73c3518adcb
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
секунда уходит на чтение из кеша линукса 6ГБ марков и раскладывание их в кеш.
источник