CONFIGURACIÓN DEL CONTROL DE ERRORES EN ANALYSIS SERVICES
Errores y calidad de datos
En este post vamos a examinar las propiedades de la configuración del control de errores en Analysis Services y sus opciones.
Cuando procesamos un cubo desarrollado en Analysis Services, frecuentemente nos encontramos con errores.
Si los errores son provocados por un mal diseño no queda más remedio que encontrarlos y corregirlos. Sin embargo hay otros errores que tienen que ver con los datos y que es difícil eliminar por completo por no decir imposible.
A lo largo de nuestra trayectoria, en Consultoría Certia, nos hemos encontrado frecuentemente con estos problemas. A fin de cuentas, como leí alguna vez: no hay datos limpios, hay datos más o menos sucios.
Estos problemas de calidad de datos pueden provocar diferentes errores al procesar un cubo y disponemos de varias propiedades y opciones para gestionarlos.
Dónde configurar el control de errores
Para llevar a cabo la configuración del control de errores en Analysis Services, podemos optar por varios sitios dentro de nuestro proyecto: a nivel de cubo, de grupo de medidas, de partición o de dimensión. La configuración es heredada desde el objeto de nivel superior a los objetos de nivel inferior ej. un grupo de medidas heredará la configuración del cubo a que pertenece.
Sin embargo, siempre podemos cambiar esa configuración heredada si algún objeto de nuestro proyecto lo requiere.
Propiedades generales
Para comenzar tenemos una propiedad para fijar el máximo de errores de claves que tolerará el proceso. Se trata de KeyErrorLimit
KeyErrorLimit por defecto viene a 0 indicando que el proceso no tolera errores, sin embargo podemos subirlo a la cantidad que deseemos o ponerlo a -1 para indicar que no hay límite de errores.
Esta propiedad tiene asociada otra, KeyErrorLimitAction, que nos permite elegir qué ocurrirá cuando se alcance el límite de errores. las dos opciones que se nos ofrecen son:
StopProcessing: el proceso se detiene debido a los errores
StopLogging: dejan de registrarse los errores
Dicho registro puede redirigirse a un fichero para poder ser revisado con más calma. La ruta y nombre de ese fichero se puede indicar mediante la propiedad KeyErrorLogFile
Clases de errores
Veamos a ver ahora los diferentes errores que se pueden producir:
- Código de la pestaña Cálculos donde se definen medidas, conjuntos etc.
- Clave de dimensión; pueden ser los siguientes:
- Duplicada: se produce cuando para una clave externa en la tabla de hechos, se encuentra más de un miembro en la dimensión
- No encontrada: se produce cuando para una clave externa en la tabla de hechos, no se encuentra ningún miembro en la dimensión
- Clave NULL: se produce cuando la propiedad NullProcessing de una medida se configura a Error y una clave externa en la tabla de hechos tiene valor NULL
ERROR | PROPIEDAD |
---|---|
Error de cálculo | CalculationError |
Clave duplicada | KeyDuplicate |
Clave no encontrada | KeyNotFound |
KeyErrorAction | |
Clave NULL | NullKeyNotAllowed |
NullKeyConvertedToUnknown |
Acciones ante el error
Cada una de estas propiedades nos ofrece tres opciones:
IgnoreError: el error ni se cuenta ni se registra y el proceso continua
ReportAndContinue: se cuenta, se registra y el proceso continua
ReportAndStop; el proceso se detiene. El error se cuenta y se registra
El error de clave no encontrada tiene asociada otra propiedad: KeyErrorAction.
Esta propiedad nos permite decir qué hacer con esas claves no encontradas (o con sus registros) sean NULL o sean otro valor cuando hemos configurado la propiedad KeyNotFound como ReportAndContinue
Las opciones son:
DiscardRecord: El registro de la tabla de hechos es ignorado por el proceso
ConvertToUnknown: El registro se asocia con el miembro desconocido de la dimensión si este está activado
Vemos que NullKeyConvertedToUnknown es un caso especial de tratamiento del error de clave no encontrada.
El equipo de Certia espera que esta entrada os haya sido de utilidad.
Hasta la próxima