Samstag, 11. Mai 2013

T-SQL Code übersichtlich formatieren

Der T-SQL Editor in SQL Server Management Studio (SSMS) ist von Version zu Version immer besser geworden. Dank IntelliSense ist das Schreiben von Objektnamen (Tabellen, Spalten, etc.) schnell und fehlerfrei möglich. Aber wenn es darum geht, wann ein Zeilenumbruch erfolgt, ob Kommas am Anfang oder am Ende einer Zeile stehen und wie weit ein Ausdruck einzurücken ist, endet die Unterstützung. Je länger die SQL Statements, desto aufwändiger gestaltet sich die Formatierung.

Tools unterstützen beim Formatieren


Zum Glück erlaubt SSMS das Einbinden von Erweiterungen. Was den Funktionsumfang und die Qualität betrifft, ist hier wahrscheinlich SQL Prompt von redgate an erster Stelle zu nennen. Entwickler, die das SQL Developer Bundle nutzen, finden SQL Prompt darin bereits vor. Einziger Nachteil: Die Kosten in Höhe von ca. 300 Euro für die Professional Version von SQL Prompt.

Mein Favorit unter den kostenfreien Tools


Jedoch gibt es auch kostenfreie Tools. Einige habe ich kurz ausprobiert und dabei schnell meinen Favoriten gefunden. Es handelt sich dabei um ein Open Source Projekt von Tao Klerks mit dem auffälligen Namen Poor Man's T-SQL Formatter. Die MSI-Datei ist schnell heruntergeladen und installiert. Danach erweitert sich das Menü in SSMS um zwei neue Funktionen unter "Tools":
  • Format T-SQL Code
  • T-SQL Formatting Options ...
Die neuen Funktionen, die das Formatierungswerkzeug SSMS hinzufügt
Die Verwendung ist so einfach, wie es den Anschein hat: wenn Sie "Format T-SQL Code" anklicken, wird der markierte T-SQL Code formatiert. Falls Sie nichts markiert haben, wird der gesamte T-SQL Code im Abfragefenster formatiert.

Egal, wie Sie den Code eingegeben haben: nach Aufruf von "Format T-SQL Code" sieht er sofort gut aus.
Da jeder Programmierer eigene Vorstellungen davon hat, was die richtige Formatierung ist (bzw. da unterschiedliche Unternehmen unterschiedliche Vorgaben machen), lässt sich die Formatierung mit der Funktion "T-SQL Formatting Options ..." steuern.

Die Einstellungen zum Formatieren

Alles in allem ein sehr hilfreiches und darüber hinaus kostenfreies Tool! Lediglich ein kleines Problem musste ich lösen: Die Tastenkombination [Ctrl]+[K] [F] soll das Formatieren starten. Mit der voreingestellten Einstellung funktionierte diese Tastenkombination jedoch nicht in meiner Umgebung. Ich musste die Einstellung "SSMS HotKey" folgendermaßen ändern:
Text Editor::ctrl+k, ctrl+f

T-SQL Formatierung in Notepad++

Gehören Sie auch zu den Nutzern des ebenfalls kostenfrei verfügbaren Texteditors Notepad++? Dann können Sie den Poor Man's T-SQL Formatter dort ebenfalls verwenden. Hierzu wählen Sie einfach im Menü "Erweiterungen" - "Plugin Manager" das Plugin aus - fertig.

Weitere Links

Die Tools SQL Prompt und Poor Man's T-SQL Formatter habe ich nach subjektiven Kriterien herausgegriffen. Wenn Sie an einer Übersicht der verfügbaren Tools interessiert sind, finden Sie diese auch bei Tao Klerks: Übersicht der Formatierungs-Tools

Freitag, 3. Mai 2013

Aktuelle Service Packs und Cumulative Updates für SQL Server ermitteln

Typische Frage im Umgang mit SQL Server lauten:
  • Welches ist das aktuelle Service Pack für meine Version?
  • Gibt es Cumulative Updates zu meinem Service Pack?
Während des Lebenszyklus einer SQL Server Version bietet Microsoft Service Packs (SP), Cumulative Updates (CU) und Hotfixes zur Behebung bekannter Probleme an. Möglichst bald nach dem Erscheinen eines Service Packs sollten Sie dieses auch auf Ihren Systemen installieren. Ich hatte vor einigen Jahren ein einschneidendes Erlebnis mit einem SQL Server ohne aktuelle Services Packs, der damals ein ganzes Netzwerk lahmlegte - eine sehr unangenehme Situation, die durch rechtzeitige Installation des Service Packs eindeutig zu vermeiden gewesen wäre.
Während Service Packs etwa alle 6 Monate veröffentlicht werden, stehen neue Cumulative Updates im Abstand von 2 Monaten zur Verfügung. Diese sollten Sie aber nur dann installieren, wenn Sie akut ein Problem lösen müssen, das von einem CU abgedeckt wird. Ansonsten lautet der Rat: warten Sie auf das nächste Service Pack.
Hotfixes sind sehr spezielle Problemlösungen, die Sie individuell anfordern müssen; im entsprechenden Knowledge Base Artikel finden Sie dann einen Link für die Anforderung.

Wo finde ich denn nun die Information, welches Service Pack aktuell ist?

Erste Anlaufstelle ist das Update Center für Microsoft SQL Server. Hier finden Sie die Liste der letzten SPs und CUs für jede SQL Server Version. Außerdem jeweils einen Link zum jeweiligen Knowledge Base Artikel, der jedes SP und CU begleitet.

Wie ermittle ich das installierte Service Pack?

Eine gute Methode, um das Installierte Service Pack zu ermitteln, ist die Funktion SERVERPROPERTY(). In der Dokumentation finden Sie alle Parameter, die diese Funktion versteht. In diesem Zusammenhang sind folgende Aufrufe interessant:
select SERVERPROPERTY('Edition')
select SERVERPROPERTY('ProductLevel')

select SERVERPROPERTY('ProductVersion')

Der letzte Aufruf liefert (so wie das folgende Bild in SQL Server Management Studio) hinter der Versionsnummer weitere Ziffern, die so genannte Build-Nummer.



Die vierstellige Build-Nummer ist nicht selbstsprechend, sondern Sie brauchen weitere Informationen um herauszufinden, welches SP oder CU sich dahinter verbirgt. Es gibt Knowledge Base Artikel, wo Sie das herausfinden können:


Noch besser gefällt mir allerdings diese Übersicht, die allerdings keine Microsoft Quelle ist.

Donnerstag, 2. Mai 2013

PowerPivot in SharePoint 2013 richtig konfigurieren


Mal wieder ein Blogeintrag, der auf viele Stunden leidvoller Erfahrung zurückgeht. Diesmal geht es um PowerPivot in SharePoint 2013. Eigentlich eine gute, klare Sache:
  • Sie laden eine Excel Datei mit einem PowerPivot Modell in eine SharePoint PowerPivot Galerie hoch. Daraufhin können andere Anwender mit einem Browser auf die Excel Arbeitsblätter mit den Berichten zugreifen. Sogar Filtern, Sortieren, etc. funktioniert über  den Browser! Die Berechnungen werden serverseitig auf einer dafür konfigurierten Instanz von Analysis Services (SSAS) im tabularen Modus ausgeführt.
  • Nach einem konfigurierbaren Zeitplan werden die Daten im PowerPivot Modell neu aus den zugrunde liegenden Datenquellen geholt (z.B. Datenbanken, Dateien, Feeds, etc.). Auf diese Weise sehen die Anwender immer Berichte mit aktuellen Daten.
Um das alles zu konfigurieren, bietet sich der Einsatz des PowerPivot Configuration Tools an. Gerade dann, wenn man noch nicht so vertraut mit all den beteiligten Komponenten ist oder wenn es darum geht, einfach nur "mal eben" ein Testsystem aufzusetzen, führt das Tool in der Regel schnell zum Ziel.

Wenn das alles so gut geht - wo ist dann das Problem?

Nicht immer funktioniert das PowerPivot Configuration Tool einwandfrei. Zum ersten Mal konnte ich das bei einem Testsystem beobachten, das keine Internetverbindung hatte. (Nur am Rande: in diesem Fall waren diese beiden Artikel sehr hilfreich: Skripts von Craig Lussier und der TechNet Artikel, auf den er sich bezieht.) Aber auch nach dem "Rumfummeln" an einer korrekt laufenden Installation musste ich mich der gleichen Herausforderung stellen.
Das Problem ist, dass Sie die zeitgesteuerte Aktualisierung der Daten nicht einrichten können. Der erste Schritt ist einfach: Sie klicken das Symbol zum Erstellen eines Zeitplans für die Aktualisierung an.
Eigentlich ganz einfach, für die Aktualisierung einen Zeitplan einzurichten.
Dann folgt die Enttäuschung:
"A schedule cannot be enabled for a workbook with no external data sources"
Wie will man hier die zeitgesteuerte Aktualisierung einrichten?
Aber ich bin mir ganz sicher, dass PowerPivot die Daten aus einer SQL Server Datenbank holt. Was nun?
 

Ursache und Lösung

Wie immer bei SharePoint lässt sich das Problem lösen, wenn man sich klar macht, welcher Dienst sich mit welcher Identität wo authentifizieren möchte. Bei dieser Gelegenheit kann ich auch gleich zeigen, wie Sie Ihre SharePoint Umgebung etwas sicher konfigurieren, als das Configuration Tool das macht.
Dreh- und Angelpunkt ist das Dienstkonto des PowerPivot Dienstes.
  1. Einrichten eines Application Pools für den Dienst
    1. Gehen Sie nach "Central Administration" - "Application Management" - "Manage Service Applications"
    2. Dort finden Sie die Service Application für PowerPivot; das Configuration Tool vergibt den Namen "Default PowerPivot Service Application". Klicken Sie NEBEN diesen Namen und dann auf die Schaltfläche "Properties".
    3. Im folgenden Dialog können Sie die Service Application einem Application Pool zuweisen. Das Configuration Tool weist alle Service Applications demselben Pool zu. Ich habe hingegen einen neuen Pool "PowerPivot Pool" erstellt und diesem mit dem Link "Register new managed account" das Dienstkonto svcPowerPivot zugewiesen. Dieses Domänenkonto muss vorher bereits angelegt worden sein (einfach anlegen, keine Rechte zuweisen). Die Folge: Alle Service Applications, die diesem Pool zugewiesen werden, werden mit diesem Dienstkonto ausgeführt.
  2. Dieses Konto braucht Zugriff auf die Web Application. Dazu starten Sie über "Start" - "Programme" - "Microsoft SharePoint 2013 Products" das Programm "SharePoint 2013 Management Shell" als Administrator. Führen Sie das folgende 2-zeilige PowerShell Skript aus, wobei Sie die Platzhalter mit dem Namen Ihrer Web Application und Ihres Dienstkontos ersetzen.
    $webApp = Get-SPWebApplication "http://<servername>"
    $webApp.GrantAccessToProcessIdentity("YOURDOMAIN\<serviceAccountName>")
  3. Dieses Dienstkonto svcPowerPivot braucht nun noch eine besondere Berechtigung: Es muss ein Administrator in der SharePoint zugeordneten SSAS Instanz sein. Dazu benötigen Sie das SQL Server Management Studio. Stellen Sie eine Verbindung zu dieser Instanz von SSAS her. In meinem Fall hat sie den Namen "SQL1\POWERPIVOT". Mit einem Rechtsklick auf diese Instanz im Object Explorer öffnet sich ein Kontextmenü. Wählen Sie hier "Properties" aus. Im folgenden Dialogfenster dann "Security" auswählen und das Dienstkonto den Server Administratoren hinzufügen.
  4.  

Damit hat das Konto, mit dem die PowerPivot Service Application ausgeführt wird, alle erforderlichen Berechtigungen. Nun kann die PowerPivot Application in der SSAS Instanz nachsehen, welche Datenverbindungen das PowerPivot Modell hat - und Sie können den Scheduled Data Refresh aktivieren.


Weitere hilfreiche Links

 

Nachbemerkung

Mir ist schon klar, dass dieser Text eine abenteuerliche Mischung von Deutsch und Englisch enthält. Das ist der Tatsache geschuldet, dass ich zwar in Deutsch schreiben möchte, aber serverseitig inzwischen zumeist aus gutem Grund die englischsprachige Version von SharePoint (und SQL Server) eingesetzt wird. Ich war der Meinung, dass so die Klarheit erhalten bleibt. Für Verbesserungsvorschläge bin ich dankbar! 
 

Sonntag, 7. April 2013

Erfahrungsbericht: CBAP Prüfung

Bestanden! Nun bin ich Certified Business Analysis Professional™ (CBAP®).

Diese Prüfung und das Lernen dafür waren mir sehr wichtig, denn in zu vielen Projekten habe ich es erlebt, dass Kosten und Zeiten überschritten wurden und dass die Anwender trotz der vereinten Anstrengungen aller Beteiligten vom Ergebnis enttäuscht waren. Rückblickend ist mir klar geworden, dass die meisten dieser Projekte deutlich erfolgreicher hätten durchgeführt werden können, wenn ein erfahrener Business Analyst das Projektteam ergänzt hätte.


Die richtige Methodik ist entscheidend

In den letzten Jahren scheint sich diese Erkenntnis bei Unternehmen auf der ganzen Welt durchzusetzen. Daher bietet das IIBA seit 2006 das CBAP Zertifikat an, mit dem Business Analysten ihre Kenntnisse dokumentieren können. Da es mir weniger um ein weiteres Zertifikat in meiner Sammlung ging als vielmehr um ein grundlegendes Verständnis aller Einfluss- und Erfolgsfaktoren für eine erfolgreiche Business Analyse (und somit letzten Endes für erfolgreichere Business Intelligence Projekte), habe ich mich gegen das relativ leicht zu erwerbende CPRE Zertifikat und für das CBAP Zertifikat der IIBA entschieden.
Die Zahl der CPAPs ist in den letzten Jahren immer schneller gewachsen (Stand 06.04.2013: 2695 weltweit, davon 14 in Deutschland).



Jährlicher Zuwachs der CBAP-zertifizierten Business Analysten
 
Nach meiner Wahrnehmung nimmt auch in Deutschland das Interesse an dieser wichtigen Qualifikation zu, weil immer mehr Unternehmen den Nutzen dahinter erkennen. Daher möchte ich nachfolgend meinen Weg zu dieser Zertifizierung beschreiben. Vielleicht hilft das ja dem/der einen oder anderen Interessierten. Bei Fragen stehe ich auch gerne als Ansprechpartner zur Verfügung.

Voraussetzungen

Das IIBA betrachtet jeden, der typische Business Analyse (BA) Aufgaben durchführt als Business Analysten, unabhängig von der tatsächlichen Aufgabenbezeichnung. System Analysten, Anforderungsmanager, Business Architekten, BI Analysten und viele andere fallen unter diesen erweiterten BA Begriff. Wesentliches Merkmal all dieser Rollen ist, dass sie ausgerichtet am Nutzen für das Unternehmen Veränderungsprozesse vorbereiten, unterstützen und bewerten.
Das CBAP Zertifikat ist für "Senior" Business Analysten gedacht. Daher ist eine wesentliche Voraussetzung für die Zulassung zur Prüfung, dass man 7.500 Stunden praktischer Arbeit in mehreren der Wissensgebiete (s.u.) nachweist.

Gliederung

Das IIBA hat das gesamte Wissen, welches ein BA bei seiner täglichen Arbeit benötigt, im BABOK®, dem "Business Analysis Body of Knowledge", strukturiert zusammengefasst. Es gliedert sich in sechs Wissensgebiete, die insgesamt 32 so genannte "Tasks" umfassen. Anfangs irritierte es mich, dass es dazu kein Prozessmodell gibt, also eine Schritt-für-Schritt Anleitung zur Business Analyse. Doch dann wurde mir klar, dass die Natur dieser Aufgabe nicht einem schrittweisen Vorgehen entspricht. Vielmehr finden die Tasks oftmals parallel oder schnell aufeinander folgend Anwendung. Beispielsweise beim Review von Anforderungen kann es durchaus vorkommen, dass die Teilnehmer eine neue Anforderung entdecken. Sie modellieren diese neue Anforderung und dann setzt oft eine Diskussion ein, ob die neue Anforderung tatsächlich in den definierten Projektumfang gehört, ob sie kurzfristig umgesetzt werden soll, oder ob sie erst in einer späteren Version der Lösung Eingang findet. Dieses kleine Beispiel umfasst bereits folgende Tasks:
  • Communicate Requirements
  • Specify and Model Requirements
  • Manage Solution Scope and Requirements
Ein starres Prozessmodell würde dieser fast gleichzeitigen Anwendung der Tasks nicht gerecht.
Zudem ist das BABOK® eine Obermenge aller bekannten und allgemein akzeptierten BA Praktiken und betont die Notwendigkeit, bei jedem Projekt zunächst festzulegen, wie die einzelnen Tasks im jeweiligen Fall gestaltet werden (z.B. sehr formal oder eher "hemdsärmlig"). Es ist für alle Arten von Projekten geeignet und lässt sich ebenso für planungsorientierte wie auch für agile Projekte einsetzen.

Die Techniken

Damit ein BA die vielfältigen Aufgaben auch tatsächlich umsetzen kann, benötigt er/sie eine Reihe von Techniken. Etwa um Workshops zielgerichtet und effektiv durchzuführen, um Prozesse zu modellieren und viele mehr. Über 40 Techniken haben Eingang in das BABOK® gefunden. Die meisten davon kannte ich bereits von der eigenen Arbeit, daher war dieser Teil, der fast die Hälfte des Buches ausmacht, relativ gut zu meistern.

Die Vorbereitung auf die Prüfung

Die andere Hälfte des BABOK® empfand ich einerseits als sehr positiv, da die Wissensgebiete und Tasks endlich Ordnung in meine bisher gesammelten Erfahrungen brachten. Andererseits hatte ich zunächst keine Idee, wie ich mir den doch sehr trockenen Stoff so aneignen sollte, dass es zum Bestehen der Prüfung ausreicht.
Da erwies es sich als gute Entscheidung, ein einwöchiges Vorbereitungsseminar der masVenta GmbH zu besuchen. Für mich war es wichtig, dass die masVenta GmbH als "Endorsed Education Provider™" von der IIBA anerkannt ist. Zudem bestätigte mich ein Gespräch mit Geschäftsführer Rainer Wendt in dem Eindruck, dass es bei masVenta Seminaren darum geht, das BABOK wirklich zu verstehen und im Berufsalltag anwenden zu können. Tatsächlich vermittelte der Referent Thomas Rölker uns dann anhand der Unterlagen von Watermark auch die inneren Zusammenhänge und zudem viele Gedächtnisstützen, um die wesentlichen Themen und Bezüge dauerhaft auswendig zu lernen.
Unverzichtbar für die daran anschließende Lernphase war die Prüfungssimulation von Watermark, die zusätzlich zum Study Guide im Seminarumfang enthalten war. Etwa 900 Fragen zu allen Wissensgebieten und Techniken vermittelten einen guten Vorgeschmack auf das, was in der richtigen Prüfung kommen sollte. Anhand der falsch beantworteten Fragen wurde mir immer wieder klar, welche Themen und Zusammenhänge ich noch besser erschließen musste. Dabei erwies es sich als hilfreich, die im Vorbereitungsseminar gelernten Gedächtnisstützen um neue, selbst erarbeitete, zu erweitern um die Lücken zu schließen.
Insgesamt 2 Monate habe ich gebraucht, um auf diese Weise so sicher zu werden, dass ich mir die Prüfung zutraute.

Erfolgreiche Prüfung - was bringt's?

Rückblickend war es eine Menge Arbeit und Zeit, die ich für das Erschließen des BABOK® aufgewendet habe - zusätzlich zum Seminar etwa 6 Wochen intensiven Lernens. Neben einem schicken Zertifikat ;-) ist der wesentliche Nutzen, dass ich nun endlich eine schlüssige Methodik für das Durchführen komplexer Projekte habe. Und dass diese gleiche Methodik den anderen Mitarbeitern im Projekt ebenfalls vertraut ist, so dass wir uns gegenseitig besser unterstützen können.
Mich interessieren insbesondere IT-Projekte, vor allem Business Intelligence Projekte. Dafür ist das BABOK® auf jeden Fall eine große Hilfe. So ist mir im Nachhinein sehr klar geworden, was in einigen Projekten, in denen ich mitgearbeitet habe, schief gelaufen ist. Ich weiß nun auch sehr genau, was ich anders machen würde, da ich Ursachen und Zusammenhänge begriffen habe, die mir vorher nur bruchstückhaft klar waren. Zurzeit arbeite ich in einem Umfeld, wo die Anwendung des BABOK® in IT-Projekten dazu geführt hat, dass die letzten Projekte alle mit dem vorgegebenen Budget und in der geplanten Zeit das gewünschte Ergebnis geliefert haben.
Mit dem neu erworbenen Wissen im Hinterkopf traue ich mir zu, nun auch selbst viel besser zu solchen Erfolgen beitragen zu können als vorher.
Ich werde berichten...

(Artikel überarbeitet am 09.04.2013)

Mittwoch, 20. März 2013

Versionsdschungel: PowerPivot und SQL Server

Es bring eine Reihe von Vorteilen, die mit Excel erstellten PowerPivot Modelle und Analysen nach SharePoint hochzuladen und dort bereitzustellen. Die wichtigsten sind:
  • Zentraler Speicherort
  • Zugangsberechtigung mittels SharePoint Berechtigungen
  • Web-basierte Clients
  • zeitgesteuerte Aktualisierung der Daten  
  • überwachte Ausführung: Welche Berichte werden sehr häufig oder gar nicht genutzt?
Nun gibt es verschiedene Versionen des PowerPivot Add-Ins für Excel. Welche Versionen des Add-Ins mit welchen Versionen von SharePoint und SQL Server zusammenpassen, das ist (wie ich gerade feststellen musste) gar nicht so offensichtlich.

Versionen von PowerPivot in Excel

Das kostenfreie PowerPivot Add-In gibt es ausschließlich für Excel 2010. Excel 2013 enthält dieses Add-In bereits als festen Bestandteil. Zwei Versionen dieses Add-Ins sind für den Download verfügbar:
Versionsnr. Bezeichnung
1050 Microsoft SQL Server 2008 R2 PowerPivot for Microsoft Excel 2010
1100 Microsoft SQL Server 2012 SP1 PowerPivot for Microsoft Excel 2010

Dass der Name des Add-Ins so lautet, wie dieVersionen von SQL Server, ist etwas irreführend. Schließlich sind Excel und PowerPivot ja zunächst einmal völlig unabhängig vom SQL Server.

Zusammenspiel von Excel/PowerPivot und SharePoint

Wenn Sie PowerPivot Modelle nach SharePoint hochladen, findet die Verarbeitung der Daten auf einer speziell für die Zusammenarbeit mit SharePoint konfigurierten Instanz von SQL Server Analysis Services (SSAS) statt. Diese SSAS Instanz wird so installiert, dass sie im "tabularen Modus" läuft. Damit die SSAS Instanz das in Excel erstellte PowerPivot Modell auch tatsächlich öffnen und ausführen kann, müssen die SSAS Version und die Version des PowerPivot Add-Ins zueinander passen. Mit diesem Hintergrundwissen erschließt sich auch, warum das PowerPivot Add-In die Version eines SQL Servers in seinem Namen trägt.
Die Zeichnung soll dieses Zusammenspiel verdeutlichen:

Korrelation der Version von PowerPivot mit der Version von SQL Server
Dabei gelten folgende Regeln:
  • Eine PowerPivot Datei, die mit einer älteren Version des Add-Ins erstellt wurde, wird bei der Veröffentlichung auf die neuere Version von SSAS aktualisiert.
  • Eine PowerPivot Datei, die mit einer Version des Add-Ins erstellt wurde, die neuer ist als die SSAS Version, kann nicht veröffentlicht werden.
  • PowerPivot Modelle, die mit Excel 2013 erstellt wurden, können nicht auf SharePoint 2010 veröffentlicht werden.
Es ist also ganz wichtig, dass Sie bei einem Roll-Out von PowerPivot die Clients im Unternehmen mit der zum SQL Server passenden Version von PowerPivot ausstatten!

Weiterführende Links

Nachfolgend die Links, die mir beim Klären dieser Frage geholfen haben. Hier finden Sie auch noch weiter gehende Informationen.

http://msdn.microsoft.com/de-de/library/bb522628(v=SQL.110).aspx
http://office.microsoft.com/en-us/excel-help/version-compatibility-between-powerpivot-data-models-in-excel-2010-and-excel-2013-HA103929426.aspx
http://sqlblog.com/blogs/marco_russo/archive/2013/01/14/powerpivot-compatibility-across-versions.aspx