Fehler "Attributschlüssel duplizieren", wenn das Attribut kein Schlüssel ist
Ich erhalte die folgende Fehlermeldung beim verarbeiten einer Dimension:
Fehler im OLAP-Speichermodul: Eine doppelte Attribut key wurde
gefunden bei der Verarbeitung: - Tisch: 'dbo_Orders' Spalte: 'Projekt', Value:
"Kunden-service-Zeug". Das Attribut 'Projekt'.
'Projekt' ist ein Attribut von 'Aufträge' dimension, aber keinen Schlüssel. Nirgends konnte ich zeigen, dass die Projekt-Spalte ein Schlüssel ist! Ich sollte in der Lage sein, so viele Duplikate wie nötig, genau wie ein Feld Vorname.
Ich bin neu in Analysis Services-Projekt, und wirklich brauchen, um vorbei an der Tatsache, dass die SSAS ist ständig Klagen über doppelte Werte sein, wenn es völlig in Ordnung, wenn doppelte Werte. Ich bin mir sicher, das muss etwas einfach, ich bin Blick.
Edit: ich weiß, dass es möglich ist, setzen KeyDuplicate = ReportAndContinue/ReportAndStop
und es ist auch möglich KeyColumns
und NameColumns
. Aber das multistep-Prozess scheint sehr umständlich, für das, was scheint, sollte eine ganz normale operation, wie das hinzufügen Adresse1, Adresse2, Address3, Vorname, PLZ, und anderen Bereichen, die normalerweise vorhanden sind. Ich kann nicht glauben, dass dieses umständliche Verfahren angewendet werden müssen, um alle diese Felder?
Vielen Dank im Voraus.
InformationsquelleAutor der Frage Dave | 2011-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist normalerweise ein Ergebnis ist, dass beide Leerzeichen und Nullen in der Quell-Tabelle/view.
Im wesentlichen, SSAS tut dies für jedes Attribut
SELECT COALESCE(attr") VON der QUELLE
Analysis services standardmäßig konvertiert Nullen zu Leerzeichen, was in doppelter Wert Leerzeichen in den resultierenden feed - daher der Fehler.
Ich Zustimmen, das nervt und ist ein großer Schmerz für neue Spieler.
Lösung : Entfernen Sie alle null-Werte aus der Datenquelle, zum Beispiel durch Verwendung von ISNULL /COALESCE überall, oder filtern Sie Zeilen mit null, die mithilfe der where-Klausel oder das ausführen von update-Anweisung zu ersetzen, die alle null-Werte mit Werten, die vor der Verarbeitung des Cubes, etc.
InformationsquelleAutor der Antwort WOPR
Rechten Maustaste auf das Attribut, und wählen Sie "Eigenschaften". Finden "KeyColumn", die sich unter der "Source" - Kategorie in der Eigenschaften-Fenster. Bearbeiten Sie die "KeyColumn-Eigenschaft", es zeigt eine benutzerfreundliche Fenster.
Entfernen Sie das Attribut aus der rechten (Key-Spalten) neben dem Fenster, und ersetzen Sie es mit der tatsächlichen id-Spalte vom linken (Verfügbare Spalten) Seite.
Bearbeiten Sie dann die "NameColumn" - Eigenschaft, die gleichen Fenster angezeigt. Bewegen Sie den Attribut-Spalte (die eigentlichen Daten, die Sie anzeigen möchten) aus der linken Seite auf die Rechte.
Getestet in VS 2010 Shell SSDT.
InformationsquelleAutor der Antwort Eric W.
Ich hatte das gleiche Problem, und es war keine leere oder NULL-Werte in dem Attribut.
Nach einiger Analyse fand ich, dass einige Saiten hatte Zeilenumbruch-Zeichen am Ende. Also, wenn die 2 Werte des Attributs sind fast die gleichen, aber einer von Ihnen hat Zeilenumbruch-Zeichen am Ende, und der andere nicht, dann SSAS wirft "Doppelte Attribut key" - Fehler.
Es kann behoben werden durch das entfernen Zeilenumbruch-Zeichen aus dem Attribut.
Ich erstellte berechnete Spalte mit folgender definition:
Habe ich diese Spalte berechnet und im cube, und der Fehler verschwand.
InformationsquelleAutor der Antwort Pavel Sinkevich
Hatte gerade mir das geschehen heute und kratzte mich am Kopf für eine Weile, als keine der Lösungen hier gearbeitet. Schließlich löste es und dachte, ich würde meine Lösung für jemand anderen googlen dieser Fehler und die hier ankommen, nur wie ich es Tat.
In meinem Fall war es nicht
NULL
und leere Zeichenfolgen als hatte ich den [NullProcessing] Wert bereits auf "UnknownMember". Vielmehr war es die [Trimmen] Wert, in meinem Fall war es "Recht".Obwohl ich weiß, wie ich das gelöst(?) ich bin nicht 100% warum, aber ich gehe davon aus, wenn SQL Server ist es
SELECT DISTINCT(col) FROM source
und die [Trimmen] Wert festgelegt ist, als solche, Analysis-server später entfernt unter anderem Registerkarte chars vom Ende (dieRTRIM
im SQL Server beispielsweise nicht) und endet mit Duplikaten.Sodass die Einstellung von [Zuschneiden] , "Keiner", lösen kann, da die tabs waren Daten die ich nicht brauche (meine Daten analysiert/ausgelesen/eingetragen von externen Quellen), die ich einfach ersetzt tabs in die Spalte und nach, dass die Verarbeitung der Würfel ist wieder gut.
InformationsquelleAutor der Antwort Don
Während meine andere Lösung auf dieser Seite funktioniert (und je nach Situationen könnte mehr ideal), dies ist eine Alternative Lösung:
Hier ist ein mock-up von Teil mein Fehler:
Ich habe eine schnelle Suche für:
Es stellt sich heraus, dass es zwei verschiedene Einträge für dim_attribute1.Namen, die aufeinander abgestimmt diese:
Die erste Lösung teilen Sie Sie, ohne Frage, so ist es eine funktionierende Lösung (plus die performance-bonus). Aber eine alternative (wenn man will, damit die text-Werte als Schlüssel) um die Sortierung zu ändern:
Enthalten 'case sensitive'.
Andere ähnliche Probleme können Sie Leerzeichen und andere einfach nicht vor Ort subtile änderungen im text.
InformationsquelleAutor der Antwort David Halliday
Hatte ich ein ähnliches Problem heute (gleiche Fehlermeldung), zum Wohle von jemand anderem bekommen hier mit dem gleichen problem, habe ich einige Hinweise auf meine wiki: http://www.david-halliday.co.uk/wiki/doku.php?id=databases:oracle&#select_dates_for_ssas_include_hierarchy
Meinem Fall war SQL (vereinfacht und umformuliert und die unschuldigen zu verteidigen):
Die seltsame Sache war, war der Fehler passiert, für einige Fälle von dim_attribute1_name aber nicht dim_attribute2_name. Aber in diesem speziellen Fall das Attribut war genau das gleiche. Am Ende war die Lösung ändern Sie die SQL:
Verwenden Sie dann in der dimension (verstecken Sie die IDs in der Liste) den id-Wert für den Schlüssel, das Attribut und die name für den Namen des Attributs. Ich habe nicht gesehen, dies vor, aber aus irgendeinem Grund ist es hier passiert. Diese Lösung, die ich glaube, ist besser als das cube-Prozess ignorieren duplicate-key-Fehler.
Ich vermute, dass, wenn man Gebäude eine dimension verknüpfen von Tabellen das bessere Leistung/Zuverlässigkeit. Aber zitieren Sie mich nicht auf.
InformationsquelleAutor der Antwort David Halliday
Ich hatte das gleiche problem und ich fand eine Abhilfe für Sie.
Klicken Sie in der "Cube" => "Prozess" => "Einstellungen Ändern" => "Dimension Key Fehler"
Aktive "User Custom-Fehler Konfiguration"
Set "Fehler Ignorieren" für diese vier drop-down-Liste
"Schlüssel Nicht Gefunden"
"Duplicated Key"
"Null-Schlüssel umgewandelt unbekannt"
"Die Null-Taste nicht erlaubt"
Das problem mit den Tasten werden ignoriert.
InformationsquelleAutor der Antwort Jeferson Tenorio
Habe ich aber das problem nach dem ich schon spielen, um mit dem hinzufügen einer ID in der Schlüssel-Spalte ein Attribut. Seitdem habe ich entfernt, die Schlüssel aber gefunden, dass die select-Anweisung bei der Verarbeitung war immer noch unter Bezugnahme auf die ID, so dass das Attribut nicht einzigartig. Ich konnte nicht einen Weg finden, die Lösung diese über das Attribut Eigenschaften, so löschte ich das ganze Ausmaß und neu erstellt. Diese behoben das Problem.
InformationsquelleAutor der Antwort Lesley
Bitte Lesen Sie diesen blog: eine doppelte Attribut key gefunden wurde.... Blick auf die lange Erklärung für die Grund 1. Es wird erklärt, warum genau dies passiert ist.
Danke Jungs
Ned
InformationsquelleAutor der Antwort Ned
Ich gelöst durch die Angabe der SORTIERUNG auf meine sichten auf die relationale Datenbank wie folgt.
COALESCE([Descrição da Transação],") COLLATE Latin1_General_CI_AI
InformationsquelleAutor der Antwort Vinicius Paluch
Wenn Ihre Daten enthält Null-Werte und " SSAS geben das doppelte Attribut Schlüssel, weil Sie der Auffassung ist, Null-Werte ". Sie müssen nicht berühren Sie Ihre Daten, um dieses Problem zu beheben. Sie können gehen Sie zu Ihrer Datenquelle anzuzeigen, und fügen Sie eine benannte Berechnung mit Ausdruck COALESCE(mycolumn, "), dann verwenden Sie, die in Ihrer dimension statt der ursprünglichen Spalte. Diese beheben das problem an der Datenquelle anzeigen-Ebene und der dimension Prozess-Ordnung.
InformationsquelleAutor der Antwort Stefanos Demetriou
Lemme geben Sie eine Problemumgehung, wenn Sie noch wollen, gehen Sie mit der Bereitstellung & cube-browsing .
Unter 'Prozess-cube" - Fenster, ändern Schlüssel dimension Fehler Einstellungen, um benutzerdefinierte .
Sie wäre in der Lage, nahtlos bereitstellen & den cube durchsuchen .
trade-off ist hier, dass Sie möglicherweise nicht die Ergebnisse, die Sie erwartet.
InformationsquelleAutor der Antwort Nim J
einige Zeit brauchen zusammengesetzten Schlüssel in keyColumns zu lösen, die doppelte Attribut key
InformationsquelleAutor der Antwort Abdeloihab Bourassi
Habe ich in ausführen diesen Fehler viele Male aus verschiedenen Gründen, aber vor kurzem begegnet einem eher obskuren Ursache: die Anwesenheit der beta-ß-Zeichen in einer text-Spalte. Trotz der Tatsache, dass die Tausende einzigartige Wörter, die in der Spalte verwendet ein Sammelsurium von jeder obskuren ASCII-code unter der Sonne, SSAS würgte nur während der Verarbeitung der Spalte Werte enthalten die ß-symbol. Null-Werte, Duplikate, trimmen und dergleichen, wurden systematisch ausgeschlossen. Dies ist aller Wahrscheinlichkeit nach im Zusammenhang zu unergründlich und ungelöstes Thema in der MSDN-thread SSAS 2012 duplicate-key-Fehler mit 'ss' und 'ß'in denen SSAS interpretiert ß-Werte als 'ss' für einige unergründlichen Grund, auch wenn die Sortierung-Einstellungen waren korrekt. In meinem Fall, die Einstellung der Sortierung in der SSAS-Spalteneigenschaften entsprechen die Quell-Spalte für die Sortierung von SQL_Latin1_General_CP1_CS_AS auf der relationalen Seite haben nicht dieses Problem beheben, ich musste auch die Sortierung ändern, die für den gesamten server. Diese Problemumgehung kann schmerzhaft sein in bestimmten Umgebungen, wo andere Spalten sind abhängig von verschiedenen Sortierungen, aber er umging dieses Problem in meinem Fall und mir erlaubt, Prozess der dimension, ohne eine Anhängevorrichtung. Ich hoffe, das hilft der nächsten person, die zu stolpern, die über den gleichen "gotcha."
InformationsquelleAutor der Antwort SQLServerSteve