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

Привет! Не могу найти, возможно ли построить вторичный индекс по полю

типа Array(String) ?

11 ответов

9 просмотров

skip index != вторичный индекс. он будет работать с массивом как с любым другим типом данных. например минмакс на массиве скорее всего будет бесполезен, блум фильтр теоретически может помочь, но там все сильно зависит от данных и насколько они коррелируют с первичным ключом

Dmitry- Автор вопроса
【D】【J】
skip index != вторичный индекс. он будет работат...

У меня кх несвежий, блум по массиву не хочет

Dmitry- Автор вопроса
Dmitry
У меня кх несвежий, блум по массиву не хочет

А в свежем работает блум по массиву?

Dmitry
А в свежем работает блум по массиву?

я сам не пробовал, но в доке написано так Supported data types: Int*, UInt*, Float*, Enum, Date, DateTime, String, FixedString, Array, LowCardinality, Nullable. https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#available-types-of-indices попробуйте в тесте

Dmitry
А в свежем работает блум по массиву?

но он все равно поможет только если вы будете делать сравнения типа arrayCol=['aaa','bbb']

ну вторинчый индекс это Data Skip Index это означает что clickhouse пытается использовать индекс для того чтобы проверить нужно или нет сканировать одну или несколько гранул из index granularity для data skip индекса это кол-во гранул из primary key то есть то что у вас строки гарантировано уникальные в пределах одного массива ничего не значит =)

https://kb.altinity.com/altinity-kb-queries-and-syntax/skip-indexes/example-skip-index-bloom_filter-and-array-column.

Dmitry- Автор вопроса
Dmitry
screenshot Тонкий намек?

Точка часть урла

Dmitry- Автор вопроса
Denny [Altinity]
https://kb.altinity.com/altinity-kb-queries-and-sy...

телеграм игнорирует точку в конце ссылки

Dmitry- Автор вопроса
Denny [Altinity]
https://kb.altinity.com/altinity-kb-queries-and-sy...

Спасибо. Раскатаю на тесте свежую версию, попробую

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта