Size: a a a

ClickHouse не тормозит

2021 January 16

DC

Denny Crane [not a Y... in ClickHouse не тормозит
партишн -- виртуальная сущьность. Логически объединяет физические парты.
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Добрый день, подскажите, как сделать лучше, есть 10000 различных строк, вносится 1миллиард строк, где один колумн, это содержимое одной из этих 10000 строк, лучше вынести их в отдельную таблицу и дать им ID и вносить его или просто вносить их в таблицу и не париться?
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Длина строк от 40 до 80 символов
источник

AZ

Anton Zhuravsky in ClickHouse не тормозит
LowCardinality быть может?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
Добрый день, подскажите, как сделать лучше, есть 10000 различных строк, вносится 1миллиард строк, где один колумн, это содержимое одной из этих 10000 строк, лучше вынести их в отдельную таблицу и дать им ID и вносить его или просто вносить их в таблицу и не париться?
есть такая штука -- LowCardinality, примерно для вашего случая
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
есть такая штука -- LowCardinality, примерно для вашего случая
Да, я знаю про неё, просто боюсь, что потом 10 000 строк могут превратиться в 100 000
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Или даже больше
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
Да, я знаю про неё, просто боюсь, что потом 10 000 строк могут превратиться в 100 000
словарь в каждом парте свой
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
о, это отличная новость, спасибо!
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
А LowCardinality может быть Nullable?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
Да, я знаю про неё, просто боюсь, что потом 10 000 строк могут превратиться в 100 000
на самом деле решение можно принять только зная запросы которые будут выполняться над этой колонкой.
И например джойн с таблицей на 100к это совсем не сахар. И словарь (ext.dictionary) тоже не сахар.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
А LowCardinality может быть Nullable?
да
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
на самом деле решение можно принять только зная запросы которые будут выполняться над этой колонкой.
И например джойн с таблицей на 100к это совсем не сахар. И словарь (ext.dictionary) тоже не сахар.
Join'ы делаться не будут, только если на несколько сотен строк
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
Join'ы делаться не будут, только если на несколько сотен строк
вы просто не понимаете что такое джойны.

Вот например вы сохранили в большой таблице id = 777
В маленькой таблице у вас 100к строк, как вы расшифруете 777 в большой таблице?
Вы сделаете джойн. Nested loop в КХ нету, HashJoin перекинет все 100к в память и будет делать это очень долго (100мс)
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
вы просто не понимаете что такое джойны.

Вот например вы сохранили в большой таблице id = 777
В маленькой таблице у вас 100к строк, как вы расшифруете 777 в большой таблице?
Вы сделаете джойн. Nested loop в КХ нету, HashJoin перекинет все 100к в память и будет делать это очень долго (100мс)
Вынесу данные, которые мне нужны в ENGINE = Memory() и там сделаю Join
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikita Tikhomirov
Вынесу данные, которые мне нужны в ENGINE = Memory() и там сделаю Join
ахаха.
источник

NT

Nikita Tikhomirov in ClickHouse не тормозит
)
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Проблема 100мс. возникает из перекладывания данных в хеш-таблицу, поэтому ENGINE = Memory() ничего не изменит
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Есть правда Engine=Join который поможет, но с ним другие проблемы
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Ну когда кол-во строк станет не 100к, возникнут новые трудности типа out of memory
источник