Перейти к основному содержимому

Конфигурации ClickHouse

Конфигурации ClickHouse

ТипПоддерживается?Подробности
Материализация Materialized ViewДА, ЭкспериментальноСоздает материализованное представление.
Материализация Distributed tableДА, ЭкспериментальноСоздает распределенную таблицу.
Материализация Distributed incrementalДА, ЭкспериментальноИнкрементальная модель на основе той же идеи, что и распределенная таблица. Обратите внимание, что не все стратегии поддерживаются, посетите эту страницу для получения дополнительной информации.
Материализация DictionaryДА, ЭкспериментальноСоздает словарь.
Loading table...

Материализация View

Модель dbt может быть создана как представление ClickHouse и настроена с использованием следующего синтаксиса:

dbt_project.yml
models:
<resource-path>:
+materialized: view

Материализация Table

Модель dbt может быть создана как таблица ClickHouse и настроена с использованием следующего синтаксиса:

dbt_project.yml
models:
<resource-path>:
+materialized: table
+order_by: [ <column-name>, ... ]
+engine: <engine-type>
+partition_by: [ <column-name>, ... ]

Конфигурация таблицы

ОпцияОписаниеОбязательно?
materializedКак модель будет материализована в ClickHouse. Должно быть table, чтобы создать модель таблицы.Обязательно
engineДвижок таблицы, используемый при создании таблиц. См. список поддерживаемых движков ниже.Необязательно (по умолчанию: MergeTree())
order_byКортеж имен столбцов или произвольных выражений. Это позволяет создать небольшой разреженный индекс, который помогает быстрее находить данные.Необязательно (по умолчанию: tuple())
partition_byРаздел — это логическое объединение записей в таблице по заданному критерию. Ключ раздела может быть любым выражением из столбцов таблицы.Необязательно
Loading table...

Полный список параметров конфигурации см. в документации ClickHouse.

Инкрементальная материализация

Модель таблицы будет перестраиваться при каждом выполнении dbt. Это может быть нецелесообразно и чрезвычайно затратно для больших наборов данных или сложных преобразований. Чтобы решить эту проблему и сократить время сборки, модель dbt может быть создана как инкрементальная таблица ClickHouse и настроена с использованием следующего синтаксиса:

dbt_project.yml
models:
<resource-path>:
+materialized: incremental
+order_by: [ <column-name>, ... ]
+engine: <engine-type>
+partition_by: [ <column-name>, ... ]
+unique_key: [ <column-name>, ... ]
+inserts_only: [ True|False ]

Конфигурация инкрементальной таблицы

ОпцияОписаниеОбязательно?
materializedКак модель будет материализована в ClickHouse. Должно быть table, чтобы создать модель таблицы.Обязательно
unique_keyКортеж имен столбцов, которые уникально идентифицируют строки. Для получения более подробной информации об ограничениях уникальности см. здесь.Обязательно. Если не указано, измененные строки будут добавлены дважды в инкрементальную таблицу.
engineДвижок таблицы, используемый при создании таблиц. См. список поддерживаемых движков ниже.Необязательно (по умолчанию: MergeTree())
order_byКортеж имен столбцов или произвольных выражений. Это позволяет создать небольшой разреженный индекс, который помогает быстрее находить данные.Необязательно (по умолчанию: tuple())
partition_byРаздел — это логическое объединение записей в таблице по заданному критерию. Ключ раздела может быть любым выражением из столбцов таблицы.Необязательно
inserts_only(Устарело, см. стратегию материализации append). Если True, инкрементальные обновления будут вставлены непосредственно в целевую инкрементальную таблицу без создания промежуточной таблицы.Необязательно (по умолчанию: False)
incremental_strategyСтратегия, используемая для инкрементальной материализации. Поддерживаются delete+insert, append и insert_overwrite (экспериментально). Для получения дополнительной информации о стратегиях см. здесьНеобязательно (по умолчанию: 'default')
incremental_predicatesУсловие инкрементального предиката, применяемое к материализациям delete+insertНеобязательно
Loading table...

Полный список параметров конфигурации см. в документации ClickHouse.

Снимок

Снимки dbt позволяют фиксировать изменения в изменяемой модели с течением времени. Это, в свою очередь, позволяет выполнять запросы на модели с указанием времени, где аналитики могут "вернуться в прошлое" и посмотреть на предыдущее состояние модели. Эта функциональность поддерживается коннектором ClickHouse и настраивается с использованием следующего синтаксиса:

Для получения дополнительной информации о конфигурации, ознакомьтесь со страницей справки snapshot configs.

Узнать больше

Адаптер dbt-clickhouse поддерживает большинство нативных возможностей dbt, таких как tests, snapshots, helper macros и другие. Полный обзор поддерживаемых возможностей и лучших практик см. в документации ClickHouse.

Нашли ошибку?

0
Loading