HuemulSolutions/huemul-bigdatagovernance

Optimización de código

Closed this issue · 4 comments

Revisar posiblidades de optimización de spark

  1. Agrega método getSaveDQErrorOnce en huemul_table. El valor por default es true para mantener el comportamiento de la versión 2.0.1. Este nuevo parámetro permite indicar si se guarda el resultado de todas las reglas de validación en disco una sola vez (true por default), o por el contrario, guarda en disco cada regla de validación que no cumple (error o warning) por separado, esta segunda opción toma un poco más de tiempo, sin embargo en ambientes con memoria limitada permite ejecutar sin que el proceso falle por errores de asignación de spark (shuffle).

  2. Se agrega parámetro a método DF_RunDataQuality (registerDQOnce: Boolean). el parámetro getSaveDQErrorOnce es enviado por huemul_table en forma automática, no es necesario especificar cuando este método es invocado directamente por el desarrollador, debido a que el resultante de DQ no es almacenado en una estructura de tabla.

  1. Se agrega BROADCAST para obtener el detalle de fallos por PK (step2)

Agrega parámetro getHiveMetadata, "false" indica que no obtendrá el detalle de metadata desde Hive, es útil para probar en ambientes de desarrollo.

Agrega método broadcastJoin para forzar broadcast al hacer join en validación de FK.

Ejemplo al definir una relación en una tabla:

    val itbl_DatosBasicos = new tbl_DatosBasicos(HuemulLib,Control)
    val fk_tbl_DatosBasicos = new huemul_Table_Relationship(itbl_DatosBasicos, false).broadcastJoin(true)
  fk_tbl_DatosBasicos.AddRelationship(itbl_DatosBasicos.TipoValor , TipoValor)