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

packages

💡Полезно знать
Доступно начиная с dbt v1.12 или в канале релизов v1 Latest.
functions/<filename>.yml
functions:
- name: <function name>
config:
packages: [<string>] # optional, Python UDFs only

Определение​

При создании UDF на Python можно использовать необязательную конфигурацию packages, чтобы указать общедоступные сторонние пакеты PyPI. Можно перечислить имена пакетов (например, numpy и pandas) и закрепить их версии (например, pandas==1.5.0). Хранилище данных устанавливает эти пакеты при создании UDF, чтобы функция могла использовать возможности внешних библиотек Python.

В Snowflake некоторые пакеты устанавливаются из репозитория Anaconda, и для их использования может потребоваться принять условия обслуживания Anaconda.

В настоящее время UDF на Python поддерживаются в Snowflake и BigQuery. Каждое хранилище данных использует свой механизм указания пакетов. Например:

functions/schema.yml
functions:
- name: is_positive_int
description: Returns 1 if a_string matches ^[0-9]+$, else 0
config:
runtime_version: "3.11"
entry_point: main
packages:
- numpy
- pandas==1.5.0
arguments:
- name: a_string
data_type: string
returns:
data_type: integer

Скомпилированный SQL:

CREATE OR REPLACE FUNCTION my_schema.is_positive_int(a_string STRING)
RETURNS INTEGER
LANGUAGE PYTHON
RUNTIME_VERSION = '3.11'
HANDLER = 'main'
PACKAGES = ('numpy','pandas==1.5.0')
AS $$
def main(a_string):
...
$$

Связанная документация​

Нашли ошибку?

0
Loading