Comprender el control de locus y los ejecutables analíticos

Los EAs pueden ejecutarse tanto en las SPUs como en el host. Lo mejor es ejecutar una operación en varias SPU frente a un único host, de modo que partes de la operación puedan ejecutarse simultáneamente, utilizando la arquitectura masivamente paralela del dispositivo Netezza. Sin embargo, hay situaciones en las que es deseable ejecutar una operación sólo en el host. Por ejemplo, cuando deba ver todos los datos de todos los segmentos de datos, puede utilizar una función de tabla AE para realizar una operación de tipo agregación. En una consulta única, la salida de los EAs que se ejecutan en las SPUs se convierte en la entrada de otro EA único que se ejecuta en el host. El AE en el host realiza una operación de agregación y devuelve un resultado para la consulta. Depurar en el host es mucho más fácil que depurar en las SPU.

Los EA se llaman desde un sistema de base de datos que realiza la optimización de consultas. A veces, el optimizador de la base de datos elige ejecutar una función en un lugar determinado (SPU o host), lo que significa que el EA también se ejecuta en ese lugar. Las EA y las UDX están sujetas a las mismas normas de localización, pero para las EA el resultado puede ser más problemático, especialmente en el caso de las EA remotas. Los EA pueden utilizarse como extensiones de bases de datos, pero también como mecanismo de procesamiento concurrente, ya que sólo se ejecutan en las SPU. Si un AE remoto se está ejecutando sólo en las SPUs y una consulta o una parte de una consulta se ejecuta inesperadamente en el host, entonces esa consulta se cuelga. Por lo tanto, es útil entender el control de locus antes de escribir un EA. Las siguientes secciones describen el comportamiento de locus de las funciones SQL escalares, de tabla y agregadas.