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

Всем привет! А подскажите, как можно бороться с проблемой большой

уникальности значений в КХ? У меня такой кейс, что бывает очень много уникальных значений (сотни миллионов), и мне нужно сгруппировать их как-то, но ценность предоставляют только те, которых больше чем 100 (или что-то около того), но таких не много. То есть вот пример запроса:

SELECT value, count() FROM t GROUP BY value LIMIT 50;

и данные у меня вот такие выходят:

value, count()
v1, 2
v2, 349340
v3, 4
v4, 1
v5, 3939
v6, 1
...
v9999999, 3
v100000000, 6

то есть я бы хотел узнать кол-во только v2 и v5, но для этого нужно все значения сгруппировывать и КХ разумеется это не может сделать (фильтры я конечно же использую, там где могу). Может есть какие-то инструменты или интересные мысли как с таким можно обойтись на неприличных объемах данных?

5 ответов

19 просмотров

SELECT value, count() c FROM t GROUP BY value having c>100 LIMIT 50;

Valar-Morghulis Автор вопроса
Denny [Altinity]
SELECT value, count() c FROM t GROUP BY value havi...

но так же не сработает, все равно придется все миллионы сначала сгруппировать, а потом уже отфильтровать по ">100" ? То есть КХ сделает тот же самый объем работы, что если бы и я кодом так фильтровал

Valar Morghulis
но так же не сработает, все равно придется все мил...

я тогда не понял вопрос видимо. новый ответ: Вам надо просто хранить в SummingMergeTree готовые count , тогда почти не надо группировать

Valar-Morghulis Автор вопроса
Denny [Altinity]
я тогда не понял вопрос видимо. новый ответ: Вам...

нее, почему не надо группировать, так как кардинальность высокая, будет не 100 миллионов записей, а 90 миллионов, если я мат вью навешаю на таблицу. Это же не решит проблему, а лишь задублирует данные. Может в таких случаях SAMPLE секция как-то помочь?

Valar Morghulis
нее, почему не надо группировать, так как кардинал...

sample позволит как бы работать с рандомным 1% Я бы просто переливал записи у которых cnt >100 в отдельную таблицу кроном

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта