UDX

La capacidad de funciones definidas por el usuario de Netezza se implementó para ampliar SQL y proporcionar funcionalidades avanzadas y personalizadas. La compatibilidad de Netezzacon las funciones definidas por el usuario sigue en general el modelo utilizado en el estándar SQL 2003 para las rutinas invocadas SQL. El término UDX se utiliza como referencia genérica a las funciones escalares, de tabla y agregadas definidas por el usuario de Netezza. Las UDX proporcionan la funcionalidad correspondiente a las tres categorías de funciones incorporadas. Para más información, consulte Funciones SQL.

Tabla 1.
función SQL Función UDX
Funciones escalares Funciones definidas por el usuario o UDF
Funciones de tabla Funciones de tabla definidas por el usuario (UDTF)
Funciones de adición Agregados definidos por el usuario o UDA

Las UDX le permiten crear estas funciones personalizadas para realizar tipos específicos de análisis para sus informes empresariales y consultas de datos. Las funciones definidas por el usuario y los agregados deben estar escritos en C++. Aunque pueden utilizar toda la biblioteca estándar de C (LIBC), deben evitar las llamadas de comunicación entre procesos (IPC) y otras operaciones de bajo nivel.

Funciones definidas por el usuario

Una función definida por el usuario (UDF) es un código suministrado por el usuario que el sistema Netezza ejecuta en respuesta a la sintaxis de invocación SQL. Una función definida por el usuario es una función escalar; es decir, devuelve un valor por cada fila de entrada.

Una invocación UDF puede aparecer en cualquier lugar dentro de una sentencia SQL donde pueda aparecer una función incorporada, incluyendo restricciones (cláusulas WHERE), condiciones join, proyecciones (SELECT from lists) y condiciones HAVING. Una UDF puede aceptar cero o más valores de entrada pero produce un único valor de salida. Los valores de entrada para una UDF pueden ser literales, referencias de columna o expresiones. Los tipos de datos de entrada y salida deben ser tipos de datos incorporados de Netezza.

funciones de tabla definidas por el usuario

Una función de tabla definida por el usuario (UDTF) es una función que puede invocarse en una cláusula FROM de una sentencia SQL. Una función de tabla puede aparecer en una cláusula SQL en casi cualquier lugar donde normalmente aparece una tabla. Devuelve una forma de tabla con columnas que tienen nombres y tipos. A diferencia de la naturaleza escalar de una UDF, una función de tabla puede devolver cero o más filas por cada fila de entrada. Una función de tabla puede invocarse con argumentos, incluidos literales y expresiones no literales que contengan columnas de otras tablas.

Las funciones de tabla pueden utilizarse para tareas como expandir los datos de una fila en muchas filas, producir resúmenes combinando datos de muchas filas, crear resúmenes personalizados en forma de tabla o realizar operaciones de "desagregación" como combinar los datos de varias tablas relacionadas en una nueva tabla combinada.
Nota: Una UDTF debe invocarse con al menos un argumento.

agregados definidos por el usuario

Un agregado definido por el usuario (UDA) es un código suministrado por el usuario que implementa, en el sistema Netezza, las distintas fases de la evaluación de agregados, como la inicialización, la acumulación y la fusión.

Los UDA proporcionan nuevos tipos de funciones de agregación para ampliar los agregados incorporados, como count(), sum(), avg(), max() o min(). Aunque los UDA pueden tomar múltiples argumentos, en términos de salida son escalares y sólo producen un valor de salida. Los UDA se pueden utilizar en una sentencia SQL en cualquier lugar donde pueda aparecer un agregado incorporado como agregados generales, agrupados o por ventanas.