Archiv

Archive for the ‘SQL Server 2008 R2’ Category

Training in Zürich zu neuer Datenmodellierungsmethode: Data Vault

Wikipedia definiert Data Vault so:

In den letzten Jahren hat sich mit Data Vault eine neue Modellierungstechnik für Data-Warehouse etabliert, die insbesondere für agile Datawarehouse geeignet ist. Sie bietet eine hohe Flexibilität bei Erweiterungen, eine vollständige Historisierung der Daten und erlaubt eine starke Parallelisierung der Datenladeprozesse.

Meine persönliche Erfahrung ist, dass Data Vault nicht nur bei einem Data-Warehouse eingesetzt werden kann, sondern auch bei Schnittstellen von OLTP-Systemen, welche Daten von anderen Systemen beziehen. Mit Data Vault bekommt man die Möglichkeit, die Qualität der Belieferung der Schnittstellen automatisiert zu überprüfen und zu messen.

DataVault

Im Frühjahr gibt es vom Buchautor Hans Hultgren ein dreitägiges Training in Zürich zur Data Vault Modellierung. Anschließend findet eine Prüfung zur Zertifizierung statt. Interessant ist das Thema für Daten Architekten, Datenbank Programmierer, Data Warehouse Architekten, Business Intelligence Consultants und für alle die mit dem Design und Implementieren von Daten-Schnittstellen und BI-Systemen zu tun haben.

Der Trainer, Hans Hultgren, berät seit über 20 Jahren Firmen im Bereich Data Warehouse und Business Development. Hans Hultgren hat ein Buch über das Thema „Modeling the Agile Data Warehouse With Data Vault“ geschrieben. Ich habe das Buch gelesen, ich kann es nur empfehlen.

Außerdem schreibt Hans Hultgren in seinem Blog (https://hanshultgren.wordpress.com/) regelmäßig über das Thema Data Warehousing und Data Vault.

 

 

Advertisements

Fallstricke der T-SQL Funktion isNumeric() – was ist zu beachten?

Manchmal geht man davon aus, dass die mitgelieferte Funktionen des SQL Servers das tun, was sie sollen. Aber dieses erwartete Verhalten trifft nicht immer zu. Wie im vorliegenden Fall der Funktion isNumeric.

Was habe ich erwartet: Ich habe erwartet, dass die Funktion isNumeric den übergebenen Parameter auswertet und als Resultat entweder 1 oder 0 zurückgibt, je nachdem ob es sich um einen numerischen Wert handelt, oder nicht.

Wie ist das Verhalten: Leider funktioniert die Funktion isNumeric nicht immer richtig – oder noch schlimmer, es werden Fehler geworfen (beim Datentyp date), wo man es absolut nicht erwartet.

Beispiele

T-SQL Code Datentyp Ergebnis Bemerkung
declare @myAttribute as decimal(18,6) = 123456789012.123456; select isnumeric (@myAttribute); decimal 1 korrekt
declare @myAttribute as date = ‚2016-02-17‘; select isnumeric (@myAttribute); date kein Folgender Fehler wird geworden: Msg 8116, Level 16, State 1, Line 8 Argument data type date is invalid for argument 1 of isnumeric function.
declare @myAttribute as datetime = CURRENT_TIMESTAMP; select isnumeric (@myAttribute); datetime 0 korrekt – erstaunlich, dass datetime geht und date nicht …
declare @myAttribute as varchar(12) = ‚Hallo‘; select isnumeric (@myAttribute); varchar 0 korrekt
declare @myAttribute as varchar(12) = ‚4711‘; select isnumeric (@myAttribute); varchar 1 korrekt. D.h. mit isnumeric lassen sich auch varchar-Variablen untersuchen.
declare @myAttribute as varchar(12) = ‚€4711‘; select isnumeric (@myAttribute); varchar 1 korrekt. Trotzdem hätte ich hier evtl. eine 0 erwartet. In der Dokumentation von Microsoft kann man nachlesen, das die führende Zeichen wie +, – sowie Währungssymbole nicht ausgewertet werden.

Nun könnte man ja auf die Idee kommen, zuerst mit der Funktion SQL_VARIANT_PROPERTY den Datentypen zu checken:

declare @myAttribute as date = '2016-02-17'
if SQL_VARIANT_PROPERTY(@myAttribute,'BaseType') not in ('decimal','numeric','float','real','int','bigint','smallint','tinyint','money','smallmoney')
 print 'not a numeric type'
else
 select isnumeric(@myAttribute)

Doch auch hier wird der Ausruck ausgewertet und ein Fehler geworfen:
Msg 8116, Level 16, State 1, Line 6
Argument data type date is invalid for argument 1 of isnumeric function.

Als nächstes habe ich das gleiche mit einem CASE Statement versucht. Aber auch hier gibts eine Fehlermeldung:

declare @myAttribute as date = '2016-02-17'
SELECT
 CASE 
  WHEN SQL_VARIANT_PROPERTY(@myAttribute,'BaseType') 
      not in ('decimal','numeric','float','real','int','bigint','smallint','tinyint','money','smallmoney') THEN 0
  ELSE isnumeric(@myAttribute)
 END AS isAttributeNumeric

Msg 8116, Level 16, State 1, Line 3
Argument data type date is invalid for argument 1 of isnumeric function.

Fazit

Mein Fazit: Die Funktion isNumeric ist mit Vorsicht zu geniessen. Wenn sie eingesetzt wird, dann muss man sehr gut testen. Insbesondere muss sichergestellt werden, dass nie ein Parameter vom Datentyp date an die Funktion übergeben wird. Dann nämlich knallts und ein Fehler wird geworfen.  Falls SQL Server 2012 oder höher eingesetzt wird, gibt es hier eine Empfehlung immer TryParse anstatt isNumeric einzusetzen.

 

 

10 Tipps um Microsoft BI (Business Intelligence) zu lernen

2. Februar 2014 2 Kommentare

Sie sind Datenbankentwickler, Datenbankadministrator oder Softwareentwickler und möchten den Schritt hin zu Microsoft Business Intelligence gehen? Dann habe ich einige Tipps für Sie!

Tipp 1

Lesen Sie den englischsprachigen Artikel in Wikipedia über Business Intelligence. Achten Sie auf die verschiedenen Aussagen (bzw. deren Unterschiede) von Kimball sowie von Inmon.

Tipp 2

Lesen Sie das Buch The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling. Autoren: Ralph Kimball und Margy Ross.

Ralph Kimball, geb. 1944, hat diverse Bücher über Data Warehouse und Business Intelligence geschrieben. Er ist der Begründer der Methodologie Dimensional Modelling, welche auch Kimball Methodology genannt wird.

Tipp 3

Lesen Sie das Buch Data Warehousing mit Oracle: Business Intelligence in der Praxis. Autoren: Claus Jordan, Dani Schnider, Joachim Wehner und Peter Welker. Das Buch ist zwar primär für Oracle geschrieben, trotzdem kann man mit diesem Buch lernen, wie man professionelle DWH- & BI-Architekturen erstellen kann.

Tipp 4

Lesen Sie das Buch The Microsoft Data Warehouse Toolkit: With SQL Server 2008 R2 and the Microsoft Business Intelligence Toolset. Autoren: Joy Mundy, Warren Thornthwaite und Ralph Kimball.

Tipp 5

Probieren Sie aus, was Sie in den Büchern gelesen und gelernt haben. Microsoft bietet kostenlose Versionen (180 Tage, voll funktionsfähig) zum Testen an:

  • Windows Server 2012 Standard
  • Windows Server 2012 Datacenter
  • Windows Server® 2012 Essentials

Eine Beschreibung ist hier zu finden: http://technet.microsoft.com/de-de/library/jj574204.aspx

Tipp 6

Lesen und verfolgen Sie den Blog (deutsch) von Willfried Färber: http://blog.trivadis.com/b/willfriedfaerber/default.aspx

Tipp 7

Lesen und verfolgen Sie den Blog (englisch) von James Serra: http://www.jamesserra.com/
Sehr interessant auf diesem Blog finde ich die Präsentationen und Videos: http://www.jamesserra.com/presentations/

Tipp 8

Machen Sie ein Classroom-Training bei der Trivadis: http://www.trivadis.com/training/microsoft-training/sql-server-business-intelligence.html.
Es gibt folgende Kurse für den SQL Server 2012 sowie für SQL Server 2008R2:

  • Implementierung eines Data Warehouse
  • Implementing Data Models and Reports
  • Designing Business Intelligence Solutions
  • Reporting Services
  • Integration Services
  • Analysis Services

Darüberhinaus gibt es folgende Kurse für Fortgeschrittene

Sehr empfehlenswert ist auch das BI-Bootcamp, das sowohl für Microsoft als auch für Oracle angeboten wird.

Tipp 9

Schauen Sie sich die Videos auf Channel 9 von Microsoft an: http://channel9.microsoft.com/Tags/business+intelligence

Hilfreich sind ausserdem die Technet-Videos zu den Integration Services (SSIS) an: http://technet.microsoft.com/de-de/library/dd299421(SQL.100).aspx
Anhand konkreter Vorgehensweisen wird hier gezeigt, wie was zu lösen ist.

Tipp 10

Lassen Sie sich zertifizieren!

  • Exam 70-461: Querying Microsoft SQL Server 2012
  • Exam 70-462: Administering Microsoft SQL Server 2012 Databases
  • Exam 70-463: Implementing a Data Warehouse with Microsoft SQL Server 2012

Nach diesen drei Prüfungen erhält man die Zertifizierung „Microsoft Certified Solutions Associate (MCSA): SQL Server 2012“.

  • Exam 70-466: Implementing Data Models and Reports with Microsoft SQL Server 2012
  • Exam 70-467: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Wenn Sie auch diese zwei zusätzlichen Prüfungen gemacht haben, dann erhalten Sie die Zertifizierung „MCSE: Business Intelligence -Solutions Expert“.

Wichtig ist es, sich gut auf die Prüfungen vorzubereiten. Ich empfehle hier jeweils ein Classroom Training (siehe Tipp 8) zu machen und dann die entsprechenden Bücher aus der Reihe Training Kit von Microsoft Press durchzuarbeiten. Ein Beispiel finden Sie hier. Und ganz wichtig: Üben Sie an Ihrem eigenen PC, in den Büchern werden Sie genügend Aufgaben finden, die Sie dann selbst umsetzen und lösen können.

Vortrag bei MSUGS: Professionelle Datenbank Entwicklung mit SQL Server Data Tools

Die MSUGS (Microsoft Solution Usergroup Switzerland) veranstaltet am Dienstag,  den 26. November 2013 um 18:30 Uhr einen Vortrag zum Thema Professionelle Datenbank-Entwicklung mit den SQL Server Data Tools. Der Vortrag findet bei der Trivadis in Glattbrugg statt.

Lasst Euch den Vortrag von Meinrad Weiss nicht entgehen und meldet Euch hier an: http://msugs.ch/Events/tabid/60/ModuleID/380/ItemID/63/mctl/EventDetails/Default.aspx?selecteddate=26.11.2013

Mit SQL Server Management Studio 2008 DTS Packages öffnen oder erstellen

Grundsätzlich werden ab SQL Server 2005 die Data Transfer Services (DTS) nicht mehr unterstützt und wurden durch die SQL Server Integration Services ersetzt. Wenn man nun trotzdem legacy DTS Packages pflegen muss, dann gibt es einen Weg!

(1) Feature Pack for Microsoft SQL Server 2005 – December 2008 downloaden: http://www.microsoft.com/en-us/download/details.aspx?id=11988
In meinem Fall (Windows 7 – 64bit Rechner / SSMS 2208 / SQL Server 2005) habe ich die Installer SQLServer2005_BC_x64.msi sowie SQLServer2005_DTS.msi ausgewählt.
Select components from feature pack

(2) Installation der Microsoft SQL Server 2000 DTS Designer Components mit SQLServer2005_DTS.msi

(3) Installation des Run-time Support für DTS Packages mit SQLServer2005_BC_x64.msi.
Hier sind folgende Komponenten erforderlich:
– Data Transformation Services 2000 runtime
– SQL Distributed Managament Objects (SQL-DMO)

Backward Components Feature Selection

(4) Kopieren von DLLs

Zusätzlich musste ich folgengde DLLs von %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn nach %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE kopieren:

SEMSFC.DLL, SQLGUI.DLL, SQLSVC.DLL

Und anschliessend die zugehörigen RLL-Files von %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources nach %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\%lang_id%:

SEMSFC.RLL, SQLGUI.RLL, SQLSVC.RLL   (Für U.S. English handelt es sich um das lang_id-Unterverzeichnis „1033“

Hier noch ein paar hilfreiche Links zum Thema: