Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
Dónde establecer las propiedades de configuración de errores
Claves duplicadas resultantes de relaciones incoherentes (KeyDuplicate)
Cambiar el límite de errores o la acción de límite de errores
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
ConvertToUnknownconfiguración deKeyErrorAction. 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á
UnknownMemberestablecido en Visible.Si desea realizar un seguimiento del número de valores NULL convertidos al miembro desconocido, puede modificar la
NullKeyConvertedToUnknownpropiedad para informar estos errores en el registro o en la ventana de procesamiento.El descarte se produce cuando se establece la propiedad
KeyErrorActionmanualmente enDiscardRecord.
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 |
|---|---|---|
CalculationErrorSe 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. |
KeyNotFoundSe 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. |
KeyDuplicateSe 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. |
NullKeyNotAllowedSe 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. |
NullKeyConvertedToUnknownSe 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
En el Explorador de objetos, haga clic en Propiedades uno de estos objetos: dimensión, cubo o partición.
En Propiedades, haga clic en Configuración de errores.
SQL Server Data Tools (Herramientas de Datos de SQL Server)
En el Explorador de soluciones, haga doble clic en una dimensión o cubo.
ErrorConfigurationaparece en Propiedades en el panel siguiente.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
En SQL Server Data Tools, en el Explorador de soluciones, haga doble clic en el cubo para abrirlo en el Diseñador de cubos.
Haga clic con el botón derecho en una medida en el panel Medidas y elija Propiedades.
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.Cambie el valor para
Errorexcluir 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 evitarKeyNotFounderrores 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=UnknownMemberpara asignar registros con valores NULL al miembro desconocido. Esto produce elNullKeyConvertedToUnknownerror, que se omite de forma predeterminada.Establezca
NullProcessing=Erroresta opción para excluir registros con valores NULL. Esto produce un errorNullKeyNotAllowed, 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 paraIgnoreErrorpermitir 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
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.
Haga clic con el botón derecho en un atributo en el panel Atributos y elija Propiedades.
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 aErroroUnknownMember.Esta modificación elimina las condiciones subyacentes que disparan
KeyNotFoundal 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
KeyNotFoundenReportAndContinueoKeyErrorLimiten 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