dbt
dbt-selena позволяет использовать dbt для преобразования данных в Selena с применением паттернов моделирования и лучших практик dbt.
dbt-selena GitHub repo.
Поддерживаемые функции
| Selena >= 3.1 | Selena >= 3.4 | Функция |
|---|---|---|
| ✅ | ✅ | Материализация таблиц |
| ✅ | ✅ | Материализация представлений |
| ✅ | ✅ | Материализация материализованных представлений |
| ✅ | ✅ | Инкрементальная материализация |
| ✅ | ✅ | Модель с первичным ключом |
| ✅ | ✅ | Источники |
| ✅ | ✅ | Пользовательские тесты данных |
| ✅ | ✅ | Генерация документации |
| ✅ | ✅ | Партиционирование по выражениям |
| ❌ | ❌ | Kafka |
| ❌ | ✅ | Dynamic Overwrite |
* | ✅ | Submit task |
| ✅ | ✅ | Microbatch (Insert Overwrite) |
| ❌ | ✅ | Microbatch (Dynamic Overwrite) |
* Проверьте поддержку submit task для вашей версии, см. SUBMIT TASK
Установка
Установите адаптер Selena DBT с помощью pip:
pip install dbt-selena
Проверка установки
Проверьте установку, проверив версию:
dbt --version
В списке plugins должен отображаться selena.
Конфигурация
Профили
Создайте или обновите profiles.yml с настройками для Selena.
selena_project:
target: dev
outputs:
dev:
type: selena
host: your-selena-host.com
port: 9030
schema: your_database
username: your_username
password: your_password
catalog: test_catalog
Параметры
type
Описание: Конкретный адаптер для использования, должен быть установлен в selena
Обязательный?: Обязательный
Пример: selena
host
Описание: Имя хоста для подключения
Обязательный?: Обязательный
Пример: 192.168.100.28
port
Описание: Порт для использования
Обязательный?: Обязательный
Пример: 9030
catalog
Описание: Указывает catalog для построения моделей
Обязательный?: Необязательный
Пример: default_catalog
schema
Описание: Указывает schema (база данных в Selena) для построения моделей
Обязательный?: Обязательный
Пример: analytics
username
Описание: Имя пользователя для подключения к серверу
Обязательный?: Обязательный
Пример: dbt_admin
password
Описание: Пароль для аутентификации на сервере
Обязательный?: Обязательный
Пример: correct-horse-battery-staple
version
Описание: Позволяет плагину попытаться использовать совместимую версию selena
Обязательный?: Необязательный
Пример: 3.1.0
use_pure
Описание: установите "true" для использования расширений C
Обязательный?: Необязательный
Пример: true
is_async
Описание: "true" для отправки подходящих задач как etl задач.
Обязательный?: Необязательный
Пример: true
async_query_timeout
Описание: Устанавливает значение query_timeout при отправке задачи в Selena
Обязательный?: Необязательный
Пример: 300
Источники
Создайте или обновите sources.yml
sources:
- name: your_source
database: your_sr_catalog
schema: your_sr_database
tables:
- name: your_table
Если catalog не указан в schema, будет использован catalog, определенный в профиле. Используя профиль из предыдущего примера, если catalog не определен, модель будет считать, что источник находится в test_catalog.your_sr_database.