Подключение к ClickHouse Закрытая бета-версия Совместимо с dbt v2
dbt v2 в dbt platform поддерживает подключение к ClickHouse Cloud и к самостоятельно управляемым одноузловым экземплярам ClickHouse. Для среды, использующей это подключение, выберите канал выпуска dbt v2.
Подключения к ClickHouse в v2 находятся на этапе закрытого бета-тестирования и не готовы к использованию в производственных средах. Чтобы запросить доступ, свяжитесь с представителем, который ведёт вашу учётную запись. Возможны небольшие ошибки, поэтому пока не используйте эти подключения в производственных средах. Перед подключением ознакомьтесь с разделом Ограничения.
Права доступа к хранилищу для dbt v2
Пользователь ClickHouse, от имени которого подключается dbt v2, должен иметь возможность выполнять рабочие нагрузки dbt в целевой базе данных и читать системные таблицы, используемые для интроспекции.
Необходимые объекты ClickHouse
Перед подключением следующие объекты должны существовать или быть доступны:
| Объект | Назначение |
|---|---|
| Сервис (ClickHouse Cloud) или сервер (самостоятельно управляемый, с одним узлом) | Вычислительный ресурс |
| База данных | Целевая база данных. В ClickHouse нет отдельного уровня схем, поэтому schema в dbt соответствует базе данных |
| Пользователь | Пользователь базы данных для аутентификации |
Основные права доступа
Для основных возможностей dbt требуются следующие права доступа:
| Право доступа | Объект | Назначение |
|---|---|---|
SELECT | Таблицы и представления | Чтение данных |
INSERT | Таблицы | Загрузка моделей, seed-файлов и снимков |
ALTER | Таблицы | Изменение схемы (on_schema_change), индексы и проекции, комментарии (persist_docs), REPLACE PARTITION (insert_overwrite) и легковесные удаления (delete+insert) |
TRUNCATE | Таблицы | Полное обновление данных из seed-файлов |
CREATE TABLE, CREATE VIEW, CREATE DICTIONARY | База данных | Создание материализаций, включая промежуточные и резервные объекты, используемые для атомарного пересоздания (EXCHANGE TABLES, RENAME TABLE) |
DROP TABLE, DROP VIEW, DROP DICTIONARY | База данных | Удаление или замена объектов |
Операции с метаданными
dbt v2 читает следующие системные таблицы ClickHouse:
| Системная таблица | Назначение |
|---|---|
system.tables | Получение списка объектов, построение каталога, обнаружение материализованных представлений, ссылающихся на таблицу |
system.columns | Метаданные столбцов для каталога и обнаружения изменений схемы |
system.databases | Проверка существования целевой базы данных |
system.settings | Проверка доступности возможностей (легковесные удаления, insert_distributed_sync) |
system.view_refreshes | Проверка зависимостей обновляемых материализованных представлений |
ClickHouse фильтрует системные таблицы, оставляя только объекты, к которым у пользователя есть доступ, поэтому отдельно предоставлять права на эти таблицы не требуется.
Управление базами данных
Права доступа для управления базами данных, необходимые при определённых условиях:
| Право доступа | Объект | Когда требуется |
|---|---|---|
CREATE DATABASE | Сервер | Автоматическое создание целевой базы данных, если она ещё не существует |
Полное описание модели привилегий см. в разделе Управление доступом в документации ClickHouse.
Поля подключения
При создании подключения к ClickHouse настройте следующие поля.
| Поле | Описание | Тип | Обязательное? | Пример |
|---|---|---|---|---|
| Server Hostname | URL конечной точки ClickHouse Cloud. Не указывайте https:// и порт. Скопируйте адрес из раздела Connect в консоли ClickHouse Cloud. | Строка | Да | abc123.us-east-1.aws.clickhouse.cloud |
| Port | Порт для подключения. Адаптер dbt для ClickHouse подключается по HTTPS. Используйте порт 8443. Порт 9440 (нативный протокол) не поддерживается адаптером. | Строка | Нет | 8443 |
| Database | Имя базы данных для подключения. | Строка | Нет | default |
После сохранения подключения настройте среду разработки:
- Создайте новый проект или откройте существующий.
- В настройках проекта выберите Environments в меню слева и откройте свою среду разработки.
- В разделе Connection выберите только что созданное подключение к ClickHouse.
- Сохраните среду.
Учётные данные для разработки и развёртывания
Каждый разработчик вводит личные учётные данные для разработки в разделе Your profile → Credentials. Для ClickHouse Cloud скопируйте имя пользователя и пароль из диалогового окна Connect в консоли ClickHouse Cloud. Обычно используется имя пользователя default.
| Поле | Описание | Тип | Обязательное? | Пример |
|---|---|---|---|---|
| Username | Имя пользователя базы данных. | Строка | Да | default |
| Password | Пароль базы данных. | Строка | Нет | DatabasePassword123 |
| Schema | При разработке dbt создаёт ваши модели в схеме с этим именем. Используйте схему, уникальную для вашей личной среды разработки. | Строка | Да | dbtlabsdocstest |
| Target name | Имя целевой конфигурации для этих учётных данных. | Строка | Нет | default |
| Threads | Количество потоков для выполнения операций dbt. | Целое число | Нет | 4 |
Настройка
О том, как оптимизировать производительность с помощью настроек dbt, специфичных для платформы данных, см. в разделе Настройки ClickHouse.
Описание полей профиля ClickHouse, которым соответствуют поля подключения, см. в разделе Настройка ClickHouse.
Ограничения
Подключение к ClickHouse находится на этапе закрытого бета-тестирования. В частности, в dbt platform:
- Semantic Layer dbt пока не поддерживается для подключений к ClickHouse.
- Доступна только аутентификация по имени пользователя и паролю. OAuth, аутентификация с помощью пары ключей, SSH-туннелирование и подключение по частной сети пока не поддерживаются для ClickHouse.
Здесь также действуют ограничения адаптера ClickHouse для dbt v2, включая ограничения в поддержке кластеров, предоставления прав доступа, dbt clone, dbt source freshness и анализа SQL. Полную информацию см. в разделе Ограничения ClickHouse.


