TGViewer
Дата Инженер Лаб | Артём Подвальный Дата Инженер Лаб | Артём Подвальный @dataengineerlab · 1.87K subscribers
Post #103 1.52K
Словари в ClickHouse: как ускорить аналитику и разгрузить базу

🖥 В ClickHouse есть полезный инструмент, о котором часто забывают - Dictionaries (словарь)

Если совсем просто:

Это маленький справочник, который хранится в памяти и помогает не делать JOIN для небольших таблиц. Вместо JOIN с маленькой справочной таблицей (например, users, country, user_id) вы просто используете `dictGet`, чтобы быстро подтянуть нужные значения: country, category, segment и так далее.


dictGet('users', 'country', user_id).


🤓Здесь:
users — имя словаря
country — имя колонки (атрибута), которую хочешь получить
user_id — ключ, по которому ищем (например, id пользователя)

Это часто работает быстрее, потому что:

⏺Данные уже подготовлены для быстрого поиска

⏺ClickHouse не тратит лишние ресурсы на большой JOIN там, где нужен только один атрибут

⏺В некоторых случаях может использоваться очень быстрый механизм join-подобного доступа.

Когда dictionaries особенно полезны:
✅Когда нужно обогатить события: например, подтянуть страну, сегмент или категорию товара

✅Когда справочник небольшой и часто используется

✅Когда нужен простой поиск по ключу, а не сложное соединение таблиц

Когда лучше не использовать:
❌Если вы часто фильтруете по значению из словаря, например WHERE dictGet(...) = 'DE'
В таких случаях лучше хранить нужное поле прямо в основной таблице

❌Если справочник очень большой и плохо помещается в память

❌Если нужна мгновенная синхронность с источником данных

📖Если хотите закрепить, советую прочитать эту статью

А вы пользовались словарями?
  • 👍 9
  • 🔥 4
  • 🏆 3
  • ❤ 1
  • 😁 1
More from @dataengineerlab
  1. Sep 20, 2026Как вкатиться в Data Engineering с нуля? 🗺 Самая частая ошибка новичков- пытаться сразу в…
  2. Sep 17, 2026CDC и Debezium: как передавать изменения, а не выгружать всю таблицу заново? Допустим, зак…
  3. Sep 13, 2026Тебе тоже кажется, что забываешь быстрее, чем учишь? Недавно менти поделился проблемой: по…
  4. Sep 10, 2026Мини гайд по ИИ-агентам Агент снова забыл условия задачи, полез менять лишнее или написал…
  5. Sep 3, 2026До конца года 4 месяца. Что можно успеть? 📖 Лето закончили с сильными результатами: 13 ме…
  6. Aug 30, 2026Что такое векторные базы данных? Представим, что пользователь пишет📝: «Не проходит оплата…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →