Size: a a a

ClickHouse не тормозит

2021 January 12

OG

Oleg Gavrilov in ClickHouse не тормозит
er@essbase.ru
Ну да , для меня это атрибут - признак расчета .  Если отстраниться от первичного вопроса , для моего случая как движок таблиц подойдёт ?
MergeTree?
источник

PV

Pavel Vorontsov in ClickHouse не тормозит
Добрый день, коллеги. С 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 с большими данными. Вопрос - есть ли какие то другие способы?
источник

AM

Alex ⭕️ More 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 с большими данными. Вопрос - есть ли какие то другие способы?
Да, есть вот такой подход с внешними данными
источник

PV

Pavel Vorontsov in ClickHouse не тормозит
Спасибо, но это мне скорее всего не годится. Я подключаюсь к КХ из c# и мне нужно использовать json как таблицу внутри запроса. Буду использовать CREATE TEMPORARY TABLE, это мне подойдет. Спасибо за ответ.
источник

S

Slach in ClickHouse не тормозит
Привет всем
а есть какой то аналог use_client_time_zone для HTTP интерфейса?

пытался сделать так
curl -vvv "http://127.0.0.1:8123/?query=SELECT+now()&use_client_time_zone=1" -H "X-ClickHouse-Timezone: UTC"
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Slach
Привет всем
а есть какой то аналог use_client_time_zone для HTTP интерфейса?

пытался сделать так
curl -vvv "http://127.0.0.1:8123/?query=SELECT+now()&use_client_time_zone=1" -H "X-ClickHouse-Timezone: UTC"
Нет
источник

В

Владимир 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
источник

В

Владимир in ClickHouse не тормозит
я думал они исчезнут через 8 минут (по дефолту), но прошли уже почти сутки, а они всё ещё там
источник

В

Владимир in ClickHouse не тормозит
это нормально 🙂 ?
источник

A

Andrey in ClickHouse не тормозит
всем привет, хочу перенести КХ на другой сервер и настроить шардирование между двумя серверами, подскажите как правильно/лучше/быстрее перенести данные с одного сервера на другой в шардированную таблицу?
источник

ИФ

Игорь Фролов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
я менял на большие значения, чтобы через jdbc посылать SQL с огромным спиcком in
(jdbc не умеет external-data)
Добрый день)

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

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

ИФ

Игорь Фролов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
миллионы можно, пока в sql размер  влезает (256кб по дефолту), но лучше external data. Какой API ? можно через что угодно, даже jdbc
"миллионы можно, пока в sql размер  влезает (256кб по дефолту), но лучше external data. Какой API ? можно через что угодно, даже jdbc"

и вот такое
пытаюсь понять, можно ли через jdbc драйвер послать external data с запросом, или остается вариант только через http интерфейс?
источник

S

Slach in ClickHouse не тормозит
Andrey
всем привет, хочу перенести КХ на другой сервер и настроить шардирование между двумя серверами, подскажите как правильно/лучше/быстрее перенести данные с одного сервера на другой в шардированную таблицу?
"шадированных" таблиц не существует
существуют "Distributed"

которые обычно делаются поверх ReplicatedMergeTree  (но можно любой движок)

у вас сейчас "не шардированная" таблица какой Engine имеет?
источник

A

Andrey in ClickHouse не тормозит
Slach
"шадированных" таблиц не существует
существуют "Distributed"

которые обычно делаются поверх ReplicatedMergeTree  (но можно любой движок)

у вас сейчас "не шардированная" таблица какой Engine имеет?
да, все верное - Distributed

сейчас не шардированная таблица ENGINE = MergeTree
источник

S

Slach in ClickHouse не тормозит
Andrey
да, все верное - Distributed

сейчас не шардированная таблица ENGINE = MergeTree
ну самое простое, но не самое лучшее

ставим новый сервер с нуля
создаем там пустую таблицу с Engine = MergreTree

добавляем оба сервера в
<remote_servers><your_cluster_name>
в разные <shard> теги

создаем новую таблицу ENGINE  Distributed(...) на обоих серверах
все новые INSERT делаем в новый сервер в таблицу которая ENGINE MergeTree
ну либо рандомно с весовым коэффициентом скажем (75% в новый сервер, 25% в старый сервер)

все SELECT делаем из ENGINE=Distributed()
тоже можно рандомно какой нибудь chproxy с весами настроить чтобы данные каждый раз не лить с одного сервера на другой...
источник

S

Slach in ClickHouse не тормозит
Andrey
всем привет, хочу перенести КХ на другой сервер и настроить шардирование между двумя серверами, подскажите как правильно/лучше/быстрее перенести данные с одного сервера на другой в шардированную таблицу?
второй вариант более правильный и более сложный

ставим Zookeeper
ставим второй clickhouse-server
прописываем на обоих clickhouse серверах <zookeeper> секцию и <remote_servers> в конфиги

конвертируем MergeTree в ReplicatedMergeTree на первом сервере
https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/#converting-from-mergetree-to-replicatedmergetree

получите два сервера с копией данных

дальше делаете Distributed таблицу и читаете из нее
источник

A

Andrey in ClickHouse не тормозит
Slach
второй вариант более правильный и более сложный

ставим Zookeeper
ставим второй clickhouse-server
прописываем на обоих clickhouse серверах <zookeeper> секцию и <remote_servers> в конфиги

конвертируем MergeTree в ReplicatedMergeTree на первом сервере
https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/#converting-from-mergetree-to-replicatedmergetree

получите два сервера с копией данных

дальше делаете Distributed таблицу и читаете из нее
немного не понял с переносом, сейчас на старом сервере таблица весит 1,7 ТБ, на двух новых серверах диски по 2ТБ, я бы хотел что бы данные со старого сервера при переносе распределились на два новых сервера 50/50 по занимаемому месту
источник

S

Slach in ClickHouse не тормозит
Andrey
немного не понял с переносом, сейчас на старом сервере таблица весит 1,7 ТБ, на двух новых серверах диски по 2ТБ, я бы хотел что бы данные со старого сервера при переносе распределились на два новых сервера 50/50 по занимаемому месту
облом =) автоматического решардинга нет
и у вас уже нет места для того чтобы сделать
INSERT INTO distributed_table FROM your_merge_tree_table с распределением 50 на 50
источник

S

Slach in ClickHouse не тормозит
Andrey
немного не понял с переносом, сейчас на старом сервере таблица весит 1,7 ТБ, на двух новых серверах диски по 2ТБ, я бы хотел что бы данные со старого сервера при переносе распределились на два новых сервера 50/50 по занимаемому месту
ну можно попробовать переливать данные частями
сначала INSERT INTO ... SELECT .. WHERE ... а потом ALTER TABLE ... DELETE .. WHERE ...
но это сильно будет диск жрать на ALTER TABLE ... DELETE
источник

MK

Max Khlystov in ClickHouse не тормозит
добрый день можно ли как то писать в такие таблицы https://clickhouse.tech/docs/en/engines/table-engines/integrations/rabbitmq/ через вьюшки?
источник