Добавление в ClickHouse поддержки constraints и assumptions

Материал из Wiki - Факультет компьютерных наук
Версия от 14:47, 15 октября 2018; Aapoludnitsin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания Яндекс
Учебный семестр Осень 2018
Учебный курс 3-4-й курс
Максимальное количество студентов, выбравших проект: ?



Constraint - это выражение, которое проверяется на истинность при вставке данных. Для примера, в таблице есть пара столбцов: URL и URLDomain. URLDomain хранится отдельно, чтобы быстрее обрабатывать запросы, где не нужен весь URL. При вставке мы хотим удостовериться, что URLDomain = domain(URL). Для этой цели, при создании таблицы, мы указываем соответствующий constraint.

Указанные constraints могут использоваться для оптимизации запросов. Например, если в запросе написано domain(URL), и в таблице есть constraint URLDomain = domain(URL), то мы можем оптимизировать запрос, заменив domain(URL) на URLDomain, чтобы избежать лишних вычислений.

Вариантом на тему constraints может быть assumptions. Это - выражение, которое не проверяется при вставке данных, но всё-равно использующееся при оптимизации запроса, как будто оно всегда является истинным.