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

Настройка 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:

Аутентификация Bigquery

Вы можете использовать любой метод аутентификации, поддерживаемый в официальном адаптере dbt Bigquery, так как Layer использует адаптер dbt-bigquery для подключения к вашей инстанции Bigquery.

Пример профиля:

profiles.yml
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") }}
0