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

Настройка ClickHouse

Некоторая основная функциональность может быть ограничена. Если вы заинтересованы в участии, ознакомьтесь с исходным кодом для каждого из перечисленных ниже репозиториев.

  • Поддерживается: Community
  • Авторы: Geoff Genz & Bentsi Leviav
  • Репозиторий GitHub: ClickHouse/dbt-clickhouse
  • Пакет PyPI: dbt-clickhouse
  • Канал в Slack: #db-clickhouse
  • Поддерживаемая версия dbt Core: v0.19.0 и новее
  • Поддержка dbt: Not Supported
  • Минимальная версия платформы данных: n/a

Установка dbt-clickhouse

Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

python -m pip install dbt-core dbt-clickhouse

Настройка dbt-clickhouse

Конфигурацию, специфичную для Clickhouse, см. на странице настроек Clickhouse.

Подключение к ClickHouse

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

profiles.yml
clickhouse-service:
target: dev
outputs:
dev:
type: clickhouse
schema: [ default ] # База данных ClickHouse для моделей dbt

# необязательно
host: [ <your-clickhouse-host> ] # URL вашего кластера ClickHouse, например abc123.clickhouse.cloud. По умолчанию `localhost`.
port: [ 8123 ] # По умолчанию 8123, 8443, 9000 или 9440 в зависимости от настроек secure и используемого драйвера
user: [ default ] # Пользователь для всех операций с базой данных
password: [ <empty string> ] # Пароль пользователя
secure: [ False ] # Использовать TLS (native protocol) или HTTPS (http protocol)

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

Создание проекта dbt

Теперь вы можете использовать этот профиль в одном из существующих проектов или создать новый с помощью команды:

dbt init project_name

Перейдите в директорию project_name и обновите файл dbt_project.yml, указав профиль, который вы настроили для подключения к ClickHouse.

profile: 'clickhouse-service'

Проверка подключения

Выполните команду dbt debug с помощью CLI, чтобы убедиться, что dbt может подключиться к ClickHouse. Убедитесь, что в выводе есть строка Connection test: [OK connection ok], которая означает успешное подключение.

Поддерживаемые возможности

Возможности dbt

TypeSupported?Details
ContractsYES
Docs generateYES
Most dbt-utils macrosYES(теперь включены в dbt-core)
SeedsYES
SourcesYES
SnapshotsYES
TestsYES
Loading table...

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

TypeSupported?Details
TableYESСоздаёт table. Ниже приведён список поддерживаемых движков.
ViewYESСоздаёт view.
IncrementalYESСоздаёт таблицу, если она не существует, а затем записывает в неё только обновления.
Microbatch incrementalYES
Ephemeral materializationYESСоздаёт эфемерную материализацию / CTE. Эта модель является внутренней для dbt и не создаёт объектов в базе данных.
Materialized ViewYES, ExperimentalСоздаёт materialized view.
Distributed table materializationYES, ExperimentalСоздаёт distributed table.
Distributed incremental materializationYES, ExperimentalИнкрементальная модель, основанная на той же идее, что и distributed table. Обратите внимание, что поддерживаются не все стратегии — подробнее см. здесь.
Dictionary materializationYES, ExperimentalСоздаёт dictionary.
Loading table...

Примечание: Возможности, разработанные сообществом, помечены как experimental. Несмотря на этот статус, многие из них, например materialized views, широко используются и успешно применяются в продакшене.

Документация

Подробнее об использовании адаптера dbt-clickhouse для управления моделями данных см. в документации ClickHouse.

Вклад в проект

Мы приветствуем вклад сообщества в развитие адаптера dbt-ClickHouse. Будь то исправление ошибки, добавление новой возможности или улучшение документации — любая помощь будет очень полезна!

Пожалуйста, ознакомьтесь с нашим руководством по внесению вклада, чтобы начать работу. В нём приведены подробные инструкции по настройке окружения, запуску тестов и отправке pull request’ов.

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

0
Loading