Archiv für die Kategorie ‘Technik’

Migration von SQL Server 2000 DTS-Packages – es wird Zeit

Mittwoch, 18. April 2012

ETL-Strecken, die mit SQL Server 2000 DTS-Packages realisert und noch produktiv sind, bedürfen neuer Aufmerksamkeit. Microsoft stellt zum 9. April 2013 auch den “extended Support” des SQL Server 2000 SP4 (und damit aller SQL Server 2000 Versionen) ein.

Was heißt das? Will man den Betrieb von DTS-ETL-Stecken sicherstellen, muss auf eine höhere Version migriert werden, da Microsoft keine Bugs im Rahmen von Hotfixes oder Service Packs beheben wird. Bei der Migration in das Integration Services Format der SQL Server ab 2005 gibt es zwei Varianten:

1. Migration per Migrationsassistent. Die grundsätzliche Idee ist dabei, die alten DTS-Strecken in einem Task “DTS 2000-Paket ausführen” zu kapseln. Das funktiert in einem Großteil der Fälle – aber nicht in allen (Bekannte Probleme bei der DTS-Paketmigration). Abgesehen davon gibt es einige entscheidende Gründe, die gegen eine solche Migration sprechen. Technisch spricht die fehlende 64-Bit-Unterstützung schon dagegen, strategisch vor allem die unzeitgemäß schlechten Wartungs- und Weiterentwicklungsmöglichkeiten sowie die Ausserachtlassung der aktuellen und effizienten Werkzeuge der Integration Services.

2. Klassisches Migrationsprojekt. Hier werden die ETL-Strecken fachlich analysiert und per aktueller SSIS-Technologie neu gebaut. Effiziente Werkzeuge reduzieren die Entwicklungszeit erheblich – bei gleichzeitig zukunftsicherer, deutlich effektiverer und supporteter Technologie.

Sollte bei Ihnen diese Thematik anstehen – sprechen Sie uns an. Wir helfen Ihnen gerne weiter. Auch mit einem guten Rat…

Herzlichst,
Torsten Katthöfer

Columnstore Index – ein Renner

Mittwoch, 09. November 2011

Unsere Experimente mit dem SQL Server 2012 (Denali) lassen uns zunehmend frohlocken: Tests mit dem neuen ColumnstoreIndex prognostizieren einen ganz erheblichen Performanceboost. In einer Tabelle mit ca. 3 Millionen Datensätzen, 4 verschieden Datentypen und unterschiedlichen Anzahlen von Ausprägungen haben wir jeweils pro Ausprägungen die Anzahl der Zeilen gezählt.

Die Ergebnisse lassen sich wie folgt zusammenfassen:

  1. Die Abfragen sind deutlich schneller. Bei 3 Ausprägungen in 3 Mill. Sätzen ergab sich Faktor 25-30 (280ms zu 10ms). Im Vergleich: Ein normaler Index brachte immerhin noch einen Faktor um zwei – was aber hier kein repräsentativer Vergleich ist.
  2. Je weniger Ausprägungen, desto größer der Performancegewinn. Bei kanpp 100.000 Ausprägungen  in 3 Mill. Sätzen gab es immerhin noch ein Faktor 1,3.
  3. Alle Datentypen (varchar, nvarchar, int, datetime) wiesen vergleichbare Werte auf.

Das Geheimnis der Geschwindigkeit ist an sich trivial: Statt wie sonst üblich die Attribute einer Zeile zusammen abzulegen, werden beim Columnstore Index die Attribute der Spalten zusammen abgelegt, was die Plattenzufgriffe erheblich reduzieren kann. Zusätzlich werden die Attribute komprimiert – und diese Komprimierung gewinnt an Effizienz, je weniger distinkte Attribute komprimiert werden müssen.

Es gibt natürlich auch ein Wehrmutstropfen. Eigentlich gibt es zwei:

  1. Tabellen, auf denen ein Columnstore-Index liegt, können nicht direkt manipuliert werden (Also kein Insert, Update, …). Das führt dazu, dass die beladenden ETL-Strecken komplexer werden, weil hier entweder die Indizes jeweils neu erstellt werden müssen oder – wenn es schnell gehen soll – ein Verfahren mit zwei Tabellen und nachgelagerter Zusammenführung etabliert werden muss.
  2.  Den Columnstore-Index wird es nur mit der Enterprise-Edition geben – nicht mit der neuen BI-Edition.

Ich freue mich schon auf das Lächeln in den Gesichtern der IT-Leiter…

Herzlichst, Torsten Katthöfer

 

SQL Server Codename Denali – Evolution oder Revolution?

Donnerstag, 06. Oktober 2011

Experten vermuten, dass in den nächsten 10 Jahren die Menge der gespeicherten Daten um mehr als das 40-fache steigen wird. Diese Datenexplosion erfordert es, dass Software zur Verwaltung dieser Daten diesen dadurch entstehenden höheren Ansprüchen gerecht wird. Einen Schritt in diese Richtung möchte Microsoft mit der neuen Version des SQL Servers, bisheriger Codename Denali gehen.

Wir haben uns schon einmal die Vorabversion angeschaut und möchten kurz auf ein paar Neuerungen eingehen:

Ein wichtiger Punkt bei der Entwicklung von Denali spielte die Verfügbarkeit des Servers und damit der Datenbanken. Mit der neuen Version ist es dank der AlwaysOn-Funktion möglich, das Ausfallrisiko zu vermindern, so dass (wie der Name schon vermuten lässt) die Server immer erreichbar sein sollen. Zudem werden die „Columnstore Indexes“ eingeführt, die die Abfragegeschwindigkeit bei großen Tabellen um den Faktor 10 erhöhen. Vorbei werden also die Zeiten sein, als man eine Abfrage gestartet hat und dann erst einmal in Ruhe ein Kaffee trinken konnte.

Neben diesen und weiteren kleinen Änderungen bzgl. der Datenbankverwaltung sind aber die Entwicklungen bei den Integration und Analysis Services viel bedeutender.

Ein häufig genannter Kritikpunkt an Business Intelligence-Lösungen ist die Datenqualität. Schaut man sich eine größere Kundendatenbank von irgendeinem Unternehmen genauer an, so wird man mit großer Sicherheit fehlerhafte Daten finden, sei es ein falsch geschriebener Name, eine fehlerhafte Postleitzahl , ein Wert, der in einer falschen Spalte steht oder ein mehrfach vorhandener Kunde. Solche schmutzigen Daten können zu fehlerhaften Analysen führen und von daher rückt die Frage der Datenqualität immer stärker in den Fokus. Um diesem Problem zu begegnen verfügt Denali über die Data Quality Services, mit deren Hilfe die Daten z.B. beim Laden in das Data Warehouse einfach und effizient gereinigt werden können.

Noch gravierender aber sind die Änderungen bei den Analysis Services. Hierbei wird ein erster Schritt weg vom dem multidimensionalen hin zu einem relationalen Modell gegangen, das ganze unter dem Stichwort „Business Intelligence Semantic Model“ (BISM). Zudem ist es dadurch möglich, das ganze Datenmodell in den Speicher zu laden. Doch was heißt das für den Benutzer? Äußerliche Unterschiede werden für ihn nicht wirklich ersichtlich, aber wenn er erst einmal eine vertraute Abfrage startet oder einen Report anfordert und er das Ergebnis bekommt, ehe er vielleicht seinen ersten Schluck vom Kaffee genommen hat offenbaren sich die Unterschiede und Vorteile dieser neuen Technik. Gerade unter Berücksichtigung der steigenden Datenmengen zeigt sich der Vorteil dieser neuen Entwicklung, wodurch auch in Zukunft effiziente Abfragen und Analysen ermöglicht werden.

Lange Rede, kurzer Sinn: Mit dem neuen SQL Server bringt Microsoft eine Software auf dem Markt, welche den neuen Anforderungen, die die Datenexplosion mit sich bringt, gerecht wird. Was die allgemeine Datenbankverwaltung betrifft ist Denali eher eine Evolution, aber für den Bereich Datenanalyse kann Denali als Revolution betrachtet werden.

Bleibt zum Schluss noch die Frage: Wann kommt er denn, der neue SQL Server? Die einzig exakte Antwort, die man auf diese Frage geben kann, lautet: „Wenn er fertig ist!“ Einen genauen Termin gibt es noch nicht, aber man darf davon ausgehen, dass er spätestens im Frühjahr 2012 offiziell erscheint.

Wir sind auf jeden Fall gespannt.

Patrick Rühmkorb

Google Analytics als Datenquelle – Teil 1

Dienstag, 13. April 2010

Google Analytics ist als analytisches Werkzeug für Online Marketing kaum wegzudenken. Es kostet nix, die Möglicheiten sind enorm – und es hat eine API, welche so ziemlich alles ausspucken kann, was die Google Analytics eigenen Berichte zu zeigen im Stande sind.     

Ich werde nun in vier Teilen erläutern, wie man mit dem Script Task der Integration Services (SSIS 2008) und VB beliebige Daten aus der Google API extrahiert.    

Im Wesentlichen sind dabei vier Herausforderungen zu meistern:    

  • Authentifizieren
  • Profilinformationen und ProfilID lesen
  • Query erzeugen, abschicken und das resultierende XML empfangen
  • XML in ETL-fähigen Datenstrom wandeln

  

Teil 1 - Grundlagen und Authentifizierung    

 ETL1 in Als Grundlage legen sie (natürlich) einen Datenflusstask an und dort einen Script Task als Datenquelle rein. Da wir in diesem Beispiel mit VB arbeiten, achten Sie beim  ersten öffnen des Tasks darauf, dass die Script Language in dem Skript-Tab direkt auf “Microsoft Visual Basic 2008″ ändern – diese Änderung ist später nicht mehr möglich. Dann fügen Sie unter Eingaben / Ausgaben eine Ausgabe hinzu - vielleicht “AnalyticsData”.  

Dieser Ausgabe müssen noch Spalten hinzugefügt werden – im Moment ist eine beliebige Spalte ausreichend. Nun fügen Sie im Datenfluss noch eine Datareader Destination ein und verbinden Quelle mit Ziel.

Nun fügen Sie folgende Funktion unter dem Ende der Public OverridesCreateNewOutputRows() (hier werden später die Ergebnisszeilen erzeugt) ein:

(weiterlesen …)


1 Besucher online
0 Gäste, 1 Bots, 0 Mitglied(er)
Meiste Besucher heute: 3 um/am 06:10 UTC
Diesen Monat: 6 um/am 09-06-2018 19:18 UTC
Dieses Jahr: 19 um/am 07-03-2018 05:26 UTC
Jederzeit: 40 um/am 09-24-2012 13:16 UTC