Size: a a a

ClickHouse не тормозит

2021 January 12

EZ

Egor Zagorskiy in ClickHouse не тормозит
можно ли создать primary key после создания таблицы? че-то не могу нагуглить
источник

AK

Andrey Konyaev in ClickHouse не тормозит
Egor Zagorskiy
можно ли создать primary key после создания таблицы? че-то не могу нагуглить
Primary key задаётся при создании merge tree таблицы и для таблицы не меняется.
источник

AK

Andrey Konyaev in ClickHouse не тормозит
Можно добавить вторичный индекс
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
сейчас прочитал, что он не обеспечивает уникальности. как добиться unique index? использовать ReplacingMergeTree ?
источник

AK

Andrey Konyaev in ClickHouse не тормозит
Replacing не гарантирует уникальность. Схлопка только при слияниях и внутри патриции.

Можно замутить схему с matView которая будет считать argmax всех столбцов кроме primary key и на неё повесить view
источник

AK

Andrey Konyaev in ClickHouse не тормозит
А можно вызывать select с final
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
т.е.  штатных средств для unique index нет?
источник

AK

Andrey Konyaev in ClickHouse не тормозит
Только в виде аггрегата, но может кто ещё что-то посоветует.
источник

A

Andrey in ClickHouse не тормозит
Slach
ну можно попробовать переливать данные частями
сначала INSERT INTO ... SELECT .. WHERE ... а потом ALTER TABLE ... DELETE .. WHERE ...
но это сильно будет диск жрать на ALTER TABLE ... DELETE
тогда наверное придется создать на каком-то новом сервере таблицу Distributed, которая будет шардиться локально и на другой новый сервер и в нее заливать потихоньку данные через insert into tables select * from remote where EventDateTime >= 'date' and EventDateTime < 'date'
источник

S

Slach in ClickHouse не тормозит
нет нельзя
вьюшка ничем вам не поможет
можете попробовать сделать Pull Request чтобы RabbitMQ Engine мог сообщения в RabbitMQ отсылать
источник

MK

Max Khlystov in ClickHouse не тормозит
Slach
нет нельзя
вьюшка ничем вам не поможет
можете попробовать сделать Pull Request чтобы RabbitMQ Engine мог сообщения в RabbitMQ отсылать
он может. если сделать инсерт данные упадут в рабит
источник

СФ

Сергей Фесенко... in ClickHouse не тормозит
Andrey
немного не понял с переносом, сейчас на старом сервере таблица весит 1,7 ТБ, на двух новых серверах диски по 2ТБ, я бы хотел что бы данные со старого сервера при переносе распределились на два новых сервера 50/50 по занимаемому месту
Вам должен помочь clickhouse-copier
https://clickhouse.tech/docs/ru/operations/utilities/clickhouse-copier/
источник

R

Roman in ClickHouse не тормозит
Добрый день

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

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

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

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

I

Ivan in ClickHouse не тормозит
Коллеги, а есть у кого нить может статейка на русском про то, как деплоить кликхаус с использованием clickhouse-operator от altinity?

У них дока конечно исчерпывающая, но на англ в первый раз делать это тяжеловато
источник

S

Slach in ClickHouse не тормозит
Roman
Добрый день

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

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

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

Что посоветуете?
ну у вас реплики отстают друг от друга
и данные выбираются то с одной реплики то с другой
источник

R

Roman in ClickHouse не тормозит
Slach
ну у вас реплики отстают друг от друга
и данные выбираются то с одной реплики то с другой
Это проявляется на старых данных, когда в запросе ограничение по датам за 18-19 год. Все равно может быть дело в репликах? Как проверить отставание, подскажите, пожалуйста?
источник

S

Slach in ClickHouse не тормозит
Ivan
Коллеги, а есть у кого нить может статейка на русском про то, как деплоить кликхаус с использованием clickhouse-operator от altinity?

У них дока конечно исчерпывающая, но на англ в первый раз делать это тяжеловато
ну лучше сделать по доке которая в 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 реконсайлит
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Pavel Vorontsov
Добрый день, коллеги. С ch работаю недавно, пока не всё знаю.
Ситуация такая: у меня есть json вида [{"name":"aaa","date":"2020-02-01 15:44:33","val":222},{"name":"bbb","date":"2020-03-01 15:44:33","val":333}], хочется его использовать в запросе как то так
select <some> from table1 t join @json j on j.name = t.name where ....
Единственный вариант, который я пока нашел - это создавать таблицу с engine=Memory(), вливать туда данные, использовать и потом грохать. При этом в документации говорится, что именно так ведет себя КХ при обработке IN с большими данными. Вопрос - есть ли какие то другие способы?
а что with?

with T as (select ... )
select  join T

или там длинный json ? или вообще не json?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Владимир
после миграции MergeTree таблицы на Replicated и аттача партиций через

`clickhouse-client --format=TSVRaw -q"select 'ALTER TABLE ' || database || '.' || table || ' ATTACH PARTITION ID \'' || partition_id || '\';\n' from system.detached_parts group by database, table, partition_id order by database, table, partition_id;" | clickhouse-client -mn

остались detach partisions в состоянии inactive
либо у вас парты пересекались по номерам, поэтому attach приатачил не все
либо вы на обеих репликах положили в detached, то в этом случае надо было делать не так, attach атачит только на одной реплике, где он запущен, остальные реплики фетчат с него.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Фролов
Добрый день)

нашел по поиску вот такое сообщение

"я менял на большие значения, чтобы через jdbc посылать SQL с огромным спиcком in
(jdbc не умеет external-data)"
конечно jdbc умеет, я неправильно написал (в 2017м или 2018 jdbc не умел)

https://github.com/ClickHouse/ClickHouse/issues/17219#issuecomment-731224167
источник