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

Настройка Infer

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

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

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

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

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

python -m pip install dbt-core dbt-infer

Настройка 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 позволяет легко использовать SQL-inf прямо в ваших моделях dbt.
Подробнее о самом пакете dbt-infer и о том, как он интегрируется с Infer, вы можете прочитать в документации dbt-infer.

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

pip install dbt-infer

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

Перед использованием SQL-inf в ваших dbt-моделях необходимо настроить аккаунт Infer и сгенерировать API-key для подключения.
Подробные инструкции можно найти в Getting Started Guide.

Конфигурация профиля в 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ДаКонфигурация для вашего основного хранилища данных. Формат этой конфигурации следует формату конфигурации для вашего адаптера хранилища данных.
Loading table...

Пример конфигурации 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
Loading