Benutzer mit den meisten Antworten
Warnungen zu Attributen und Hierarchien in Analysis Services

Frage
-
Ich habe ein altes umfangreicheres SSAS-Projekt "geerbt", welches ich jetzt von der Version 2005 nach 2014 migrieren möchte. Meine Erfahrungen und Kenntnisse von Analysis Services sind bisher recht gering, aber grundsätzlich hat es schon funktioniert, das alte Projekt zu importieren und auf dem neuen Server zu veröffentlichen. Die angezeigten Ergebnisse sind auch richtig, doch was mich irritiert, sind zahlreiche Warnungen, die ich bei der Bereitstellung erhalte. Insgesamt gibt es über 500 Warnungen, die sich wenn ich mich nicht vertan habe, alle auf die folgenden sieben Meldungen zurückführen lassen:
- Warnung AttributeRelationship: Der für die Attributbeziehung angegebene Name stimmt nicht mit dem Namen des verknüpften Attributs überein
- Warnung Dimension: Ignorieren Sie keine Fehler aufgrund doppelter Schlüssel. Ändern Sie die KeyDuplicate-Eigenschaft der Fehlerkonfiguration so, dass sie nicht auf 'IgnoreError' festgelegt ist
- Warnung Dimension: Erstellen Sie Hierarchien in Dimensionen, die keine über- und untergeordnete Dimensionen sind
- Warnung Hierarchy: Mindestens eine Ebene in dieser Hierarchie weist keine Attributbeziehungen auf. Dies führt möglicherweise zu einer verringerten Abfrageleistung
- Warnung Level: Entwerfen Sie Hierarchien so, dass niedrigere Ebenen mehr Elemente als höhere Elemente aufweisen
- Warnung Dimension: Vermeiden Sie sichtbare Attributhierarchien für Attribute, die in benutzerdefinierten Hierarchien als Ebenen verwendet werden
- Warnung RelationalDataSource: Verwenden Sie in einer Datenquelle keine nicht unterstützten OLE DB-Anbieter
Ich würde die Warnungen gerne eliminieren, damit ich in der Flut der Meldungen nicht etwas womöglich Wichtiges übersehe, aber zu diesen deutschsprachigen Texten habe ich teilweise überhaupt keine hilfreichen Informationen im Internet gefunden. Kann ich mein Visual Studio, wenn es auf Deutsch installiert ist, einfach so umschalten, dass ich die Meldungen in englischer Sprache sehe oder gibt es eine andere Möglichkeit sich den Text einer Warnung in Englisch anzeigen zu lassen um dann besser danach suchen zu können?
Verknüpft mit diesen Warnungen scheinen unterschiedliche Symbole in den Attributsbeziehungen zu sein. Es gibt da schwarze Pfeile, blaue Pfeile, gelbe Warnzeichen und blaue Warnzeichen. Da habe ich bisher auch keine Informationen zu gefunden. Kann mir jemand erklären, wofür welches Symbol steht?
Teilweise ist es mir bereits gelungen, die Warnungen zu reduzieren aber manchmal führen meine Änderungen auch zu Fehlern statt Warnungen, bei den ersten beiden Warnungen z.B. zu diesen Fehlern:
- Fehler im Metadaten-Manager. Die Zeit-Dimension enthält eine Elementeigenschaft mit ungültigem Namen: 'NAME' ist ein reserviertes Wort.
- Fehler im OLAP-Speichermodul: Der Datensatz wurde ausgelassen, da der Attributschlüssel ein Duplikat ist. Attribut: Name 3 der Dimension: Kreditor aus Datenbank: CubeV4, Datensatz: 21..
(Wobei ich diese Meldung so verstehe, dass zwei Kreditoren den gleichen Inhalt im Feld „Name 3“ haben,
was meines Erachtens doch kein Problem sein sollte).In das ganze Thema Hierarchien und Attributsbeziehungen und auch in den Aufbau unserer alten Cubes muss ich mich noch tiefer einarbeiten. Für Links zu Seiten oder Literaturhinweise, wo diese Themen gut beschrieben werden, wäre ich dankbar.
Antworten
-
Hallo uwdn
was die unterschiedlichen Farben bei den Pfeilen angeht, so muss ich gestehen, kann ich da auch den Grund nicht erkennen. Möglicherweise ist das neu in den Data Tools. Ist mir jedenfalls noch nicht bewusst aufgefallen.
Ohne das Schema selber zu sehen und verifizieren, ist es schwierig, die genaue Ursache zu nennen.
Eine umfangreiche Erklärung zu Schlüsselattributen und den Möglichen Fehlerquellen findest Du hier: Analysis Services: Errors in the OLAP storage engine: A duplicate attribute key has been found when processing
Solange ihr keine MDX-Berechnungen anstellt, glaube ich gerne, das die Daten am Ende dennoch korrekt waren. Dann "unterperformt" der Cube einfach nur.
Bei einem duplicate key wäre ich mir da allerdings nicht so sicher.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Bearbeitet Andreas.WolterMicrosoft employee Montag, 6. Oktober 2014 14:59 Ergänzungen
- Als Antwort vorgeschlagen Aleksander Chalabashiev Dienstag, 7. Oktober 2014 12:01
- Als Antwort markiert uwdn Mittwoch, 8. Oktober 2014 08:53
Alle Antworten
-
Hallo uwdn
ganz ehrlich: diesem Cube würde ich nicht trauen.
Duplikate Schlüsselattribute sind per Definition ein Problem. In einem guten Design darf das nicht auftreten. Die Fehler dabei zu ignorieren, wie der Entwickler es wohl eingerichtet hatte, ist eine schlechte Idee.
Hier ist wirklich Grundlagenarbeit gefragt. Vermutliche angefangen im Datenbankdesign.
Eines der wenigen empfehlenswerten Bücher in diesem Bereich ist folgendes: Expert Cube Development with Microsoft SQL Server 2008 Analysis Services der Kollegen Marco Russo, Alberto Ferrari und Chris Webb
Die gezackten Linien stehen stehen dort, wo man per Mouseover Optimierungstipps erhalten kann. Die gelben Dreiecke sind wie üblich Warnungen. An die blauen Dreiecke kann ich micht nicht erinnern.
Ignorieren sollte man davon nur, wo man sicher ist warum man es in seinem jeweiligen Fall kann.
Ich wünsche Dir viel Erfolg. Das sieht jedenfalls nach Arbeit aus. :)
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Hallo Andreas Wolter,
vielen Dank für die Antwort und den Literatur-Tipp.
Zwei Anmerkungen auf die Schnelle:
1. In den Attributsbeziehungen gibt es ja nicht nur die gezackten blauen Linien sondern auch die Pfeile zwischen den Attributen sind mal schwarz und mal blau (z.B. fünfter Pfeil in meinem kleinen Bildchen). Was bedeutet dieser Unterschied?
2. Mit der Begrifflichkeit "Schlüsselattribute" komme ich noch nicht ganz klar. Ich habe eine Dimension "Kreditor" in diesem Fall sogar ohne irgendwelche Hierarchien. Der Dimensionsschlüssel ist eine eindeutige ID-Nummer. SSAS meckert aber, wenn ich das richtig verstehe, über gleiche Inhalte im Feld "Name 3" und mir ist nicht klar, warum für dieses Feld eine Eindeutigkeit gefordert sein sollte und falls ja, wo hiterlegt ist, dass dieses Feld eindeutig sein muss.
Das Datenbankdesign selber sieht für mich übrigens sehr ordentlich aus. Aber die Umsetzung im SSAS scheint mit etwas chaotisch. Hat aber für viele Jahre funktioniert und unser Controlling ist mit den Zahlen, die daraus kommen, glücklich.
-
Hallo uwdn
was die unterschiedlichen Farben bei den Pfeilen angeht, so muss ich gestehen, kann ich da auch den Grund nicht erkennen. Möglicherweise ist das neu in den Data Tools. Ist mir jedenfalls noch nicht bewusst aufgefallen.
Ohne das Schema selber zu sehen und verifizieren, ist es schwierig, die genaue Ursache zu nennen.
Eine umfangreiche Erklärung zu Schlüsselattributen und den Möglichen Fehlerquellen findest Du hier: Analysis Services: Errors in the OLAP storage engine: A duplicate attribute key has been found when processing
Solange ihr keine MDX-Berechnungen anstellt, glaube ich gerne, das die Daten am Ende dennoch korrekt waren. Dann "unterperformt" der Cube einfach nur.
Bei einem duplicate key wäre ich mir da allerdings nicht so sicher.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Bearbeitet Andreas.WolterMicrosoft employee Montag, 6. Oktober 2014 14:59 Ergänzungen
- Als Antwort vorgeschlagen Aleksander Chalabashiev Dienstag, 7. Oktober 2014 12:01
- Als Antwort markiert uwdn Mittwoch, 8. Oktober 2014 08:53
-
Hallo,
die blauen Linien kommen vom BPA = Best Practice Analyser aus BIDS/SSDT und beruhen auf den Erfahrungen von MS Mitarbeitern & Entwicklern aus dem Projekt REAL, werden aber auch weiter entwickelt.
Die 'IgnoreError' Einstellung war in BIDS 2005 leider die Standard-Einstellung und sollte wirklich abgeändert werden, sonst bleiben Fehler unentdeckt.
Bei den Attributs-Beziehungen gibt es nur zwei unterschiedliche Pfeile, den ausgefüllten beim "Rigid" Beziehungstypen und einen hohlen bei "flexible"; blau wird der Pfeil dargestellt, wenn eine Warnung vorliegt. Bei Attributen mit reservierten Begriffen wie "Name" fügt SSDT an den Relationsnamen ein Underscore hinten ran, und das meckert SSDST dann selbst wieder an; einfach den Underscore entfernen, die Warnung verschwindet und der Pfeil wird schwarz:
Manche der Warnungen sind wirklich nicht nützlich, die kannst Du in der Fehlerliste über Rechte-Maus >= "Verwerfen" ausblenden lassen. Einen Hilfelink gibt es dort auch, nur bekommt man da keine Hilfe :-(
"Dimension: Vermeiden Sie sichtbare Attributhierarchien für Attribute, die in benutzerdefinierten Hierarchien als Ebenen verwendet werden" ist zum Beispiel so eine, sie sagt nur aus, das ein Attribute als solche sichtbar ist als auch noch zusätzlich in einer Hierachy; das könne die User verwirren wenn sie zweimal das selbe Attribut vorfinden.Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Aleksander Chalabashiev Dienstag, 7. Oktober 2014 12:01
-
...
Ich habe eine Dimension "Kreditor" in diesem Fall sogar ohne irgendwelche Hierarchien....SSAS meckert aber, wenn ich das richtig verstehe, über gleiche Inhalte im Feld "Name 3"...
Was steht denn in der KeyColumn jenes Attributes? Wenn dort auch die ID steht, wäre das ein typischer Fehler. Dort müsste dannn entweder "Name 3" oder eine Kombination der beiden Spalten hinein.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Die KeyColumn der Attribute ist immer die Attributsspalte selber im genannten Beispiel also „Name3“. Ich habe mir das nochmal bei mehreren Dimensionen angeschaut. Wenn ich die „ErrorConfiguration“ auf (Standard) also „KeyDuplicate:IgnoreError“ stelle, erhalte ich zwar für jede Dimension eine Warnung, aber die Verarbeitung der Dimension läuft durch. Ändere ich die „ErrorConfiguration“ auf „Benutzerdefiniert“ mit der Einstellung „KeyDuplicate:ReportAndContinue“ bricht die Verarbeitung beim ersten doppelten Wert eines Attributs ab (trotz „Continue“). Das sieht dann bei z.B. so aus:
Natürlich kann es halt mehrere Kreditoren im Ort "Gießen" geben. Und wenn die Spalte "Ort" der Attributssschlüssel ist, dann gibt es halt doppelte Attributsschlüssel. Warum wird mir das jetzt als Fehler gemeldet?
P.S.: Das Buch von Russo, Ferrari und Webb scheint es übrigens in einer neueren Auflage zu geben:
Expert Cube Development with SQL Server Analysis Services 2012 Multidimensional Models
Ich denke zumindest, dass es der direkte Nachfolger des von Dir genannten Buches ist und habe es mir gestern Abend noch bestellt.
-
Und schon würde ich den Ergebnissen des Cubes nicht mehr so recht trauen.
Im oberen Bereich findest Du bei jedem Verarbeitungsschritt auch die SQL Abfrage dazu, die solltest Du Dir mal genauer ansehen. Wenn z.B. bei Ort mehr Felder als "DISTINCT ORT" abgefragt werden, dann liegt der Fehler in den Hierarchien + Attributes-Beziehungen, das die nicht richtig definiert.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Ich denke die Farben sind noch ein wenig anders zu erklären, als von Dir dargestellt (oder wir sprechen gerade von unterschiedlichen Dingen) aber ich glaube ich habe es jetzt verstanden:
Feste Attributsbeziehungen werden im oberen Teil durch einen ausgefüllten Pfeil und im unteren Teil durch einen blauen Pfeil dargestellt, flexible dementsprechend durch einen nicht ausgefüllten bzw. schwarzen Pfeil. Wenn eine Warnung zu einer Attributsbeziehung vorliegt, wird die Linie im oberen Bereich rot und es erscheint dort immer ein gelbes Ausrufezeichen. Im unteren Bereich ist das Ausrufezeichen nur bei festen Beziehungen gelb und bei flexiblen blau. Zusätzlich wird dort die Warnung durch eine blaue Schlangenlinie gekennzeichnet.
Das Entfernen des automatisch angefügten Underscores am Ende von reservierten Bezeichnungen ist so einfach aber nicht möglich. Dann verschwindet zwar die Warnung aber ich erhalte, wie oben bereits geschrieben einen Fehler: "Fehler im Metadaten-Manager. Die Zeit-Dimension enthält eine Elementeigenschaft mit ungültigem Namen: 'NAME' ist ein reserviertes Wort."
-
Jetzt verstehe ich bald gar nichts mehr. In der SQL-Abfrage steht das SELECT DISTINCT für genau ein Feld und trotzdem wird über doppelte Datensätze gemeckert:
Das Attribut, bei dem die Verarbeitung abbricht, ist offensichtlich immer wieder unterschiedlich. Das ganze geht übrigens gegen eine Oracle-DB aber ein SELECT DISTINCT ist bei Oracle auch bekannt.
-
Hallo uwdn,
hast Du meinen Hinweis dazu geleseln?
Bitte lies Dir doch mal diesen Artikel durch, um das Thema zu verstehen.
Wahrscheinlich steht bei Dir hinter "Name 3" die ID selber, und da hilft auch das DISTINCT nicht. Das ergibt sich aus dem Artikel übrigens ;-)
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Hmm, ich verstehe den Artikel zunächst genau andersrum. Demnach müsste ich doch, sobald in einem Attribut die gleichen Werte mehrfach vorkommen, nicht mehr die Attributsspalte als Schlüssel verwenden, sondern am besten immer direkt die ID-Nummer meiner Dimensionstabelle
"The duplicate attribute key error can occur in multiple situations. In many cases, the recommended solution is to change the KeyColumn by setting it to a unique Attribute [...] By default, both the Name and the KeyColumn are based on the same column in the DSV. If that column contains duplicate values, the duplicate key error will occur."
Da also Kunden den gleichen Ort oder die gleiche Straße oder sogar den gleichen Namen haben können, wäre das quasi für jedes Attribut der Fall und ich trage als Attributsschlüssel z.B. immer die Kunden-Nummer ein, oder halt meine ID, welche in unserem Fall ein Surrogatschlüssel ist.
-
Hallo uwdn
ich bin irgendwie abgehängt. Das Attribut ist sicher in keiner Hierarchie enthalten?
Kannst Du das mal zeigen, also die gesamte Dimension, die Attribte Relationships, und die Key-Einstelllungen des Attributes in Frage..
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Ich bin auch zunehmend verwirrt. Ich habe jetzt mal angefangen, bei meiner Kreditoren-Dimension die Attribute, wo SSAS über doppelte Einträge meckert, so umzustellen, dass ich als NameColumn die Attributsspalte verwende und als KeyColumn immer den DimensionKey, was in diesem Fall der ID-Nummer entspricht. Nach jeder Änderung habe ich die Dimension neu verarbeitet und nachdem ich vier oder fünf Attribute geändert hatte (u.a. Ort, Name, Gesperrt, E-Mail), war SSAS plötzlich zufrieden und hat die komplette Dimension ohne meckern verarbeitet. Dabei gibt es auf jeden Fall noch weitere Spalten mit doppelten Einträgen. Zum Beispiel die Postleitzahl. Das Attribut für die PLZ sieht aber noch so aus wie vorher, wohingegen das Orts-Attribut aufgrund doppelter Einträge geändert wurde:
Die Dimension selber ist ganz simpel, ohne Hierarchien:
Würdest Du mir den generell zustimmen, dass das von Dir verlinkte Dokument zunächst mal behauptet, dass man bei doppelten Einträgen in einer Attributsspalte immer eine andere eindeutige Spalte (oder eine eindeutige Kombination von Spalten) als Schlüssel verwenden soll? (Womit das SELECT DISTINCT ja eigentlich hinfällig wäre)
-
Hallo uwdn,
ich habe mir das jetzt mal eine Weile angesehen, muss aber leider mal cut machen aufgrund anderer Verpflichtungen.
Ich müsste mich da schon mal ein paar Stündchen mit dem Cube auseinandersetzen. Wenn mein Gefühl nicht trügt, ist dort einiges im Cube-Design eher nach "GutGlück-Mit-Pflaster-drauf" zusammengebaut worden.
Prinzipiell darf ein key-Element nicht doppelt sein. Auch Null-Werte oder Collation können zu diesen Fehlern führen. Insgesamt ist der Artikel schon ganz gut und umfassend. Aber im Moment ist das eher "rumstochern", und das ist nicht wirklich zielführend, da wie ich vermute, dort im Cube-Design grundsätzlich einiges missachtet wurde - und was die Datenquelle angeht so würde ich da auch keine Hand ins Feuer legen, nur weil es dort Primary Keys und Namensstandards gibt :)
Möglicherweise ist es auch einfacher den Cube komplett neu aufzubauen, anstatt jede Dimension nach Designfehlern zu durchsuchen.
Frohes Schaffen zunächst, und sorry, es nicht mal eben im Vorbeigehen lösen zu können :)
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Na ja, alles neu machen ist nicht so einfach. Es ist leider nicht nur ein Cube sondern ein Projekt mit 7 Cubes, 38 Dimensionen (die fast alle in mehreren Cubes verwendet werden) und mit bis zu 105 Attributen pro Dimension. Da wäre ich schon ein Weilchen beschäftigt, das alles nochmal neu aufzubauen. Aber ich mache diesen Thread jetzt mal zu und werde demnächst ggf. zu konkreten Problemen weitere Fragen stellen. Meine ursprünglichen Fragen hier waren ja eigentlich nur:
- Kann ich die Meldungen auch ohne viel Aufwand in Englisch anzeigen lassen (genau diese Frage ist allerdings noch offen)
- Was bedeuten die unterschiedlichen Farben bei den Pfeilen zwischen den Attributen (hat sich im Laufe der Diskussion weitgehend geklärt)
Auf jeden Fall danke für die Unterstützung und Informationen. Ich habe einiges gelernt und verstehe das ganze Thema etwas besser als am Anfang.
-
Nachtrag: Zu meiner Frage nach englischen Fehlermeldungen habe inzwischen diese Seite gefunden:
Design Warning Rules (Analysis Services - Multidimensional Data)
Sie betrifft zwar SQL-Server 2008, aber etwas neueres scheint es nicht zu geben und die dort aufgeführte Liste von möglichen Warnungen ist vermutlich noch immer aktuell.