Compartir a través de


Configuración de errores para el procesamiento de cubos, particiones y dimensiones (SSAS - Multidimensional)

Las propiedades de configuración de errores en objetos de cubo, partición o dimensión determinan cómo responde el servidor cuando se producen errores de integridad de datos durante el procesamiento. Las claves duplicadas, las claves que faltan y los valores NULL en una columna de clave suelen desencadenar estos errores y, mientras que el registro que provoca el error no se agregará a la base de datos, puede establecer propiedades que determinen lo que sucede a continuación. De forma predeterminada, el procesamiento se detiene. Sin embargo, durante el desarrollo de cubos, es posible que desee que el procesamiento continúe cuando se produzcan errores para que pueda probar los comportamientos del cubo con datos importados, incluso si está incompleto.

Este tema incluye las siguientes secciones:

Orden de ejecución

El servidor siempre ejecuta NullProcessing reglas antes de ErrorConfiguration reglas de cada registro. Esto es importante comprender porque las propiedades de procesamiento null que convierten valores NULL en ceros pueden introducir posteriormente errores de clave duplicados cuando dos o más registros de error tienen cero en una columna de clave.

Comportamientos predeterminados

De forma predeterminada, el procesamiento se detiene en el primer error que implica una columna de clave. Este comportamiento se controla mediante un límite de errores que especifica cero como el número de errores permitidos y la directiva Detener procesamiento que indica al servidor que detenga el procesamiento cuando se alcance el límite de errores.

Los registros que desencadenan un error, debido a valores nulos, faltantes o duplicados, se asignan al miembro desconocido o se descartan. Analysis Services no importará los datos que infringen las restricciones de integridad de datos.

  • La conversión a un miembro desconocido se produce de forma predeterminada, debido a la ConvertToUnknown configuración de KeyErrorAction. Los registros asignados a un miembro desconocido se ponen en cuarentena en la base de datos como evidencia de un problema que puede querer investigar una vez finalizado el procesamiento.

    Los miembros desconocidos se excluyen de las cargas de trabajo de consulta, pero estarán visibles en algunas aplicaciones cliente si está UnknownMember establecido en Visible.

    Si desea realizar un seguimiento del número de valores NULL convertidos al miembro desconocido, puede modificar la NullKeyConvertedToUnknown propiedad para informar estos errores en el registro o en la ventana de procesamiento.

  • El descarte se produce cuando se establece la propiedad KeyErrorAction manualmente en DiscardRecord.

Mediante las propiedades de configuración de errores, puede determinar cómo responde el servidor cuando se produce un error. Las opciones incluyen detener el procesamiento inmediatamente, continuar con el procesamiento, pero detener el registro, o continuar con el procesamiento y el registro de errores. Los valores predeterminados varían en función de la gravedad del error.

El recuento de errores realiza un seguimiento del número de errores que se producen. Cuando se establece un límite superior, la respuesta del servidor cambia cuando se alcanza ese límite. De forma predeterminada, el servidor detiene el procesamiento después de alcanzar el límite. El límite predeterminado es 0, lo que hace que el procesamiento se detenga en el primer error que se cuenta.

Los errores de alto impacto, como una clave que falta o un valor NULL en un campo de clave, deben solucionarse rápidamente. De forma predeterminada, estos errores se adhieren a ReportAndContinue los comportamientos del servidor, donde el servidor detecta el error, lo agrega al recuento de errores y, a continuación, continúa el procesamiento (excepto que el límite de errores es cero, por lo que el procesamiento se detiene inmediatamente).

Otros errores se generan pero no se cuentan o registran de forma predeterminada (esta es la IgnoreError configuración) porque el error no supone necesariamente un problema de integridad de datos.

Los recuentos de errores se ven afectados por la configuración de procesamiento nula. En el caso de los atributos de dimensión, las opciones de procesamiento null determinan cómo responde el servidor cuando se encuentran valores NULL. De forma predeterminada, los valores NULL de una columna numérica se convierten en ceros, mientras que los valores NULL de una columna de cadena se procesan como cadenas en blanco. Puede sobrescribir las propiedades NullProcessing para detectar valores nulos antes de que se conviertan en errores de KeyNotFound o de KeyDuplicate. Consulte Claves nulas en una dimensión para obtener más información.

Los errores se registran en el cuadro de diálogo Proceso, pero no se guardan. Puede especificar un nombre de archivo de registro de errores clave para recopilar errores en un archivo de texto.

Propiedades de configuración de errores

Hay nueve propiedades de configuración de error. Se usan cinco para determinar la respuesta del servidor cuando se produce un error específico. Los otros cuatro se limitan a las cargas de trabajo de configuración de errores, como el número de errores que se van a permitir, qué hacer cuando se alcanza ese límite, si se recopilan errores en un archivo de registro.

Respuesta del servidor a errores específicos

Propiedad Predeterminado Otros valores
CalculationError

Se produce al inicializar la configuración de errores.
IgnoreError ni registra ni cuenta el error; el procesamiento continúa siempre que el recuento de errores esté por debajo del límite máximo. ReportAndContinue registra y cuenta el error.

ReportAndStop notifica el error y detiene el procesamiento inmediatamente, independientemente del límite de errores.
KeyNotFound

Se produce cuando una clave externa de una tabla de hechos no tiene una clave principal coincidente en una tabla de dimensiones relacionada (por ejemplo, una tabla de hechos Sales tiene un registro con un identificador de producto que no existe en la tabla de dimensiones Product). Este error puede producirse durante el procesamiento de particiones o el procesamiento de dimensiones de dimensiones de cota de nieve.
ReportAndContinue registra y cuenta el error. ReportAndStop notifica el error y detiene el procesamiento inmediatamente, independientemente del límite de errores.

IgnoreError ni registra ni cuenta el error; el procesamiento continúa siempre que el recuento de errores esté por debajo del límite máximo. Los registros que desencadenan este error se convierten en el miembro desconocido de forma predeterminada, pero puede cambiar la KeyErrorAction propiedad para descartarlos en su lugar.
KeyDuplicate

Se produce cuando se encuentran claves de atributo duplicadas en una dimensión. En la mayoría de los casos, es aceptable tener claves de atributo duplicadas, pero este error le informa de los duplicados para que pueda comprobar la dimensión de los errores de diseño que podrían provocar relaciones incoherentes entre atributos.
IgnoreError ni registra ni cuenta el error; el procesamiento continúa siempre que el recuento de errores esté por debajo del límite máximo. ReportAndContinue registra y cuenta el error.

ReportAndStop notifica el error y detiene el procesamiento inmediatamente, independientemente del límite de errores.
NullKeyNotAllowed

Se produce cuando NullProcessing = Error se establece en un atributo de dimensión o cuando existen valores NULL en una columna de clave de atributo usada para identificar de forma única un miembro.
ReportAndContinue registra y cuenta el error. ReportAndStop notifica el error y detiene el procesamiento inmediatamente, independientemente del límite de errores.

IgnoreError ni registra ni cuenta el error; el procesamiento continúa siempre que el recuento de errores esté por debajo del límite máximo. Los registros que desencadenan este error se convierten en el miembro desconocido de forma predeterminada, pero puede establecer la KeyErrorAction propiedad para descartarlos en su lugar.
NullKeyConvertedToUnknown

Se produce cuando los valores NULL se convierten posteriormente en el miembro desconocido. Si se establece NullProcessing = ConvertToUnknown en un atributo de dimensión, se desencadenará este error.
IgnoreError ni registra ni cuenta el error; el procesamiento continúa siempre que el recuento de errores esté por debajo del límite máximo. Si considera que este error es informativo, mantenga el valor predeterminado. De lo contrario, puede optar por ReportAndContinue notificar el error a la ventana Procesamiento y contar el error hacia el límite de errores.

ReportAndStop notifica el error y detiene el procesamiento inmediatamente, independientemente del límite de errores.

Propiedades generales

Propiedad Valores
KeyErrorAction Esta es la acción realizada por el servidor cuando se produce un KeyNotFound error. Las respuestas válidas a este error incluyen ConvertToUnknown o DiscardRecord.
KeyErrorLogFile Se trata de un nombre de archivo definido por el usuario que debe tener una extensión de archivo .log, ubicada en una carpeta en la que la cuenta de servicio tiene permisos de lectura y escritura. Este archivo de registro solo contendrá errores generados durante el procesamiento. Use la Grabadora de vuelos si necesita información más detallada.
KeyErrorLimit Este es el número máximo de errores de integridad de datos que el servidor permitirá antes de producir un error en el procesamiento. Un valor de -1 indica que no hay ningún límite. El valor predeterminado es 0, lo que significa que el procesamiento se detiene después de que se produzca el primer error. También puede establecerlo en un número entero.
KeyErrorLimitAction Esta es la acción realizada por el servidor cuando el número de errores de clave ha alcanzado el límite superior. Con Detener procesamiento, el procesamiento finaliza inmediatamente. Con Detener registro, el procesamiento continúa, pero los errores ya no se notifican ni cuentan.

Dónde establecer las propiedades de configuración de errores

Use las páginas de propiedades en SQL Server Management Studio después de implementar la base de datos o en el proyecto de modelo en SQL Server Data Tools. Las mismas propiedades se encuentran en ambas herramientas. También puede establecer las propiedades de configuración de errores en el archivo msmdrsrv.ini para cambiar los valores predeterminados del servidor para la configuración de errores y en los comandos Batch y Process si el procesamiento se ejecuta como una operación programada.

Puede establecer la configuración de errores en cualquier objeto que se pueda procesar como una operación independiente.

SQL Server Management Studio

  1. En el Explorador de objetos, haga clic en Propiedades uno de estos objetos: dimensión, cubo o partición.

  2. En Propiedades, haga clic en Configuración de errores.

SQL Server Data Tools (Herramientas de Datos de SQL Server)

  1. En el Explorador de soluciones, haga doble clic en una dimensión o cubo. ErrorConfiguration aparece en Propiedades en el panel siguiente.

  2. Como alternativa, solo para una sola dimensión, haga clic con el botón derecho en la dimensión en el Explorador de soluciones, elija Processy, a continuación, elija Cambiar configuración en el cuadro de diálogo Dimensión de proceso. Las opciones de configuración de errores aparecen en la pestaña "Errores de Clave de Dimensión".

Claves que faltan (KeyNotFound)

Los registros con un valor de clave que falta no se pueden agregar a la base de datos, ni siquiera cuando se omiten los errores o el límite de errores es ilimitado.

El servidor genera el error durante el KeyNotFound procesamiento de particiones, cuando una tabla de hecho registra un valor de clave externa, pero la clave externa no tiene ningún registro correspondiente en una tabla de dimensiones relacionada. Este error también se produce cuando se procesan tablas de dimensiones relacionadas o con copos de nieve, donde un registro de una dimensión especifica una clave externa que no existe en la dimensión relacionada.

Cuando se produce un KeyNotFound error, el registro que causa el problema se asigna al miembro desconocido. Este comportamiento se controla a través de la Acción de Clave, establecida en ConvertToUnknown, para que pueda ver los registros asignados y investigar más a fondo.

Claves externas nulas en una tabla de hechos (KeyNotFound)

De forma predeterminada, un valor NULL en una columna de clave externa de una tabla de hechos se convierte en cero. Suponiendo que cero no es un valor de clave externa válido, el KeyNotFound error se registrará y se contará hacia el límite de errores que es cero de forma predeterminada.

Para permitir que el procesamiento continúe, puede controlar el valor NULL antes de que se convierta y compruebe si hay errores. Para ello, establezca NullProcessing como Error.

Establecer la propiedad de NullProcessing en un valor de medida

  1. En SQL Server Data Tools, en el Explorador de soluciones, haga doble clic en el cubo para abrirlo en el Diseñador de cubos.

  2. Haga clic con el botón derecho en una medida en el panel Medidas y elija Propiedades.

  3. En Propiedades, amplíe Origen para ver NullProcessing. Se establece en Automático de forma predeterminada, que para los elementos OLAP, convierte valores NULL en ceros para los campos que contienen datos numéricos.

  4. Cambie el valor para Error excluir los registros que tengan un valor NULL, evitando la conversión null a numérica (cero). Esta modificación permite evitar errores de clave duplicados relacionados con varios registros que tienen cero en la columna de clave y también evitar KeyNotFound errores cuando una clave externa con valores cero no tiene ninguna clave principal equivalente en una tabla de dimensiones relacionada.

Claves NULL en una dimensión

Para continuar procesando cuando se encuentran valores NULL en claves externas dentro de una dimensión de copo de nieve, primero maneje los valores NULL estableciendo NullProcessing en el atributo de dimensión KeyColumn. Esto descarta o convierte el registro antes de que se pueda producir el KeyNotFound error.

Tiene dos opciones para controlar valores NULL en el atributo de dimensión:

  • Establezca NullProcessing=UnknownMember para asignar registros con valores NULL al miembro desconocido. Esto produce el NullKeyConvertedToUnknown error, que se omite de forma predeterminada.

  • Establezca NullProcessing=Error esta opción para excluir registros con valores NULL. Esto produce un error NullKeyNotAllowed, que se registra y cuenta para el límite máximo de errores clave. Puede establecer la propiedad de configuración de error en Clave nula no permitida para IgnoreError permitir que el procesamiento continúe.

Los valores NULL pueden ser un problema para los campos que no son clave, en que las consultas MDX devuelven resultados diferentes en función de si null se interpreta como cero o vacío. Por este motivo, Analysis Services proporciona opciones de procesamiento null que permiten predefinir el comportamiento de conversión que desee. Consulte Definición de las propiedades de procesamiento de miembros desconocidos y null y NullProcessing para obtener más información.

Establecer la propiedad NullProcessing en un atributo de dimensión

  1. En SQL Server Data Tools, en el Explorador de soluciones, haga doble clic en la dimensión para abrirla en el Diseñador de dimensiones.

  2. Haga clic con el botón derecho en un atributo en el panel Atributos y elija Propiedades.

  3. En Propiedades, expanda KeyColumns para ver la propiedad NullProcessing. Se establece en Automático de forma predeterminada, que convierte valores NULL en ceros para los campos que contienen datos numéricos. Cambie el valor a Error o UnknownMember.

    Esta modificación elimina las condiciones subyacentes que disparan KeyNotFound al descartar o convertir el registro antes de comprobarlo por errores.

    Dependiendo de la configuración de errores, cualquiera de estas acciones puede dar lugar a un error que se notifica y se cuenta. Es posible que tenga que ajustar propiedades adicionales, como establecer KeyNotFound en ReportAndContinue o KeyErrorLimit en un valor distinto de cero, para permitir que el procesamiento continúe cuando se notifican y cuentan estos errores.

Claves duplicadas resultantes de relaciones incoherentes (KeyDuplicate)

De forma predeterminada, la presencia de una clave duplicada no detiene el procesamiento, pero el error se omite y el registro duplicado se excluye de la base de datos.

Para cambiar este comportamiento, establezca KeyDuplicate en ReportAndContinue o ReportAndStop para notificar el error. A continuación, puede examinar el error para determinar posibles errores en el diseño de dimensiones.

Cambiar el límite de errores o la acción de límite de errores

Puede aumentar el límite de errores para permitir más errores durante el procesamiento. No hay ninguna guía para aumentar el límite de errores; el valor adecuado variará en función de su escenario. Los límites de error se especifican como KeyErrorLimit en ErrorConfiguration las propiedades de SQL Server Data Tools o como Número de errores en la pestaña Configuración de errores para propiedades de dimensiones, cubos o grupos de medida en SQL Server Management Studio.

Una vez alcanzado el límite de errores, puede especificar que el procesamiento se detenga o que se detenga el registro. Por ejemplo, supongamos que establece la acción en StopLogging en un límite de error de 100. En el error 101, el procesamiento continúa, pero los errores ya no se registran ni cuentan. Las acciones de límite de error se especifican como KeyErrorLimitAction en ErrorConfiguration propiedades de SQL Server Data Tools o como Acción en caso de error en la pestaña Configuración de errores para propiedades de dimensiones, cubos o grupos de medida en SQL Server Management Studio.

Establecimiento de la ruta de acceso del registro de errores

Puede especificar un archivo para almacenar mensajes de error relacionados con claves que se notifican durante el procesamiento. De forma predeterminada, los errores son visibles durante el procesamiento interactivo en la ventana Proceso y, a continuación, se descartan al cerrar la ventana o sesión. El registro solo contendrá información de error relacionada con las claves, idéntica a los errores que ves reportados en los cuadros de diálogo de procesamiento.

Los errores se registrarán en un archivo de texto y deben tener .log extensión de archivo. El archivo estará vacío a menos que se produzcan errores. De forma predeterminada, se creará un archivo en la carpeta DATA. Puede especificar otra carpeta siempre que la cuenta de servicio de Analysis Services pueda escribir en esa ubicación.

Paso siguiente

Decida si los errores dejarán de procesarse o se omitirán. Recuerde que solo se omite el error. No se omite el registro que provocó el error; se descarta o se convierte en miembro desconocido. Los registros que infringen las reglas de integridad de datos nunca se agregan a la base de datos. De forma predeterminada, el procesamiento se detiene cuando se produce el primer error, pero puede cambiarlo mediante la elevación del límite de errores. En el desarrollo de cubos, puede ser útil relajar las reglas de configuración de errores, lo que permite que el procesamiento continúe, para que haya datos con los que probar.

Decida si se van a cambiar los comportamientos de procesamiento null predeterminados. De forma predeterminada, los valores NULL de una columna de cadena se procesan como valores vacíos, mientras que los valores NULL de una columna numérica se procesan como cero. Consulte Definición de las propiedades de procesamiento de miembros desconocidos y null para obtener instrucciones sobre cómo establecer el procesamiento nulo en un atributo.

Véase también

Propiedades del registro
Definición de las propiedades de miembro desconocido y procesamiento de nulos