Uso de EAs Map/Reduce en consultas SQL

El marco map/reduce de Netezza Analytics ofrece la posibilidad de invocar mappers y reducers directamente desde nzsql. Existen tres ejecutables analíticos (EA) generales registrados con el cartucho mapreduce en la base de datos inza. Pueden utilizarse en una consulta SQL para ejecutar un mapeador, reductor o combinador concreto a partir de una clase Java. Las EA se registran como Funciones de Tabla Definidas por el Usuario (UDTF) con los siguientes nombres:
  • MapperAE
  • ReducerAE
  • CombinerAE

Estos EA tienen una firma común:

<Tarea>AEK1, ... , Kn, V1, ... , Vm,NZAE_PARAMETER2=<conf.xml>')

donde:
K1, ... , Kn
Las columnas clave.
V1, ... ,Vm
Las columnas de valores,
<conf.xml>
La ruta a un archivo de configuración que contiene todas las propiedades necesarias para ejecutar la tarea.

Propiedades

La siguiente tabla enumera las propiedades disponibles para cada AE.
Tabla 1.
Propiedad Correlacionador Combinador Reductor
mapreduce.job.run.dir OBLIGATORIO
mapreduce.job.jar OBLIGATORIO cuando el puesto de trabajo esté disponible OBLIGATORIO cuando el puesto de trabajo esté disponible OBLIGATORIO cuando el puesto de trabajo esté disponible
mapreduce.job.map.class OBLIGATORIO    
mapreduce.map.input.key.class OBLIGATORIO    
mapreduce.map.input.value.class OBLIGATORIO    
mapreduce.map.output.key.class OBLIGATORIO OBLIGATORIO
mapreduce.map.output.key.columns.sizes OBLIGATORIO    
mapreduce.map.output.value.class OBLIGATORIO OBLIGATORIO
mapreduce.map.output.value.columns.sizes OBLIGATORIO    
mapreduce.job.combine.class OBLIGATORIO OBLIGATORIO  
mapreduce.combine.output.key.class OBLIGATORIO OBLIGATORIO REQUERIDO cuando mapreduce.job.combine.class está definido
mapreduce.combine.output.key.columns.sizes OBLIGATORIO OBLIGATORIO  
mapreduce.combine.output.value.class OBLIGATORIO OBLIGATORIO REQUERIDO cuando mapreduce.job.combine.class está definido
mapreduce.combine.output.value.columns.sizes   OBLIGATORIO  
mapreduce.job.reduce.class     OBLIGATORIO
mapreduce.reduce.output.key.class     OBLIGATORIO
mapreduce.reduce.output.key.columns.sizes     OBLIGATORIO
mapreduce.reduce.output.value.class     OBLIGATORIO
mapreduce.reduce.output.value.columns.sizes     OBLIGATORIO