184 похожих чатов

Коллеги, подскажите, насколько здравая идея использовать CH как Cassandra, делать

точечные запросы по полям с дико высокой кардинальностью (SELECT * FROM table WHERE uuid = '')

Догадываюсь что ключ сортировки - только это uuid, партиции по хэшу от ID, но всё же - не будет ли это выстрелом в ногу? или нормальная история?

21 ответов

28 просмотров

а сколько запросов в секунду вы ожидаете? в целом очень плохая идея, время ответа будет в сотнях милисекунд

Stranger- Автор вопроса
Konstantin Ilchenko
а сколько запросов в секунду вы ожидаете? в целом ...

10-20, в переспективе до 50+ (насколько я понимаю Cassandra такое будет тянуть вообще без проблем)

Stranger
10-20, в переспективе до 50+ (насколько я понимаю ...

ну 50 ещё по божески, это в любой БД должно работать, уж лучше в PG чтоли)

"партиции по хэшу от id" это , кстати, вообще не сработает здесь. клик считает хэш при вставке, при чтении "where id = ..." он использует min max индекс партиции, то есть при рандомно раскинутых по партициям айдишках, он скипнуть партиции не сможет и только на sorting key будет опираться. а sorting key из uuid, да еще и с минимальной гранулярностью, чтобы read overhead снизить, это всё выльется в потребление оперативки (метки primary key лежат в памяти) в общем, одни проблемы )

Stranger- Автор вопроса
ivan
"партиции по хэшу от id" это , кстати, вообще не с...

Понял принял, спасибо за разъяснение. Пользуясь случаем спрошу - есть ли какие-то альтерантивы Кассандре? SkyllaDB не в счет, а с DynamoDB получится vendor-lock

Очень плохая идея для CH и если используется Кассандра, предполагаю что данных много и в затюненый postgres они не поместились, решение классическое - как у Яндекс почты, быстрая бд с высокой кардинальностью и холодное хранилище с низкой

Denny [Altinity]
может, скипает, уже года два

где можно почитать / посмотреть?

ivan
где можно почитать / посмотреть?

хм, уже три года https://github.com/ClickHouse/ClickHouse/pull/16253 там правда работает id%100=5 но не работает id%100 in (5,6)

Denny [Altinity]
хм, уже три года https://github.com/ClickHouse/Cl...

а, вот в чем подвох да, в fiddle вопроизвел с "=", прикольно

ivan
а, вот в чем подвох да, в fiddle вопроизвел с "=",...

https://github.com/ClickHouse/ClickHouse/issues/28800 https://github.com/ClickHouse/ClickHouse/issues/55205

Denny [Altinity]
хм, уже три года https://github.com/ClickHouse/Cl...

а то что в ORDER BY это не работает это ожидаемо? Недавно заметил это, пришлось на IN переписывать много запросов https://fiddle.clickhouse.com/85bb7165-cd78-47dc-b465-c1c2d754c264

Konstantin Ilchenko
а то что в ORDER BY это не работает это ожидаемо? ...

сегодня прямо день not sargable предикатов, уже второй за сегодня )

Konstantin Ilchenko
а то что в ORDER BY это не работает это ожидаемо? ...

в голове заиграла музыка: фарш невозможно провернуть назад ну этот как раз понятно почему не работает, это уже совсем невозможно

Denny [Altinity]
в голове заиграла музыка: фарш невозможно проверну...

я понимаю что по minmax в целом такое скорее не должно работать, но если в одной грануле только одно значение и таких гранул много то можно в теории отсеивать

Konstantin Ilchenko
я понимаю что по minmax в целом такое скорее не до...

чтобы понять, что в грануле всё это время было только одно значение x % N, это значение надо подсчитать, а это происходит уже после отсеивания

ivan
чтобы понять, что в грануле всё это время было тол...

так если min == max это разве не значит что только одно значение, применяем к этому значению % 30 и узнаём надо ли читать гранулу

Konstantin Ilchenko
так если min == max это разве не значит что только...

ок, вроде понял, то есть ваша идея, что если 1. x на первой позиции в индексе 2. в where используется f(x) 3. то надо сначала подсчитать f(x) для всех меток и отбросить гранулы, у которых с обеих сторон x_start = x_end и f(x) false

Konstantin Ilchenko
я понимаю что по minmax в целом такое скорее не до...

кстати как узнать что в грануле есть id%30 ? надо проверить что в следующей грануле id равен id в текущей грануле, ну т.е. это все будет работать очень иногда и только для первого поля в индексе

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта