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. Каждое хранилище данных использует свой механизм указания пакетов. Например:
- 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):
...
$$
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_dataset.is_positive_int(a_string STRING)
RETURNS INT64
LANGUAGE python
OPTIONS(
runtime_version = "python-3.11",
entry_point = "main",
packages = ['numpy', 'pandas==1.5.0']
)
AS r'''
def main(a_string):
...
'''
Связанная документация
- Пользовательские функции
- Свойства функций
- Конфигурации функций
- runtime_version
- entry_point
- type
- volatility
- arguments
- returns
Нашли ошибку?
0