HuemulSolutions / huemul-bigdatagovernance

Huemul BigDataGovernance, es una framework que trabaja sobre Spark, Hive y HDFS. Permite la implementación de una estrategia corporativa de dato único, basada en buenas prácticas de Gobierno de Datos. Permite implementar tablas con control de Primary Key y Foreing Key al insertar y actualizar datos utilizando la librería, Validación de nulos, largos de textos, máximos/mínimos de números y fechas, valores únicos y valores por default. También permite clasificar los campos en aplicabilidad de derechos ARCO para facilitar la implementación de leyes de protección de datos tipo GDPR, identificar los niveles de seguridad y si se está aplicando algún tipo de encriptación. Adicionalmente permite agregar reglas de validación más complejas sobre la misma tabla.
Apache License 2.0
11 stars 7 forks source link

Optimización de código #63

Closed sebasrod closed 5 years ago

sebasrod commented 5 years ago

Revisar posiblidades de optimización de spark

sebasrod commented 5 years ago
  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.

sebasrod commented 5 years ago
  1. Se agrega BROADCAST para obtener el detalle de fallos por PK (step2)
sebasrod commented 5 years ago

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

sebasrod commented 5 years ago

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)