ClickHouse · ClickHouse 26.3
Инженеры Авито собрали свои вопросы к Алексею Миловидову, автору ClickHouse. Про LowCardinality он объяснил так: словари строятся локально для каждого куска и даже диапазона; пока уникальных значений в диапазоне, скажем за день, до миллиона, тип эффективен. Дальше словарь откладывается и начинается новый, и выгода сходит к уровню обычного String.
Таблица ad_views получает около 400 млн строк в сутки. Строковые колонки и число уникальных значений за день: category — 300, city — около 5 тысяч, browser — около 200, url — сотни миллионов, session_id — уникален почти в каждой строке.
В работе: Проектирование широких таблиц событий: категории, города, платформы, версии приложения.
Источник: кейс Авито: вопросы инженеров Авито к Алексею Миловидову о ClickHouse, 2020. Условие пересказано своими словами.
Какие колонки стоит объявить как LowCardinality(String)?
- category
- city
- browser
- url
- session_id