Fehlermeldungen beim Versuch, eine Datenbank oder einen Cube in SQL Server 2005 Analysis Services zu verarbeiten: "der Attributschlüssel konnte nicht gefunden werden" und "der Datensatz wurde übersprungen, weil der Attributschlüssel nicht gefunden wurde"


Problembeschreibung


In Microsoft SQL Server 2005 Analysis Services versuchen Sie, eine Datenbank oder einen Cube mithilfe von SQL Server Business Intelligence Development Studio oder SQL Server Management Studio zu verarbeiten. Der Prozess Vorgang schlägt jedoch fehl, und es werden die folgenden Fehlermeldungen angezeigt:
Fehlermeldung 1
Fehler im OLAP-Speichermodul: der Attributschlüssel kann nicht gefunden werden: Tabelle: Tabellen Name, Spalte: Spaltenname1, Wert: value1. Tabelle: Tabellen Name, Spalte: Spaltenname2, Wert: value2.
Fehlermeldung 2
Fehler im OLAP-Speichermodul: der Datensatz wurde übersprungen, da der Attributschlüssel nicht gefunden wurde. Attribute: generiertes Attribut X von Dimension : dimensionname aus Datenbank: DatabaseName, Cube: Cubename, Measuregruppe: MeasureGroupName, Partition: Partitionsname, Datensatz: RecordNumber.

Ursache


Dieses Problem tritt auf, weil eine Faktentabelle für einen Cube mindestens einen Datensatz enthält, der einen Attributschlüssel enthält, und dieser Attributschlüssel in der entsprechenden Dimensionstabelle nicht vorhanden ist. Dieses Verhalten kann auftreten, wenn Sie die entsprechende Dimension nicht verarbeitet haben, bevor Sie den Cube verarbeiten oder wenn die zugrunde liegenden Tabellen tatsächlich nicht übereinstimmende Daten aufweisen. Wenn das Feld "Wert:" in der Nachricht keine Zahl dahinter hat, muss die Faktentabelle NULL-Daten enthalten.

Fehlerbehebung


Um dieses Problem zu beheben, müssen Sie sicherstellen, dass die Datenquelle auf die folgenden Speicherorte verweist:
  • Die richtige zugrunde liegende Datenquelleninstanz, beispielsweise eine Instanz von SQL Server 2005
  • Die richtige Datenbank.
Korrigieren Sie dann die zugrunde liegenden Datensätze, die den problematischen Attributschlüssel enthalten. Wenden Sie hierzu eine der folgenden Methoden an.

Verwenden eines vorhandenen Attributschlüssels

Aktualisieren Sie die Datensätze, um einen vorhandenen Attributschlüssel zu verwenden, indem Sie eine Anweisung wie folgt ausführen:
Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

Abgleichen der Schlüsselwerte in der Faktentabelle

Fügen Sie zusätzliche Zeilen in die Dimensionstabelle ein, damit Sie mit den Schlüsselwerten in der Faktentabelle übereinstimmen. Wenn Nullwerte vorhanden sind, verwenden Sie eine der folgenden Methoden:
  • Ersetzen Sie die NULL-Werte durch die tatsächlichen Werte.
  • Konfigurieren Sie die Dimension oder Dimensionen für ein unbekanntes Element, indem Sie die UnknownMember -Eigenschaft und die UnknownMemberName -Eigenschaft festlegen. Sie können das unbekannte Element je nach Ihren Anforderungen entweder sichtbar oder ausgeblendet machen. Weitere Informationen zum Definieren des unbekannten Mitglieds finden Sie auf der folgenden Website des Microsoft Developer Network (MSDN):
  • Verwenden Sie alle folgenden Einstellungen im Dialogfeld " Einstellungen ändern ":
    • Setzen Sie die keyerrorstyle -Eigenschaft auf ConvertToUnknown.
    • Setzen Sie die NullKeyNotAllowed -Eigenschaft auf IgnoreError oder ReportAndContinue.
    • Setzen Sie die NullKeyConvertedtoUnknown -Eigenschaft auf IgnoreError oder ReportAndContinue.
    • Klicken Sie auf Fehleranzahl ignorieren.
    Sie können diese Einstellungen Instanzen weit festlegen, oder Sie können eine benutzerdefinierte Konfiguration für jede Dimension verwenden.

Ignorieren des Fehlers

Wenn Sie die Datenbank oder den Cube ohne Korrektur der Daten verarbeiten möchten, können Sie die Fehlerkonfiguration für den Prozess Vorgang so einstellen, dass der Fehler ignoriert wird. Wenn Sie die zugrunde liegenden Daten korrigieren, sollten Sie dies nur als vorübergehende Problemumgehung tun. Andernfalls erhalten Sie möglicherweise unerwartete Ergebnisse aus den MDX-Abfragen (Multidimensional Expressions). Führen Sie die folgenden Schritte aus, um die Fehler zu ignorieren:
  1. Klicken Sie im Dialogfeld Prozessdatenbank – DatabaseName oder im Dialogfeld Cubename-Cubename auf Einstellungen ändern.
  2. Klicken Sie im Dialogfeld Einstellungen ändern auf die Registerkarte Dimensionsschlüsselfehler .
  3. Klicken Sie auf Benutzerdefinierte Fehlerkonfiguration verwenden.
  4. Ändern Sie in der Liste Schlüssel nicht gefunden den Standardwert aus Bericht, und ignorieren Sie den Fehlerweiterhin.
  5. Klicken Sie auf Fehleranzahl ignorieren.
  6. Klicken Sie auf OK , um das Dialogfeld Einstellungen ändern zu schließen.
  7. Klicken Sie auf OK , um die Datenbank oder den Cube zu verarbeiten.
Darüber hinaus können Sie die Fehlerkonfiguration für den Cube oder die Partition so einstellen, dass der Fehler ignoriert wird. Weitere Informationen finden Sie auf der folgenden MSDN-Website:

Status


Es handelt sich hierbei um ein beabsichtigtes Verhalten.