Настройка Layer
- Поддерживается: Layer
- Авторы: Mehmet Ecevit
- Репозиторий на GitHub: layerai/dbt-layer
- Пакет на PyPI:
dbt-layer-bigquery
- Канал в Slack: #tools-layer
- Поддерживаемая версия dbt Core: v1.0.0 и новее
- Поддержка dbt Cloud: Not Supported
- Минимальная версия платформы данных: n/a
Установка dbt-layer-bigquery
Используйте pip
для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core
и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core
. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
Конфигурация dbt-layer-bigquery
Для конфигурации, специфичной для Layer, пожалуйста, обратитесь к конфигурациям Layer.
Конфигурация профиля
Цели Layer Bigquery должны быть настроены с использованием следующих секций в вашем файле profiles.yml
.
Аутентификация Layer
Добавьте ваш layer_api_key
в profiles.yaml
для аутентификации с Layer. Чтобы получить ваш Layer API Key:
- Сначала создайте бесплатный аккаунт Layer.
- Перейдите на app.layer.ai > Settings (значок шестеренки рядом с вашей фотографией профиля) > Developer > Create API key, чтобы получить ваш Layer API Key.
Аутен тификация 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') }}