Настройка 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 должна выглядеть примерно так:
<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
| 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.
{{
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.