<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ixto-Blog &#187; Analysis Services 2008</title>
	<atom:link href="http://www.ixto.de/blog/category/sql-server-2008/analysis-services-2008/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ixto.de/blog</link>
	<description>Business Intelligence, Database Consulting, Software Development</description>
	<lastBuildDate>Mon, 26 Sep 2011 09:23:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spaltenreihenfolge in Drillthrough Actions</title>
		<link>http://www.ixto.de/blog/sql-server-2008/spaltenreihenfolge-in-drillthrough-actions/</link>
		<comments>http://www.ixto.de/blog/sql-server-2008/spaltenreihenfolge-in-drillthrough-actions/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 14:05:44 +0000</pubDate>
		<dc:creator>Marcel Ebner</dc:creator>
				<category><![CDATA[Analysis Services 2008]]></category>
		<category><![CDATA[MDX im SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/?p=142</guid>
		<description><![CDATA[Wer schon einmal Excel Drillthrough-Actions in einem Cube erstellt hat, wird sich mit Sicherheit mindestens zweimal durch das Fenster &#8220;Drillthroughspalten&#8221; geklickt haben, schließlich kann es kaum vorkommen, dass man schon beim ersten Mal exakt die Informationen trifft, die der Kunde nach der Präsentation des Drillthrough-Features für beachtenswert hält. Entweder hat man die falschen Dimensionen und [...]]]></description>
			<content:encoded><![CDATA[<p>Wer schon einmal Excel Drillthrough-Actions in einem Cube erstellt hat, wird sich mit Sicherheit mindestens zweimal durch das Fenster &#8220;Drillthroughspalten&#8221; geklickt haben, schließlich kann es kaum vorkommen, dass man schon beim ersten Mal exakt die Informationen trifft, die der Kunde nach der Präsentation des Drillthrough-Features für beachtenswert hält. Entweder hat man die falschen Dimensionen und Attribute gewählt oder die Reihenfolge ist unglücklich.<br />
 <span id="more-142"></span><br />
<br\><br />
Wer dann, mit Hoffnung im Herzen und einem Mausklick rechts, versucht, im Kontextmenü den Eintrag &#8220;Reihenfolge ändern&#8221; oder &#8220;Dimension auswählen&#8221; zu finden, wird bitter enttäuscht. Zu sehen gibt&#8217;s nur &#8220;Löschen&#8221;.</p>
<p><img src="http://reborn-resistance.com/user/ric/ixto/blog/me/01_Kontextmenue.jpg" alt="" /><br />
<br\><br />
So bleibt der Versuch, <strong><em>zwischen</em></strong> zwei vorhandenen Dimensionen noch eine dritte hinzuzufügen oder allein einen Eintrag zu ändern, von Misserfolg gekrönt und man darf sich die Aktionsspalten nochmal ganz von vorn zusammenklicken. Will man darüber hinaus gar <strong><em>die Reihenfolge der Attribute</em></strong> einer Dimension ändern, ist man (fast) hilflos der von Visual Studio angebotenen Reihenfolge ausgeliefert, deren Sortierungsgrundlage wohl immer ein Geheimnis bleiben wird.<br />
<br\><br />
Zum Glück gibt es noch die Möglichkeit im XMLA Script des Cubes selbst einzugreifen.<br />
<br\><br />
Hierzu sollte man im Reiter &#8220;Aktionen&#8221; im Fenster &#8220;Aktionsplaner&#8221; die eben erstellte Drillthrough-Aktion auswählen, in der Eigenschaft [ID] den entsprechenden Wert auslesen und im Projektmappenexplorer mit Rechtsklick auf den entsprechenden Cube &#8220;Code anzeigen&#8221; wählen. VisualStudio öffnet eine neue Reiterkarte mit der Cubedefinition im XMLA Format, mit Strg+F kann man den Abschnitt mit der Drillthrough-Aktion schnell finden. (Die XML-Elemente &lt;ID&gt;,&lt;Name&gt; und die &lt;Columns&gt; Sequenz müssen vorhanden sein, das Actions-Element ist unterhalb der KPIs zu finden)</p>
<p><img src="http://reborn-resistance.com/user/ric/ixto/blog/me/02_XMLA.jpg" alt="" /><br />
<br\><br />
Nun kann man die Elemente &lt;Column&gt; innerhalb des &lt;Columns&gt;-Element per Cut&amp;Paste verschieben. Leider gibt es (bisher) keine Möglichkeit den Anzeigenamen der Spalten in Excel festzulegen, aber, immerhin, die Reihenfolge der Attribute (Column) ist nun frei wählbar. Speichert man dann die Änderungen ab, verändert sich auch die Anzeige der Dimensionsreihenfolge im Fenster &#8220;Drillthroughspalten&#8221;, zwar erkennt der Designer nur, dass eine <strong><em>Dimension</em></strong> vor den Measures steht und zeigt dementsprechend <strong><em>alle</em></strong> Attribute der Dimension vor dem Measure an, die Reihenfolge der Spalten aber, wie sie im XMLA Script festgelegt ist, bleibt beim Exceldrillthrough erhalten.</p>
<p><img src="http://reborn-resistance.com/user/ric/ixto/blog/me/03_Sorted.jpg" alt="" /><br />
<br\><br />
<span style="font-size: 9pt;">(<em>nur Promotion Name vor SalesSummary, nicht auch End Date und Start Date)</em></span><br />
<br\><br />
<img src="http://reborn-resistance.com/user/ric/ixto/blog/me/04_Excel.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2008/spaltenreihenfolge-in-drillthrough-actions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analysis Services und das nachtr&#228;gliche Erlauben von NULL-Werten in den Quelldaten &#8211; oder: Wie werd ich blo&#223; die 0en los?</title>
		<link>http://www.ixto.de/blog/sql-server-2008/analysis-services-und-das-nachtrgliche-erlauben-von-null-werten-in-den-quelldaten-oder-wie-werd-ich-blo-die-0en-los/</link>
		<comments>http://www.ixto.de/blog/sql-server-2008/analysis-services-und-das-nachtrgliche-erlauben-von-null-werten-in-den-quelldaten-oder-wie-werd-ich-blo-die-0en-los/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:22:55 +0000</pubDate>
		<dc:creator>Markus Schechner</dc:creator>
				<category><![CDATA[Analysis Services 2008]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[NOT NULL]]></category>
		<category><![CDATA[NullProcessing]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/?p=106</guid>
		<description><![CDATA[Ich hatte vor kurzem eine interessante Begegnung mit einem SSAS Cube (2008), über die ich an dieser Stelle gerne berichten möchte.
Dabei ging es um einen Cube, bei dem für ein bestimmtes Measure die Leerzeilenunterdrückung nicht so richtig funktionierte. Wenn man dieses Measure, das eigentlich eher selten gefüllt war, abfragte, dann sah das in etwa so [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte vor kurzem eine interessante Begegnung mit einem SSAS Cube (2008), über die ich an dieser Stelle gerne berichten möchte.</p>
<p>Dabei ging es um einen Cube, bei dem für ein bestimmtes Measure die Leerzeilenunterdrückung nicht so richtig funktionierte. Wenn man dieses Measure, das eigentlich eher selten gefüllt war, abfragte, dann sah das in etwa so aus:<br />
<a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0021.jpg"><img style="display: inline; border-width: 0px;" title="clip_image002[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0021_thumb.jpg" border="0" alt="clip_image002[1]" width="244" height="115" /></a></p>
<p><span id="more-106"></span></p>
<p>Wie in diesem aus der Adventure Works stammenden Beispiel (wir sehen hier den Reseller Sales Discount Amount nach Reseller Telefonnummer) wurden die leeren Zellen mit einer 0 angezeigt, was ja bekanntlich nicht leer ist und somit auch nicht unterdrückt werden kann. Bei kurzem Blick in die Quelle fand ich in etwa folgendes Bild:</p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0041.jpg"><img style="display: inline; border-width: 0px;" title="clip_image004[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0041_thumb.jpg" border="0" alt="clip_image004[1]" width="244" height="113" /></a></p>
<p>War also alles korrekt, was die Analysis Services so angezeigt haben. Der verwunderliche Teil der Geschichte beginnt aber auch erst jetzt.</p>
<p>Da es für Measures, bei denen mich die 0en gar nicht interessieren, nur bedingt Sinn macht, diese in der Datenbank abzulegen, habe ich also die Definition der Tabelle so geändert, dass die betroffene Spalte ab sofort NULL-Werte erlaubt. Danach wurden dann noch mit einem kleinen Statement wie unten die 0en eliminiert.</p>
<div>
<div><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span></div>
<div><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #0000ff; font-size: x-small;">UPDATE</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> dbo</span><span style="font-family: Courier New; color: #808080; font-size: x-small;">.</span><span style="font-family: Courier New; color: #000000; font-size: x-small;">FactResellerSales</span> </span></div>
<p><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #0000ff; font-size: x-small;">SET</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> DiscountAmount </span><span style="font-family: Courier New; color: #808080; font-size: x-small;">=</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span><span style="font-family: Courier New; color: #808080; font-size: x-small;">NULL</span> </p>
<p><span style="font-family: Courier New; color: #0000ff; font-size: x-small;">WHERE</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> DiscountAmount </span><span style="font-family: Courier New; color: #808080; font-size: x-small;">=</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> 0</span> </p>
<p>Wie fast zu erwarten ist, reicht das aber noch nicht aus, denn bis die Zahlen dann wirklich im Cube landen, haben wir ja noch ein paar Abstraktionsebenen vor uns. In diesem Fall war die nächste zu überwindende Hürde die View, die der Cube für den Datenzugriff benutzt:</p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0061.jpg"><img style="display: inline; border-width: 0px;" title="clip_image006[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0061_thumb.jpg" border="0" alt="clip_image006[1]" width="182" height="244" /></a></p>
<p>Dort war die Spalte nämlich weiterhin als NOT NULL definiert (im Bild ganz unten). Also erst mal rasch die Metadaten der View aktualisiert:</p>
<div><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span></span></div>
<div><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #800000; font-size: x-small;">SP_REFRESHVIEW</span><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span><span style="font-family: Courier New; color: #ff0000; font-size: x-small;">N’dbo.v_FactResellerSales’</span><span style="font-family: Courier New; color: #808080; font-size: x-small;">;</span> </span></span></div>
<p><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;">Prompt stimmt die View mit der Realität überein. Aber selbstverständlich reicht auch das noch nicht, damit die 0en aus meinem Cube verschwinden. Es gibt da ja auch noch die Data Source View in den Analysis Services, die Metadaten speichert und die ich deswegen vorsorglich aktualisierte. Das Visual Studio meldete mir aber leider nach dem Klick auf den Refresh-Knopf, dass keine Änderungen gefunden wurden. Und wenn man sich dann die Eigenschaften der Spalte in der DSV anschaut: </p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0081.jpg"><img style="display: inline; border-width: 0px;" title="clip_image008[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0081_thumb.jpg" border="0" alt="clip_image008[1]" width="244" height="236" /></a></p>
<p>Dann gibt es eine Eigenschaft AllowNull, die leider immer noch auf False stand. Und<br />
natürlich sind die 0en nach erneuter Aufbereitung auch immer noch im Cube.</p>
<p>Da ich bei meiner View als Datenquelle bleiben wollte habe ich also kurzfristig „Tabelle ersetzen durch neue benannte Abfrage“ gewählt und danach dann wieder die ursprüngliche View über „Tabelle ersetzen durch andere Tabelle“ übernommen. Und endlich: AllowNull steht auf true. Das Ganze also schnell auf dem Server bereitgestellt, aufbereitet und … NICHTS! Immer noch grinsen mich die 0en förmlich an.</p>
<p>Hm, ist vielleicht beim Measure selbst noch was falsch eingestellt?</p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0101.jpg"><img style="display: inline; border-width: 0px;" title="clip_image010[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0101_thumb.jpg" border="0" alt="clip_image010[1]" width="244" height="215" /></a></p>
<p>Eigentlich sieht alles gut aus. NullProcessing steht auf Automatic, was der Default ist. Ich persönlich musste das zwar bisher auch noch nie ändern, aber irgendwann ist ja immer das erste Mal:</p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0121.jpg"><img style="display: inline; border-width: 0px;" title="clip_image012[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0121_thumb.jpg" border="0" alt="clip_image012[1]" width="244" height="216" /></a></p>
<p>Nach dem Ändern des NullProcessing auf Preserve verwunderte dann beim Bereitstellen, dass die automatische Aufbereitung keinen Anlass sah, die betroffene Measure Group neu mit Daten zu befüllen. Wen wundert’s dann noch, dass die 0en auch immer noch da waren.</p>
<p>Die nun folgende manuelle Aufbereitung war wohl die leichteste Übung, und endlich:</p>
<p><a href="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0141.jpg"><img style="display: inline; border-width: 0px;" title="clip_image014[1]" src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/AnalysisServicesunddasnachtrglicheErlaub_11BCD/clip_image0141_thumb.jpg" border="0" alt="clip_image014[1]" width="208" height="106" /></a></p>
<p>Ich bin die 0en los!</p>
<p></span></span></span></p>
<div><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span></span></span></div>
<div><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </span></span></span></div>
<p><span style="font-family: Courier New; color: #000000; font-size: x-small;"><span style="font-family: Courier New; color: #800000; font-size: x-small;"><span style="font-family: Courier New; color: #000000; font-size: x-small;"> </p>
<p></span></span> </p>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2008/analysis-services-und-das-nachtrgliche-erlauben-von-null-werten-in-den-quelldaten-oder-wie-werd-ich-blo-die-0en-los/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Excel 2010 &#8211; Comeback des OLAP-Writebacks</title>
		<link>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/</link>
		<comments>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:29:28 +0000</pubDate>
		<dc:creator>Markus Schechner</dc:creator>
				<category><![CDATA[Analysis Services 2005]]></category>
		<category><![CDATA[Analysis Services 2008]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Excel 2010]]></category>
		<category><![CDATA[Olap]]></category>
		<category><![CDATA[Writeback]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/</guid>
		<description><![CDATA[Hallo zusammen,

ich habe in einer Feature-Liste für das neue Excel 2010 etwas gelesen, was ich unbedingt mal ausprobieren musste: Das allseits gefürchtete/geliebte Writeback für OLAP-Cubes kommt zurück.

Meine Ergebnisse möchte ich Euch natürlich nicht vorenthalten. Ich habe mir in einem 2008er Cube (Adventure Works 2008) eine kleine, einfache Partition mit Planzahlen gebaut und habe dort das [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen,<br />
<br\><br />
ich habe in einer Feature-Liste für das neue Excel 2010 etwas gelesen, was ich unbedingt mal ausprobieren musste: Das allseits gefürchtete/geliebte Writeback für OLAP-Cubes kommt zurück.<br />
<br\><br />
Meine Ergebnisse möchte ich Euch natürlich nicht vorenthalten. Ich habe mir in einem 2008er Cube (Adventure Works 2008) eine kleine, einfache Partition mit Planzahlen gebaut und habe dort das Writeback im Modus ROLAP aktiviert (die AS können das mit dem Zurückschreiben übrigens durchweg seit mind. Version 2000 und mit dem Excel Add-in for SQL Server Analysis Services konnte man das sogar schon mal benutzen).</p>
<p><span id="more-70"></span><br />
<br\><br />
Dann habe ich mich mit Excel 2010 auf diesen Cube verbunden und die &#8220;What-If-Analyis&#8221; aktiviert.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co1.png" alt="" /><br />
<br\><br />
Folgende Settings habe ich genommen.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co2.png" alt="" /><br />
<br\><br />
Dann hab ich mein Measure mit zwei Dimensionen in die Pivot-Tabelle gepackt…</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co3.png" alt="" /><br />
<br\><br />
… und den Wert für Europa erhöht.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co4.png" alt="" /><br />
<br\><br />
Nach dem Neuberechnen der Pivot-Tabelle haben sich alle zugehörigen Werte erhöht.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co5.png" alt="" /><br />
<br\><br />
Allerdings ist das ganze bis dahin nur eine Art Simulation. Erst wenn man es explizit sagt, werden die Änderungen in den Cube übernommen.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co6.png" alt="" /><br />
<br\><br />
Dort landen sie dann in der vorher definierten Tabelle.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co7.png" alt="" /><br />
<br\><br />
Nett, oder? Und die aus alten Zeiten bekannten Performanceprobleme beim Writeback auf größere Datenmengen sollen seit SQL Server 2008 auch der Vergangenheit angehören, da nicht mehr nur ROLAP, sondern auch MOLAP unterstützt wird. Das kann man aber auf einer Adventure Works schlecht überprüfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

