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.
Propiedad | Correlacionador | Combinador | Reductor |
---|---|---|---|
mapreduce.job.run.dir | OBLIGATORIO | SÍ | SÍ |
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 | SÍ |
mapreduce.map.output.key.columns.sizes | OBLIGATORIO | ||
mapreduce.map.output.value.class | OBLIGATORIO | OBLIGATORIO | SÍ |
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 |