SELECT
statement to return the output of the function as a query result set.
Package management for Python UDFs is available via the UDF environment feature.
UDF/UDTF features accessible via SQL include:
- CREATE FUNCTION
- Executing Functions
- DROP FUNCTION
- SHOW FUNCTION
- SHOW FUNCTION STATUS
- DESCRIBE FUNCTION
- CREATE FUNCTION ENVIRONMENT
- ALTER FUNCTION ENVIRONMENT
- DROP FUNCTION ENVIRONMENT
- SHOW FUNCTION ENVIRONMENT
- DESCRIBE FUNCTION ENVIRONMENT
CREATE FUNCTION
Creates a new UDF/UDTF with the given options. A UDTF is simply a UDF defined to return a single table, using theRETURNS TABLE clause.
CREATE FUNCTION Syntax
Parameters
OR REPLACE
OR REPLACE
Any existing UDF with the same name will be dropped before creating this one
<function name>
<function name>
Name of the UDF, which can be referenced in subsequent commands
RETURNS TABLE
RETURNS TABLE
Specifies that the UDF returns a table after execution and defines the column names and types
to which the function’s output data is expected to conform
This defines the UDF as a User-Defined Table Function (UDTF), which allows
the function to be called within a SQL query; see
Executing Functions for details.
MODE
MODE
Name of the execution mode for the UDF; the following modes are available:
| Constant | Description |
|---|---|
DISTRIBUTED | The function’s processing will be distributed among the nodes in the cluster |
NONDISTRIBUTED | The function’s processing will be completed on a single node in the cluster |
RUN_COMMAND
RUN_COMMAND
The command used to execute the files associated with the UDF; e.g.,
pythonRUN_COMMAND_ARGS
RUN_COMMAND_ARGS
The arguments supplied alongside the given
RUN_COMMAND; e.g.:FILE PATHS
FILE PATHS
A comma-separated list of single-quoted file paths from which the function and any additional
files will be loaded; the file paths should be KiFS locations and exist
prior to the UDF/UDTF creation.
WITH OPTIONS
WITH OPTIONS
Optional indicator that a comma-delimited list of option/value assignments will follow
| Option | Description |
|---|---|
max_concurrency_per_node | The maximum number of concurrent instances of the function that will be executed per node. Setting to 0 allows unlimited concurrency. The default value is 0. |
set_environment | The Python UDF environment to use for this Python UDF. |
Examples
Before creating a UDF/UDTF, upload the function file, udf_st.py to a new directory, udf, in KiFS:Create UDF Directory Example
UPLOAD UDF FILE Example
udf_st UDF that uses that file:
CREATE FUNCTION (UDF) Example
CREATE FUNCTION (UDTF) Example
Executing Functions
An existing UDF/UDTF can be executed using theEXECUTE FUNCTION command. Additionally, a
UDTF can be executed as a table function
within a SELECT statement.
Execute UDF/UDTF Syntax
Execute UDTF Table Function Syntax
<function name> should be the name of an existing UDF.
Function Parameters
The following are the available function parameters that may be passed to a UDF in anEXECUTE FUNCTION or table function call, along with their
corresponding function values.
INPUT_TABLE_NAMES
INPUT_TABLE_NAMES
Optional set of “tables” that will be used as input to the UDF/UDTF, specified as a set of
queries defining the source data for each “table”. The value of this parameter is either the
INPUT_TABLE or INPUT_TABLES function, depending on the number of input “tables”.| Value | Description |
|---|---|
INPUT_TABLE(<query>) | If only one input table is needed, it can be passed by query or by name to the INPUT_TABLE function; e.g.: |
INPUT_TABLES(<queries>) | If more than one input table is needed, each can be passed via query as a list to the INPUT_TABLES function; e.g.: |
OUTPUT_TABLE_NAMES
OUTPUT_TABLE_NAMES
Optional set of tables that will be used as output, specified as a set of names passed as a
comma-delimited list of strings to the
OUTPUT_TABLES function; e.g.:PARAMS
PARAMS
Optional list of parameters to pass to the function, specified as a set of key/value pairs
passed as a comma-delimited list of
<key> = '<value>' assignments to the KV_PAIRS
function; e.g.:OPTIONS
OPTIONS
Optional list of function execution options, specified as a set of key/value pairs passed as a
comma-delimited list of All valid options from Execute Proc
can be used here.
<key> = '<value>' assignments to the KV_PAIRS function; e.g.:Examples
To execute theudf_st UDF, specifying an input and output table and the hint
to save runtime statistics:
Execute UDF Example
UDTF_ST UDTF, specifying an input table and
returning the output as the result set of a SELECT statement:
Execute UDTF Table Function Example
DROP FUNCTION
Removes an existing UDF/UDTF.DROP FUNCTION Syntax
Parameters
<function name>
<function name>
Name of the UDF to remove
Examples
To drop theUDF_SOS_PY_PROC UDF:
DROP FUNCTION Example
SHOW FUNCTION
Outputs the configuration of one or more existing UDFs/UDTFs. Users withSYSTEM ADMIN or ADMIN
permission on the UDF (or all UDFs) will see the entire UDF configuration, while
users with EXECUTE permissions will only see the name of the UDF & its
execution mode.
SHOW FUNCTION Syntax
Parameters
<function name>
<function name>
Name of the UDF whose configuration will be output. Use
* instead to output the DDL of
all UDFs.The response to
SHOW FUNCTION is a single-column result set
with the DDL statement as the value in the DDL column.Examples
To show theUDF_SOS_PY_PROC UDF:
SHOW FUNCTION Example
SHOW FUNCTION STATUS
Outputs the status of one or more running, or previously running, UDFs/UDTFs. Users withSYSTEM ADMIN or ADMIN
permission on all UDFs will see all current & historical UDF runs, while users
with EXECUTE or ADMIN permissions on individual UDFs will only see the
current & historical runs for UDFs/UDTFs that they have executed themselves.
Historical run data is preserved when a UDF/UDTF is executed with the
KI_HINT_SAVE_UDF_STATS hint.
SHOW FUNCTION STATUS Syntax
Parameters
VERBOSE
VERBOSE
Specifies verbose output mode. This modifies the response as noted below.
FOR '<run ID>'
FOR '<run ID>'
Specifies that only the status of UDF/UDTF execution with run ID
<run ID> should be output.The response to
SHOW FUNCTION STATUS depends on whether the
VERBOSE option was specified.-
No
VERBOSE- output is a three-column result set:FUNCTION_NAME- name of the UDF/UDTFRUN_ID- ID associated with a given execution of the UDF/UDTFOVERALL_STATUS- completion status of UDF/UDTF
-
VERBOSE- output is a single-column, single-row result set with a list of all UDF/UDTF statuses, each as a formatted block of information in theFUNCTION_STATUSEScolumn
Examples
To show the status of all UDF/UDTF runs:SHOW FUNCTION STATUS Example
SHOW FUNCTION STATUS By Run ID Example
DESCRIBE FUNCTION
Displays the attributes of the given UDF/UDTF in tabular format. Users withSYSTEM ADMIN
or ADMIN permission on the UDF (or all UDFs) will see the entire UDF
configuration, while users with EXECUTE permissions will only see the name
of the UDF & its execution mode.
DESCRIBE FUNCTION Syntax
Parameters
<function name>
<function name>
Name of the UDF whose attributes will be output. Use
* instead to output the attributes
of all UDFs.Response
The response toDESCRIBE FUNCTION is a six-column result set:
| Output Column | Description |
|---|---|
FUNCTION_NAME | Name of the UDF/UDTF |
MODE | Execution mode of the function; distributed or nondistributed |
RUN_COMMAND | Command used to run the function |
RUN_COMMAND_ARGS | Command arguments used to run the function |
FILE_PATHS | List of files involved in the execution of the function |
WITH_OPTIONS | List of key/value pairs of options used to create the function |
Examples
To describe theUDF_SOS_PY_PROC UDF:
DROP FUNCTION Example
CREATE FUNCTION ENVIRONMENT
Creates a new function environment for UDFs/UDTFs written using the Python UDF API, where any packages required by the Python UDF can be installed and used. Packages can be installed with the ALTER FUNCTION ENVIRONMENT command.CREATE FUNCTION ENVIRONMENT Syntax
UDFs running with no function environment specified run in the
default function environment,
kinetica-default-environment. See
Pre-installed Libraries on the Cluster for the list of pre-installed Python packages.Parameters
OR REPLACE
OR REPLACE
Any existing UDF environment with the same name will be dropped before creating this one
<environment name>
<environment name>
Name of the UDF environment, which can be referenced in subsequent commands
Examples
To create the Python UDF environmentudfe_st:
CREATE FUNCTION ENVIRONMENT Example
ALTER FUNCTION ENVIRONMENT
Manages the installed Python packages associated with the given Python UDF/UDTF environment. Packages are given as a space-separated list of names; and for installations, an optional version number per package can be specified.ALTER FUNCTION ENVIRONMENT (Install Package) Syntax
ALTER FUNCTION ENVIRONMENT (Uninstall Package) Syntax
Parameters
<environment name>
<environment name>
Name of the UDF environment to manage
<package name>
<package name>
Name of the Python package to install into or uninstall from the UDF environment
<package version>
<package version>
Version number of the Python package to install
Examples
To install thesentence-transformers package into the Python UDF environment
udfe_st:
Install Python Package Example
sentence-transformers package from the Python UDF
environment udfe_st:
Uninstall Python Package Example
DROP FUNCTION ENVIRONMENT
Removes an existing Python UDF/UDTF environment.DROP FUNCTION ENVIRONMENT Syntax
Parameters
<environment name>
<environment name>
Name of the UDF environment to remove
Examples
To remove the Python UDF environmentudfe_st:
DROP FUNCTION ENVIRONMENT Example
SHOW FUNCTION ENVIRONMENT
Outputs the CREATE FUNCTION ENVIRONMENT statement used to create the given Python UDF/UDTF environment(s).SHOW FUNCTION ENVIRONMENT Syntax
The response to
SHOW FUNCTION ENVIRONMENT is a single-column
result set with the DDL statement as the value in the DDL column.Parameters
<environment name>
<environment name>
Name of the UDF environment whose
CREATE statement will be output. Use * instead to
output the CREATE statements of all UDF environments.Examples
To show the Python UDF environmentudfe_st:
SHOW FUNCTION ENVIRONMENT Example
SHOW FUNCTION ENVIRONMENT (All Environments) Example
DESCRIBE FUNCTION ENVIRONMENT
Displays the Python package listing for the given Python UDF/UDTF environment(s).DESCRIBE FUNCTION ENVIRONMENT Syntax
Parameters
<environment name>
<environment name>
Name of the UDF environment whose Python packages will be output. Use
* instead to output
the Python packages of all UDF environments.Response
The response toDESCRIBE FUNCTION ENVIRONMENT is a two-column result set:
| Output Column | Description |
|---|---|
ENVIRONMENT_NAME | Name of the function environment |
PACKAGES | Names & versions of the Python packages installed in the function environment; this includes both user-installed packages and those installed by default |
Examples
To list the packages in the Python UDF environmentudfe_st:
DESC FUNCTION ENVIRONMENT Example
DESC FUNCTION ENVIRONMENT (All Environments) Example