Size: a a a

ClickHouse не тормозит

2020 July 27

DC

Denny Crane (I don't... in ClickHouse не тормозит
Philipp Shayzhanov
Всем привет. Нужно КХ горизонтально масштабировать. Есть таблица  uint64 uint64 str. Есть ли какое-то оптимальное количество шардов на количество строк в такой таблице
480
источник

DT

Dmitry Titov in ClickHouse не тормозит
Philipp Shayzhanov
Всем привет. Нужно КХ горизонтально масштабировать. Есть таблица  uint64 uint64 str. Есть ли какое-то оптимальное количество шардов на количество строк в такой таблице
Ну, двух хватит, это если из головы, а на самом деле зависит все от запросов и данных.
источник

PS

Philipp Shayzhanov in ClickHouse не тормозит
Dmitry Titov
Ну, двух хватит, это если из головы, а на самом деле зависит все от запросов и данных.
Запросы примерно такие: вытащить n интов (where in (select id from bigtable)
источник

И

Иван in ClickHouse не тормозит
Philipp Shayzhanov
Всем привет. Нужно КХ горизонтально масштабировать. Есть таблица  uint64 uint64 str. Есть ли какое-то оптимальное количество шардов на количество строк в такой таблице
Запускаете запросы целевые. Смотрите стату по скорости чтения и объёме данных (достаточно той которую даёт clickhouse-client) берёте желаемый qps и делите одно на другое. А пока это слишком абстрактный вопрос. Ответ на него 43.
источник

PS

Philipp Shayzhanov in ClickHouse не тормозит
Спасибо
источник
2020 July 28

Y

Yuran in ClickHouse не тормозит
Мне пока что больше всего нравится число 60 для количества шардов (и/или таблиц, что в целом почти одно и то же), если не можете сразу определиться с тем, сколько шардов Вам понадобится
источник

Y

Yuran in ClickHouse не тормозит
Потому что это количество можно распределить по 1,2,3,4,5,6,10,12,20,30 и 60 серверам (плюс реплики)
источник

Y

Yuran in ClickHouse не тормозит
то есть, особенно поначалу, когда не очень известно, сколько действительно шардов нужно, расти можно очень плавно
источник

И

Иван in ClickHouse не тормозит
Yuran
Потому что это количество можно распределить по 1,2,3,4,5,6,10,12,20,30 и 60 серверам (плюс реплики)
А ещё можно вручную менять вес шардов при записи и спокойно заполнять новые шарды данными, хотя возможно я чего-то не понимаю в шардировании. без привязки к определенному количеству
источник

Y

Yuran in ClickHouse не тормозит
Иван
А ещё можно вручную менять вес шардов при записи и спокойно заполнять новые шарды данными, хотя возможно я чего-то не понимаю в шардировании. без привязки к определенному количеству
Можно. Но может так получиться, что у Вас на одних шардах данные в основном более старые (а значит более «холодные»), а на других более новые (более «горячие»), и нагрузка на них сильно отличается. В зависимости от характера данных, шардирование по остатку деления от пользователя (или какого-нибудь схожего поля) может давать лучшие результаты в плане равномерности, хотя и может быть нужно периодически мигрировать данные.
источник

Y

Yuran in ClickHouse не тормозит
(и если число шардов взять сразу с запасом, например 60, то можно весьма долго не беспокоиться о том, чтобы перейти на другую схему шардирования, которая работала бы лучше в ваших конкретных условиях)
источник

Y

Yuran in ClickHouse не тормозит
(на одном сервере в целом можно держать много шардов, это не запрещено :))
источник

Y

Yuran in ClickHouse не тормозит
(и переносить таблицы между серверами простой репликацией)
источник

И

Иван in ClickHouse не тормозит
Удобство использования встроенных констант. Вместо {shard}(или двухуровневое {layer}_{shard) можно использовать конечно вручную поставляемое значение, но это больше разных баз на хосте, больше разных таблиц, больше maintenance операций. Пока на моей практике получалось переживать неравномерность загрузки шардов после введения в строй нового шарда, но кому-то этот вариант не подойдёт, но заранее усложнять не хочется
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Philipp Shayzhanov
Запросы примерно такие: вытащить n интов (where in (select id from bigtable)
надо делать select id from bigtable where id in .... и шардить по id
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Иван
Удобство использования встроенных констант. Вместо {shard}(или двухуровневое {layer}_{shard) можно использовать конечно вручную поставляемое значение, но это больше разных баз на хосте, больше разных таблиц, больше maintenance операций. Пока на моей практике получалось переживать неравномерность загрузки шардов после введения в строй нового шарда, но кому-то этот вариант не подойдёт, но заранее усложнять не хочется
так можно макросов сколько угодно сделать shard_clusterx , shard_clusterb, shard_clusterz
источник

S

Slach in ClickHouse не тормозит
Народ, запускаю обычный docker-compose контейнер
image: docker.io/yandex/clickhouse-server:latest

пользователь default
SHOW GRANTS;
получаю
GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, KILL QUERY, SYSTEM, dictGet, INTROSPECTION, SOURCES ON *.* TO default

Делаю
SHOW USERS;
получаю
Received exception from server (version 20.5.3):
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant SHOW USERS ON *.*.


пытаюсь покифсить
GRANT SHOW USERS ON *.* TO CURRENT_USER;
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant SHOW USERS ON *.* WITH GRANT OPTION.


пытаюсь пофиксить повторно
CREATE ROLE OR REPLACE root
Received exception from server (version 20.5.3):
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant CREATE ROLE ON *.*.


я правильно понимаю что с такими правами я никаких GRANT \ REVOKE сделать не могу?
что-то как то напутано с секьюрити по моему очень сильно стало

как решать то?
источник

S

Slach in ClickHouse не тормозит
Slach
Народ, запускаю обычный docker-compose контейнер
image: docker.io/yandex/clickhouse-server:latest

пользователь default
SHOW GRANTS;
получаю
GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, KILL QUERY, SYSTEM, dictGet, INTROSPECTION, SOURCES ON *.* TO default

Делаю
SHOW USERS;
получаю
Received exception from server (version 20.5.3):
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant SHOW USERS ON *.*.


пытаюсь покифсить
GRANT SHOW USERS ON *.* TO CURRENT_USER;
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant SHOW USERS ON *.* WITH GRANT OPTION.


пытаюсь пофиксить повторно
CREATE ROLE OR REPLACE root
Received exception from server (version 20.5.3):
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query it's necessary to have the grant CREATE ROLE ON *.*.


я правильно понимаю что с такими правами я никаких GRANT \ REVOKE сделать не могу?
что-то как то напутано с секьюрити по моему очень сильно стало

как решать то?
источник

P

PAS in ClickHouse не тормозит
Всем привет
источник

P

PAS in ClickHouse не тормозит
в новых версиях убрали max_memory_usage  ?
источник