User-Defined Function Implementation

UDFs can be implemented in any of the following APIs:

Tutorial

The following tutorial details the implementation & execution of distributed User-Defined Functions (UDFs) in the Python API. Also provided are examples of UDFs, including a simple table copy and a more complex integration into a machine-learning library's demo program.

UDF Prerequisites

  • UDFs enabled in /opt/gpudb/core/etc/gpudb.conf:

    enable_procs = true
    
  • User authorization enabled (recommended); see Security Configuration section for details

  • The system_admin role (for managing procs) or Proc Level Permissions (for managing procs as a non-admin). See Security (User/Role Management) for more information on setting roles and permissions

  • Kinetica UDF APIs; these can be downloaded from GitHub. See one of the API references below for installation instructions.

Development

C++

C++ UDF API
A reference for the C++ UDF API
Running C++ UDFs
How to run a C++ UDF in the Kinetica environment
UDF C++ Examples
Complete examples of distributed UDFs

Python

Python UDF API
A reference for the Python UDF API
Running Python UDFs
How to run a Python UDF in the Kinetica environment
UDF Python Examples
Complete examples of distributed UDFs

Simulating UDFs

UDF Simulator
How to simulate running a UDF written in any API

Compatibility

Each UDF API should be compatible with the corresponding minor release of the database; e.g., the Python UDF v7.1 API is compatible with a Kinetica v7.1 database.