Добавление в ClickHouse поддержки constraints и assumptions
Компания | Яндекс |
Учебный семестр | Осень 2018 |
Учебный курс | 3-4-й курс |
Максимальное количество студентов, выбравших проект: ? | |
Constraint - это выражение, которое проверяется на истинность при вставке данных. Для примера, в таблице есть пара столбцов: URL и URLDomain. URLDomain хранится отдельно, чтобы быстрее обрабатывать запросы, где не нужен весь URL. При вставке мы хотим удостовериться, что URLDomain = domain(URL). Для этой цели, при создании таблицы, мы указываем соответствующий constraint.
Указанные constraints могут использоваться для оптимизации запросов. Например, если в запросе написано domain(URL), и в таблице есть constraint URLDomain = domain(URL), то мы можем оптимизировать запрос, заменив domain(URL) на URLDomain, чтобы избежать лишних вычислений.
Вариантом на тему constraints может быть assumptions. Это - выражение, которое не проверяется при вставке данных, но всё-равно использующееся при оптимизации запроса, как будто оно всегда является истинным.