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

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

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

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

21 ответов

10 просмотров

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

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 в текущей грануле, ну т.е. это все будет работать очень иногда и только для первого поля в индексе

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

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

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
18
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Подскажите, почему в правом коде с1 дополняется до 8байт, а не до 4?
Sergey
9
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Карта сайта