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

Коллеги, и снова я с вопросами :) Есть кейс, описанный еще

в 2019 году в issue: https://github.com/ClickHouse/ClickHouse/issues/7895

den crane отвечал на него.
У меня есть похожая ситуация, но чуть другая:
Есть таблица на 200 млн. строк. В ней есть поле ID с типом UUID (это важно). При попытке посчитать количество уникальных ID (требуется именно точное значение)
select uniqExact(ID) from table
запрос либо выполнится (от 30 до 40 сек), либо просто упадет по нехватке памяти буквально через секунду после старта. Если же делать отбор по строке, или числовому полю - все отрабатывает без out-of-memory,

Собственно, вопрос - uniqExact так и остался медленным и нет никакого "импортозамещения" от него? :)
ver: version 22.3.2.1

10 ответов

36 просмотров
Алексей-Фирсов Автор вопроса

@den_crane, подскажите, ничего не изменилось с тех пор? Особенно интересует момент с UUID, уж очень медленно по нему считается uniqExact....

Алексей Фирсов
@den_crane, подскажите, ничего не изменилось с тех...

нет, ничего, и планов менять нет. Зачем вам Exact? Для того чтобы побороть проблему памяти можно считать кусками select uniqExactIf(a, cityHash64(a)%5=0) from + select uniqExactIf(a, cityHash64(a)%5=1)from .. select uniqExactIf(a, cityHash64(a)%5=4)from

Алексей-Фирсов Автор вопроса
Denny [Altinity]
нет, ничего, и планов менять нет. Зачем вам Exact?...

У нас поступают данные и заказчику нужны именно точные количества присланных данных...

Алексей-Фирсов Автор вопроса
Алексей Фирсов
Ну это все равно недопустимо долго.....

никто uniqExact не использует для UUID( это же оверкил для аналитики

Алексей Фирсов
Ну это все равно недопустимо долго.....

есть небольшой хак которым иногда пользуемся select uniqExact(device) from ... => 5.2 sec select uniqExact(cityHash64(device)) from ... => 3.4 sec

Алексей-Фирсов Автор вопроса
Konstantin Ilchenko
никто uniqExact не использует для UUID( это же ове...

пробовали его в UInt128 переводить, и прочие бубны - все равно долго...

Konstantin Ilchenko
есть небольшой хак которым иногда пользуемся sele...

это коллизии, и неверный результат, проще сразу uniq

Denny [Altinity]
это коллизии, и неверный результат, проще сразу un...

это сколько данных должно быть для колизии, пока за 3 года было 0, около 20 млрд уников

Konstantin Ilchenko
это сколько данных должно быть для колизии, пока з...

в смысле? хеш 64 бит это 50% вероятность коллизии на 2 млрд.

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта