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

Настройка Infer

Плагин, поддерживаемый поставщиком

Некоторая основная функциональность может отличаться. Если вы хотите сообщить об ошибке, запросить функцию или внести свой вклад, вы можете посетить связанный репозиторий и открыть задачу.

  • Поддерживается: Infer
  • Авторы: Erik Mathiesen-Dreyfus, Ryan Garland
  • Репозиторий на GitHub: inferlabs/dbt-infer
  • Пакет на PyPI: dbt-infer
  • Канал в Slack: n/a
  • Поддерживаемая версия dbt Core: v1.2.0 и новее
  • Поддержка dbt Cloud: Не поддерживается
  • Минимальная версия платформы данных: n/a

Установка dbt-infer

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация dbt-infer

Для конфигурации, специфичной для Infer, пожалуйста, обратитесь к конфигурациям Infer.

Подключение к Infer с помощью dbt-infer

Infer позволяет выполнять продвинутую ML аналитику в SQL, как если бы она была встроена в ваше хранилище данных. Для этого Infer использует вариант, называемый SQL-inf, который определяет набор примитивных ML команд, из которых вы можете строить продвинутый анализ для любых бизнес-задач. Подробнее о SQL-inf и Infer читайте в документации Infer.

Пакет dbt-infer позволяет легко использовать SQL-inf в ваших моделях DBT. Подробнее о самом пакете dbt-infer и о том, как он подключается к Infer, читайте в документации dbt-infer.

Адаптер dbt-infer поддерживается через PyPi и устанавливается с помощью pip. Чтобы установить последнюю версию пакета dbt-infer, просто выполните следующую команду в той же оболочке, где вы запускаете dbt.

pip install dbt-infer

Версионирование dbt-infer следует стандартной схеме версионирования dbt - это означает, что если вы используете dbt 1.2, соответствующий dbt-infer будет называться 1.2.x, где x - это последний номер минорной версии.

Перед использованием SQL-inf в ваших моделях DBT вам нужно создать учетную запись Infer и сгенерировать API-ключ для подключения. Как это сделать, вы можете прочитать в Руководстве по началу работы.

Конфигурация профиля в profiles.yml для dbt-infer должна выглядеть примерно так:

~/.dbt/profiles.yml
<profile-name>:
target: <target-name>
outputs:
<target-name>:
type: infer
url: "<infer-api-endpoint>"
username: "<infer-api-username>"
apikey: "<infer-apikey>"
data_config:
[конфигурация для вашего основного хранилища данных]

Обратите внимание, что вам также нужно установить пакет адаптера для вашего основного хранилища данных. Например, если ваше хранилище данных - это BigQuery, то вам также нужно установить соответствующий пакет dbt-bigquery. Конфигурация этого пакета помещается в поле data_config.

Описание полей профиля Infer

ПолеОбязательноОписание
typeДаДолжно быть установлено в infer. Это должно быть включено либо в profiles.yml, либо в файл dbt_project.yml.
urlДаИмя хоста сервера Infer для подключения. Обычно это https://app.getinfer.io.
usernameДаВаше имя пользователя Infer - то, которое вы используете для входа.
apikeyДаВаш API-ключ Infer.
data_configДаКонфигурация для вашего основного хранилища данных. Формат этой конфигурации следует формату конфигурации для вашего адаптера хранилища данных.

Пример конфигурации Infer

Чтобы проиллюстрировать вышеописанное, вот пример того, как может выглядеть конфигурация dbt-infer. В этом случае основное хранилище данных - это BigQuery, для которого мы настраиваем адаптер внутри поля data_config.

infer_bigquery:
apikey: 1234567890abcdef
username: my_name@example.com
url: https://app.getinfer.io
type: infer
data_config:
dataset: my_dataset
job_execution_timeout_seconds: 300
job_retries: 1
keyfile: bq-user-creds.json
location: EU
method: service-account
priority: interactive
project: my-bigquery-project
threads: 1
type: bigquery

Использование

Вам не нужно ничего менять в ваших существующих моделях DBT при переходе на использование SQL-inf – они будут работать так же, как и раньше – но теперь у вас есть возможность использовать команды SQL-inf как встроенные функции SQL.

Infer поддерживает ряд команд SQL-inf, включая PREDICT, EXPLAIN, CLUSTER, SIMILAR_TO, TOPICS, SENTIMENT. Подробнее о SQL-inf и поддерживаемых командах читайте в Руководстве по SQL-inf.

Чтобы помочь вам начать, мы приведем здесь краткий пример того, как может выглядеть такая модель. Другие более сложные примеры вы можете найти в репозитории примеров dbt-infer.

В нашем простом примере мы покажем, как использовать предыдущую модель 'user_features' для предсказания оттока путем предсказания столбца has_churned.

predict_user_churn.sql
{{
config(
materialized = "table"
)
}}

with predict_user_churn_input as (
select * from {{ ref('user_features') }}
)

SELECT * FROM predict_user_churn_input PREDICT(has_churned, ignore=user_id)

Обратите внимание, что мы игнорируем user_id в предсказании. Это связано с тем, что мы считаем, что user_id может и должен не влиять на наше предсказание оттока, поэтому мы его исключаем. Мы также используем соглашение о сборе входных данных для нашего предсказания в CTE, названном predict_user_churn_input.

0