Freigeben über


Fehlerkonfiguration für Würfel-, Partitionen- und Dimensionsverarbeitung (SSAS – Multidimensional)

Fehlerkonfigurationseigenschaften für Cube-, Partitions- oder Dimensionsobjekte bestimmen, wie der Server reagiert, wenn Datenintegritätsfehler während der Verarbeitung auftreten. Doppelte Schlüssel, fehlende Schlüssel und NULL-Werte in einer Schlüsselspalte lösen in der Regel solche Fehler aus, und während der Datensatz, der den Fehler verursacht, der Datenbank nicht hinzugefügt wird, können Sie Eigenschaften festlegen, die bestimmen, was als nächstes geschieht. Standardmäßig wird die Verarbeitung beendet. Während der Cubeentwicklung möchten Sie die Verarbeitung jedoch möglicherweise fortsetzen, wenn Fehler auftreten, damit Sie Cubeverhalten mit importierten Daten testen können, auch wenn sie unvollständig ist.

Dieses Thema enthält die folgenden Abschnitte:

Ausführungsreihenfolge

Der Server führt NullProcessing-Regeln immer vor ErrorConfiguration-Regeln für jeden Datensatz aus. Dies ist wichtig zu verstehen, da Nullverarbeitungseigenschaften, die Nullwerte in Nullen konvertieren, anschließend doppelte Schlüsselfehler auslösen können, wenn zwei oder mehr Fehlereinträge in einer Schlüsselspalte Null aufweisen.

Standardverhalten

Standardmäßig wird die Verarbeitung beim ersten Fehler beendet, der eine Schlüsselspalte impliziert. Dieses Verhalten wird durch einen Fehlergrenzwert gesteuert, der null als Anzahl zulässiger Fehler angibt, und der Stop Processing-Direktive, die dem Server angibt, die Verarbeitung zu beenden, wenn die Fehlergrenze erreicht wird.

Datensätze, die einen Fehler auslösen, werden aufgrund von NULL oder fehlenden oder doppelten Werten entweder in das unbekannte Element konvertiert oder verworfen. Analysis Services importiert keine Daten, die gegen Datenintegritätseinschränkungen verstoßen.

  • Die Konvertierung in unbekannte Member erfolgt standardmäßig aufgrund der ConvertToUnknown Einstellung für KeyErrorAction. Datensätze, die unbekannten Mitgliedern zugeordnet sind, werden in der Datenbank als Beweis für ein Problem unter Quarantäne gestellt, das Sie nach Abschluss des Verarbeitungsprozesses untersuchen möchten.

    Unbekannte Mitglieder werden von Abfrageworkloads ausgeschlossen, sind aber in einigen Clientanwendungen sichtbar, wenn die UnknownMember auf Sichtbar festgelegt ist.

    Wenn Sie nachverfolgen möchten, wie viele NULL-Werte in das unbekannte Element konvertiert wurden, können Sie die NullKeyConvertedToUnknown Eigenschaft ändern, um diese Fehler an das Protokoll oder im Verarbeitungsfenster zu melden.

  • Das Löschen erfolgt, wenn Sie die Eigenschaft manuell auf DiscardRecord setzen.

Mithilfe von Fehlerkonfigurationseigenschaften können Sie bestimmen, wie der Server reagiert, wenn ein Fehler auftritt. Zu den Optionen gehören das sofortige Beenden der Verarbeitung, das Fortsetzen der Verarbeitung, das Beenden der Protokollierung oder das Fortsetzen der Verarbeitung und Protokollierung von Fehlern. Die Standardwerte variieren je nach Schweregrad des Fehlers.

Die Fehleranzahl verfolgt, wie viele Fehler auftreten. Wenn Sie eine Obergrenze festlegen, ändert sich die Serverantwort, wenn diese Grenze erreicht ist. Standardmäßig beendet der Server die Verarbeitung, nachdem der Grenzwert erreicht wurde. Der Standardgrenzwert ist 0, wodurch die Verarbeitung für den ersten gezählten Fehler beendet wird.

Fehler mit hoher Auswirkung, z. B. fehlender Schlüssel oder Nullwert in einem Schlüsselfeld, sollten schnell behoben werden. Standardmäßig halten diese Fehler das Serververhalten ein ReportAndContinue , bei dem der Server den Fehler erfasst, der Fehleranzahl hinzufügt und dann die Verarbeitung fortsetzt (es sei denn, der Fehlergrenzwert ist null, sodass die Verarbeitung sofort beendet wird).

Andere Fehler werden generiert, jedoch nicht standardmäßig gezählt oder protokolliert (dies ist die IgnoreError Einstellung), da der Fehler nicht notwendigerweise ein Datenintegritätsproblem darstellt.

Fehleranzahlen sind von den Nullverarbeitungseinstellungen betroffen. Bei Dimensionsattributen bestimmen NULL-Verarbeitungsoptionen, wie der Server reagiert, wenn Nullwerte gefunden werden. Standardmäßig werden Nullen in einer numerischen Spalte in Nullen konvertiert, während Nullen in einer Zeichenfolgenspalte als leere Zeichenfolgen verarbeitet werden. Sie können NullProcessing Eigenschaften überschreiben, um Nullwerte abzufangen, bevor sie in KeyNotFound- oder KeyDuplicate-Fehler umgewandelt werden. Details finden Sie unter NULL-Schlüssel in einer Dimension .

Fehler werden im Dialogfeld "Prozess" protokolliert, aber nicht gespeichert. Sie können einen Schlüsselfehlerprotokolldateinamen angeben, um Fehler in einer Textdatei zu sammeln.

Fehlerkonfigurationseigenschaften

Es gibt neun Fehlerkonfigurations-Eigenschaften. Fünf werden verwendet, um die Serverantwort zu bestimmen, wenn ein bestimmter Fehler auftritt. Die anderen vier sind auf Fehlerkonfigurationsworkloads beschränkt, z. B. wie viele Fehler zulässig sind, was zu tun ist, wenn dieser Grenzwert erreicht wird, ob Fehler in einer Protokolldatei gesammelt werden sollen.

Serverantwort auf bestimmte Fehler

Eigentum Standard Andere Werte
CalculationError

Tritt beim Initialisieren der Fehlerkonfiguration auf.
IgnoreError protokolliert weder noch zählt den Fehler; die Verarbeitung wird fortgesetzt, solange die Fehleranzahl unter dem Maximalwert liegt. ReportAndContinue protokolliert und zählt den Fehler.

ReportAndStop meldet den Fehler und beendet die Verarbeitung sofort, unabhängig von der Fehlergrenze.
KeyNotFound

Tritt auf, wenn ein Fremdschlüssel in einer Faktentabelle nicht über einen übereinstimmenden Primärschlüssel in einer verknüpften Dimensionstabelle verfügt (z. B. enthält eine Tabelle "Verkaufsinformationen" einen Datensatz mit einer Produkt-ID, die in der Tabelle "Produktdimension" nicht vorhanden ist). Dieser Fehler kann bei der Partitionsverarbeitung oder bei der Verarbeitung von Schneeflockendimensionen auftreten.
ReportAndContinue protokolliert und zählt den Fehler. ReportAndStop meldet den Fehler und beendet die Verarbeitung sofort, unabhängig von der Fehlergrenze.

IgnoreError protokolliert und zählt den Fehler nicht; die Verarbeitung wird fortgesetzt, solange die Anzahl der Fehler unter dem maximalen Grenzwert liegt. Datensätze, die diesen Fehler auslösen, werden standardmäßig in das unbekannte Element konvertiert, aber Sie können die KeyErrorAction Eigenschaft ändern, um sie stattdessen zu verwerfen.
KeyDuplicate

Tritt auf, wenn doppelte Attributschlüssel in einer Dimension gefunden werden. In den meisten Fällen ist es akzeptabel, doppelte Attributschlüssel zu haben, aber dieser Fehler informiert Sie über die Duplikate, damit Sie die Dimension auf Entwurfsfehler überprüfen können, die zu inkonsistenten Beziehungen zwischen Attributen führen können.
IgnoreError wird weder protokolliert noch gezählt; Die Verarbeitung wird fortgesetzt, solange die Fehleranzahl unter dem maximalen Grenzwert liegt. ReportAndContinue protokolliert und zählt den Fehler.

ReportAndStop meldet den Fehler und beendet die Verarbeitung sofort, unabhängig von der Fehlergrenze.
NullKeyNotAllowed

Tritt auf, wenn NullProcessing = Error für ein Dimension-Attribut festgelegt wird oder wenn Nullwerte in einer Attributschlüsselspalte vorhanden sind, die verwendet wird, um ein Element eindeutig zu identifizieren.
ReportAndContinue protokolliert und zählt den Fehler. ReportAndStop meldet den Fehler und beendet die Verarbeitung sofort, unabhängig von der Fehlergrenze.

IgnoreError wird weder Fehler geloggt noch gezählt, und die Verarbeitung wird fortgesetzt, solange die Fehleranzahl unter dem maximalen Grenzwert liegt. Datensätze, die diesen Fehler auslösen, werden standardmäßig in das unbekannte Element konvertiert, aber Sie können die KeyErrorAction Eigenschaft so festlegen, dass sie stattdessen verworfen wird.
NullKeyConvertedToUnknown

Tritt auf, wenn null-Werte anschließend in das unbekannte Element konvertiert werden. Das Festlegen NullProcessing = ConvertToUnknown eines Dimensionsattributes löst diesen Fehler aus.
IgnoreError protokolliert weder noch zählt den Fehler; die Verarbeitung wird fortgesetzt, solange die Fehleranzahl unter dem maximalen Grenzwert liegt. Wenn Sie diesen Fehler als Information betrachten, behalten Sie die Standardeinstellung bei. Andernfalls können Sie ReportAndContinue den Fehler an das Verarbeitungsfenster melden und den Fehler zum Fehlerlimit hinzurechnen.

ReportAndStop meldet den Fehler und beendet die Verarbeitung sofort, unabhängig von der Fehlergrenze.

Allgemeine Eigenschaften

Eigentum Werte
KeyErrorAction Dies ist die Vom Server ausgeführte Aktion, wenn ein KeyNotFound Fehler auftritt. Zu den gültigen Antworten auf diesen Fehler gehören ConvertToUnknown oder DiscardRecord.
KeyErrorLogFile Dies ist ein benutzerdefinierter Dateiname, der über eine .log Dateierweiterung verfügen muss, die sich in einem Ordner befindet, in dem das Dienstkonto Lese-/Schreibzugriff hat. Diese Protokolldatei enthält nur Fehler, die während der Verarbeitung generiert werden. Verwenden Sie den Flugrekorder, wenn Sie ausführlichere Informationen benötigen.
KeyErrorLimit Dies ist die maximale Anzahl von Datenintegritätsfehlern, die der Server zulassen wird, bevor die Verarbeitung fehlschlägt. Ein Wert von -1 gibt an, dass kein Grenzwert vorhanden ist. Der Standardwert ist 0, was bedeutet, dass die Verarbeitung beendet wird, nachdem der erste Fehler auftritt. Sie können sie auch auf eine ganze Zahl festlegen.
KeyErrorLimitAction Dies ist die Aktion, die vom Server ausgeführt wird, wenn die Anzahl der Schlüsselfehler den oberen Grenzwert erreicht hat. Mit "Verarbeitung beenden" wird die Verarbeitung sofort beendet. Bei "Protokollierung beenden" wird die Verarbeitung fortgesetzt, fehler werden jedoch nicht mehr gemeldet oder gezählt.

Wo sollen die Fehlerkonfigurationseigenschaften festgelegt werden?

Verwenden Sie die Eigenschaftenseiten in SQL Server Management Studio, nachdem die Datenbank bereitgestellt wurde, oder im Modellprojekt in SQL Server Data Tools. Die gleichen Eigenschaften werden in beiden Tools gefunden. Sie können auch Fehlerkonfigurationseigenschaften in der datei msmdrsrv.ini festlegen, um die Serverstandardwerte für die Fehlerkonfiguration zu ändern, und in Batch und Process Befehle, wenn die Verarbeitung als Skriptvorgang ausgeführt wird.

Sie können die Fehlerkonfiguration für jedes Objekt festlegen, das als eigenständiger Vorgang verarbeitet werden kann.

SQL Server Management Studio

  1. Klicken Sie im Objekt-Explorer auf Eigenschaften eines der folgenden Objekte: Dimension, Cube oder Partition.

  2. Klicken Sie in "Eigenschaften" auf "Fehlerkonfiguration".

SQL Server-Datentools

  1. Doppelklicken Sie im Lösungs-Explorer auf eine Dimension oder einen Cube. ErrorConfiguration wird unten im Bereich "Eigenschaften" angezeigt.

  2. Alternativ können Sie im Projektmappen-Explorer mit der rechten Maustaste auf eine einzelne Dimension klicken und im Dialogfeld Process "Prozessdimension" Einstellungen ändern auswählen. Konfigurationsoptionen für Fehler werden auf der Registerkarte "Dimension Key Errors" angezeigt.

Fehlende Schlüssel (KeyNotFound)

Datensätze mit einem fehlenden Schlüsselwert können der Datenbank nicht hinzugefügt werden, auch wenn Fehler ignoriert werden oder die Fehlergrenze unbegrenzt ist.

Der Server erzeugt den Fehler während der KeyNotFound Partitionsverarbeitung, wenn eine Tabelle tatsächlich einen Fremdschlüsselwert enthält, der Fremdschlüssel jedoch keinen entsprechenden Datensatz in einer verknüpften Dimensionstabelle aufweist. Dieser Fehler tritt auch auf, wenn verknüpfte oder schneeflakierte Dimensionstabellen verarbeitet werden, wobei ein Datensatz in einer Dimension einen Fremdschlüssel angibt, der in der zugehörigen Dimension nicht vorhanden ist.

Wenn ein KeyNotFound Fehler auftritt, wird der fehlerhafte Datensatz dem unbekannten Mitglied zugeordnet. Dieses Verhalten wird über die Schlüsselfunktion gesteuert, die auf ConvertToUnknown festgelegt ist, sodass Sie die zugewiesenen Datensätze zur weiteren Überprüfung einsehen können.

Null Fremdschlüssel in einer Faktentabelle (KeyNotFound)

Standardmäßig wird ein Nullwert in einer Fremdschlüsselspalte einer Faktentabelle in Null konvertiert. Wenn null kein gültiger Fremdschlüsselwert ist, wird der KeyNotFound Fehler protokolliert und auf den Fehlergrenzwert gezählt, der standardmäßig null ist.

Damit die Verarbeitung fortgesetzt werden kann, können Sie die NULL behandeln, bevor sie konvertiert und auf Fehler überprüft wird. Um dies zu tun, setzen Sie NullProcessing auf Error.

Festlegen der NullProcessing-Eigenschaft für einen Messwert

  1. Doppelklicken Sie in den SQL Server Data Tools im Projektmappen-Explorer auf den Cube, um ihn im Cube-Designer zu öffnen.

  2. Klicken Sie im Bereich "Measures" mit der rechten Maustaste auf ein Measure, und wählen Sie "Eigenschaften" aus.

  3. Erweitern Sie in "Eigenschaften" die Quelle, um die NullProcessing Eigenschaft anzuzeigen. Sie ist standardmäßig auf "Automatisch" festgelegt, die für OLAP-Elemente Nullen in Nullen für Felder konvertiert, die numerische Daten enthalten.

  4. Ändern Sie den Wert auf Error, um Datensätze mit einem Nullwert auszuschließen und die Konvertierung von Null zu einer numerischen (null) zu vermeiden. Diese Änderung ermöglicht es Ihnen, doppelte Schlüsselfehler im Zusammenhang mit mehreren Datensätzen mit Null in der Schlüsselspalte zu vermeiden und KeyNotFound zu vermeiden, wenn ein nullwertiger Fremdschlüssel in einer verknüpften Dimensionstabelle keine Entsprechung eines Primärschlüssels vorhanden ist.

NULL-Schlüssel in einer Dimension

Um die Verarbeitung fortzusetzen, wenn Nullwerte in Fremdschlüsseln in einer schneeflockenartigen Dimension gefunden werden, behandeln Sie die null-Werte zuerst, indem Sie NullProcessing auf dem KeyColumn des Dimension Attributs setzen. Dadurch wird der Datensatz verworfen oder konvertiert, bevor der KeyNotFound Fehler auftreten kann.

Sie haben zwei Optionen zum Behandeln von Nullen für das Dimensionsattribute:

  • Legen Sie fest NullProcessing=UnknownMember , dass Datensätze mit NULL-Werten dem unbekannten Element zugewiesen werden. Dadurch wird der NullKeyConvertedToUnknown Fehler erzeugt, der standardmäßig ignoriert wird.

  • Wird festgelegt NullProcessing=Error , um Datensätze mit Nullwerten auszuschließen. Dadurch wird der NullKeyNotAllowed-Fehler erzeugt, protokolliert und zählt zum Fehlergrenzwert. Sie können die Fehlerkonfigurationseigenschaft auf Null-Schlüssel nicht erlaubt setzen, um IgnoreError die Verarbeitung fortzusetzen.

Nullen können für Nichtschlüsselfelder problematisch sein, da MDX-Abfragen unterschiedliche Ergebnisse zurückgeben, je nachdem, ob Null als Null oder leer interpretiert wird. Aus diesem Grund stellt Analysis Services Null-Verarbeitungsoptionen bereit, mit denen Sie das gewünschte Konvertierungsverhalten vordefinieren können. Weitere Informationen finden Sie unter Definieren der Eigenschaften "Unbekannter Member" und "Nullverarbeitung" und NullProcessing.

Die NullProcessing-Eigenschaft eines Dimensionsattributs festlegen

  1. Doppelklicken Sie in den SQL Server Data Tools im Lösungsexplorer auf die Dimension, um sie im Dimension-Designer zu öffnen.

  2. Klicken Sie im Bereich "Attribute" mit der rechten Maustaste auf ein Attribut, und wählen Sie "Eigenschaften" aus.

  3. Erweitern Sie in den Eigenschaften KeyColumns, um die Eigenschaft NullProcessing anzuzeigen. Sie ist standardmäßig auf "Automatisch" festgelegt, wodurch Nullen für Felder mit numerischen Daten in Nullen konvertiert werden. Ändern Sie den Wert in entweder Error oder UnknownMember.

    Diese Änderung entfernt die zugrunde liegenden Bedingungen, die KeyNotFound auslösen, indem der Datensatz entweder verworfen oder konvertiert wird, bevor er auf Fehler überprüft wird.

    Je nach Fehlerkonfiguration kann eine dieser Aktionen zu einem gemeldeten und gezählten Fehler führen. Möglicherweise müssen Sie zusätzliche Eigenschaften anpassen, z. B. festlegen KeyNotFound auf ReportAndContinue oder KeyErrorLimit auf einen Wert ungleich Null, damit die Verarbeitung fortgesetzt werden kann, wenn diese Fehler gemeldet und gezählt werden.

Doppelte Schlüssel, die inkonsistente Beziehungen ergeben (KeyDuplicate)

Standardmäßig wird das Vorhandensein eines doppelten Schlüssels nicht mehr verarbeitet, aber der Fehler wird ignoriert, und der doppelte Datensatz wird von der Datenbank ausgeschlossen.

Um dieses Verhalten zu ändern, setzen Sie KeyDuplicate auf ReportAndContinue oder ReportAndStop, um den Fehler zu melden. Anschließend können Sie den Fehler untersuchen, um potenzielle Fehler im Bemaßungsentwurf zu ermitteln.

Die Fehlergrenze oder Fehlergrenzaktion ändern

Sie können den Fehlergrenzwert erhöhen, um während der Verarbeitung mehr Fehler zuzulassen. Es gibt keine Anleitungen zum Erhöhen des Fehlerlimits; der entsprechende Wert variiert je nach Ihrem Szenario. Fehlergrenzwerte werden wie KeyErrorLimit in ErrorConfiguration Eigenschaften in SQL Server Data Tools oder als Anzahl der Fehler auf der Registerkarte "Fehlerkonfiguration" für Eigenschaften von Dimensionen, Cubes oder Maßgruppen in SQL Server Management Studio angegeben.

Sobald der Fehlergrenzwert erreicht ist, können Sie angeben, dass die Verarbeitung beendet wird oder dass die Protokollierung beendet wird. Angenommen, Sie legen die Aktion StopLogging auf eine Fehlergrenze von 100 fest. Bei dem 101. Fehler wird die Verarbeitung fortgesetzt, fehler werden jedoch nicht mehr protokolliert oder gezählt. Fehlerlimitaktionen werden in KeyErrorLimitAction in ErrorConfiguration Eigenschaften in SQL Server Data Tools oder als Fehleraktion auf der Registerkarte "Fehlerkonfiguration" für Eigenschaften von Dimensionen, Cubes oder Maßgruppen in SQL Server Management Studio angegeben.

Festlegen des Fehlerprotokollpfads

Sie können eine Datei angeben, die schlüsselbezogene Fehlermeldungen speichert, die während der Verarbeitung gemeldet werden. Standardmäßig werden Fehler während der interaktiven Verarbeitung im Prozessfenster angezeigt und dann verworfen, wenn Sie das Fenster oder die Sitzung schließen. Das Protokoll enthält nur Fehlerinformationen im Zusammenhang mit Schlüsseln, identisch mit den Fehlern, die in den Verarbeitungsdialogfeldern angezeigt werden.

Fehler werden in einer Textdatei protokolliert und müssen über .log Dateierweiterung verfügen. Die Datei ist leer, es sei denn, Fehler treten auf. Standardmäßig wird eine Datei im DATA-Ordner erstellt. Sie können einen anderen Ordner angeben, solange das Analysis Services-Dienstkonto an diesen Speicherort schreiben kann.

Nächster Schritt

Entscheiden Sie, ob Fehler die Verarbeitung beenden oder ignoriert werden. Denken Sie daran, dass nur der Fehler ignoriert wird. Der Datensatz, der den Fehler verursacht hat, wird nicht ignoriert; er wird entweder verworfen oder in ein unbekanntes Mitglied konvertiert. Datensätze, die gegen Datenintegritätsregeln verstoßen, werden der Datenbank niemals hinzugefügt. Standardmäßig wird die Verarbeitung beendet, wenn der erste Fehler auftritt, aber Sie können dies ändern, indem Sie das Fehlerlimit erhöhen. Bei der Cubeentwicklung kann es hilfreich sein, Fehlerkonfigurationsregeln zu entspannen, sodass die Verarbeitung fortgesetzt werden kann, sodass Daten zum Testen vorhanden sind.

Entscheiden Sie, ob standardmäßiges Nullverarbeitungsverhalten geändert werden soll. Standardmäßig werden Nullen in einer Zeichenfolgenspalte als leere Werte verarbeitet, während Nullen in einer numerischen Spalte als Null verarbeitet werden. Anweisungen zum Festlegen der Nullwertverarbeitung für ein Attribut finden Sie unter Definieren der Eigenschaften für unbekannte Member und Nullwertverarbeitung.

Siehe auch

Protokolleigenschaften
Definieren der Eigenschaften des unbekannten Members und der Nullverarbeitung