Подключение Layer к dbt v1
- Поддерживается: Layer
- Авторы: Mehmet Ecevit
- Репозиторий GitHub: layerai/dbt-layer
- Пакет PyPI:
dbt-layer-bigquery - Канал Slack: #tools-layer
- Поддерживаемая версия dbt: v1.0.0 и новее
- Поддержка dbt: Не поддерживается
- Минимальная версия платформы данных: n/a
Установка dbt-layer-bigquery
Установите адаптер с помощью `pip`:python -m pip install dbt-layer-bigquery
Настройка dbt-layer-bigquery
Конфигурацию, специфичную для Layer, см. на странице настроек Layer.
Конфигурация профиля
Цели Layer Bigquery должны быть настроены с использованием следующих секций в вашем файле profiles.yml.
Аутентификация в BigQuery
Вы можете использовать любой метод аутентификации, поддерживаемый официальным адаптером dbt для BigQuery, поскольку Layer использует адаптер dbt-bigquery для подключения к вашему экземпляру BigQuery.
Пример профиля:
layer-profile:
target: dev
outputs:
dev:
# Аутентификация Layer
type: layer_bigquery
layer_api_key: [API Key для доступа к вашему аккаунту Layer (опционально)]
# Аутентификация Bigquery
method: service-account
project: [ID проекта GCP]
dataset: [название вашего набора данных dbt]
threads: [1 или более]
keyfile: [/путь/к/bigquery/keyfile.json]
Описание полей профиля Layer Bigquery
Следующие поля являются обязательными:
| Параметр | По умолчанию | Тип | Описание |
|---|---|---|---|
type | строка | Указывает адаптер, который вы хотите использовать. Должен быть layer_bigquery. | |
layer_api_key | строка (опц) | Указывает ваш Layer API key. Если вы хотите делать предсказания с использованием публичных ML моделей из Layer, вам не нужно иметь этот ключ в вашем профиле. Он необходим, если вы загружаете ML модели из вашего аккаунта Layer или обучаете модель AutoML. | |
layer_project | строка (опц) | Указывает ваш целевой проект Layer. Если не указано, Layer будет использовать проект с тем же именем, что и ваш проект dbt. | |
method | строка | Указывает тип аутентификации для подключения к вашему BigQuery. |
Остальные параметры зависят от указанного вами метода аутентификации BigQuery.
Использование
AutoML
Вы можете автоматически создавать передовые ML модели, используя ваши собственные dbt модели с помощью простого SQL. Чтобы обучить модель AutoML, все, что вам нужно сделать, это передать тип модели, входные данные (фичи) и целевой столбец, который вы хотите предсказать, в layer.automl() в вашем SQL. Layer AutoML выберет модель с наилучшей производительностью и позволит вам вызывать ее по имени модели dbt для предсказаний, как показано выше.
Синтаксис:
layer.automl("MODEL_TYPE", ARRAY[FEATURES], TARGET)
Параметры:
| Синтаксис | Описание |
|---|---|
MODEL_TYPE | Тип модели, которую вы хотите обучить. Есть два варианта: - classifier: Модель для предсказания классов/меток или категорий, таких как обнаружение спама- regressor: Модель для предсказания непрерывных результатов, таких как предсказание CLV. |
FEATURES | Имена входных столбцов в виде списка для обучения вашей модели AutoML. |
TARGET | Целевой столбец, который вы хотите предсказать. |
Требования:
- Вам нужно добавить
layer_api_keyв ваш профиль dbt, чтобы AutoML работал.
Пример:
Посмотрите Проект AutoML для обзора заказов:
SELECT order_id,
layer.automl(
-- Это задача регрессии
'regressor',
-- Данные (входные фичи) для обучения нашей модели
ARRAY[
days_between_purchase_and_delivery, order_approved_late,
actual_delivery_vs_expectation_bucket, total_order_price, total_order_freight, is_multiItems_order,seller_shipped_late],
-- Целевой столбец, который мы хотим предсказать
review_score
)
FROM {{ ref('training_data') }}
Предсказание
Вы можете делать предсказания, используя любую ML модель Layer в ваших dbt моделях. Адаптер Layer dbt помогает вам оценивать ваши данные, находящиеся в вашем хранилище, в рамках вашего dbt DAG с помощью SQL.
Синтаксис:
layer.predict("LAYER_MODEL_PATH", ARRAY[FEATURES])
Параметры:
| Синтаксис | Описание |
|---|---|
LAYER_MODEL_PATH | Это путь к модели Layer в формате /[organization_name]/[project_name]/models/[model_name]. Вы можете использовать только имя модели, если хотите использовать модель AutoML в том же проекте dbt. |
FEATURES | Это столбцы, которые требуются этой модели для предсказания. Вы должны передать столбцы в виде списка, например ARRAY[column1, column2, column3]. |
Пример:
Посмотрите Проект по обнаружению одежды:
SELECT
id,
layer.predict("layer/clothing/models/objectdetection", ARRAY[image])
FROM
{{ ref("products") }}