entry_point
💡Did you know...
Available from dbt v1.11 or with the dbt "Latest" release track.
functions/<filename>.yml
functions:
- name: <function name>
config:
entry_point: <string> # обязательно для Python UDF
Определение
При создании Python UDF необходимо указать Python‑функцию, которая будет вызываться, с помощью параметра entry_point.
В настоящее время Python UDF поддерживаются в Snowflake и BigQuery. В каждом хранилище данных используется своё название для функции точки входа. В следующей таблице показано, как именно используется entry_point:
| Loading table... |
Пример
Например, если у вас есть Python UDF в файле functions/my_function.py со следующим кодом, где функция main используется в качестве точки входа:
functions/my_function.py
import re
def _digits_only(s: str) -> bool:
return bool(re.search(r'^[0-9]+$', s or ''))
def _to_flag(is_match: bool) -> int:
return 1 if is_match else 0
def main(a_string: str) -> int:
"""
This is used as the entry point for the UDF.
Returns 1 if a_string represents a positive integer (e.g., "10"),
else 0.
"""
return _to_flag(_digits_only(a_string))
После определения UDF вы можете указать main в качестве значения entry_point в YAML‑файле. Значение entry_point: main указывает на функцию main как на точку входа для UDF, тогда как _digits_only и _to_flag являются вспомогательными функциями.
functions/schema.yml
functions:
- name: is_positive_int
description: Returns 1 if a_string matches ^[0-9]+$, else 0
config:
runtime_version: "3.11" # required
entry_point: main # required: points to the function above
arguments:
- name: a_string
data_type: string
returns:
data_type: integer
Связанная документация
- Пользовательские функции (UDF)
- Свойства функций
- Конфигурации функций
- Type
- Volatility
- runtime_version
- Аргументы
- Returns
Нашли ошибку?
0