cnt

SQL Server 2012 - die Datenexplosion im Griff

Von Urs Bertschy

Hochverfügbarkeit, neue Technologien für die Verarbeitung grosser Datenmengen, eine neue Entwicklungsumgebung und bessere BI stecken im neuen Datenbankserver.

Artikel erschienen in Swiss IT Magazine 2012/05

     

Seit April ist mit dem SQL Server 2012 Microsofts neuester Datenbankserver auf dem Markt verfügbar. Das bislang auch unter dem Codename «Denali» bekannte Datenbanksystem bringt einige gewichtige Neuerungen, die insbesondere den Betrieb von hochverfügbaren, verteilten Installationen betreffen, aber den Unternehmen auch dabei helfen sollen, der explosionsartig wachsenden Datenflut Herr zu werden. Um mit den immer grösser werdenden Datenmengen klar zu kommen, werden bei der 2012er-Ausgabe des Datenbankservers nicht nur eine neue Spalten-basierte Indexing-Technologie und eine In-Memory-Kompressionstechnik, sondern auch neue BI-Funktionen eingeführt, die Endanwendern einen umfassenderen Einblick in das vorhandene Datenmaterial ermöglichen sollen. Datenbankentwicklern spendiert Microsoft eine neue, auf Visual Studio basierende Programmierumgebung, die sowohl Online- als auch die Offline-Entwicklung unterstützt.

Fünf SQL Server 2012 Editionen im Vergleich
Alle Features der fünf SQL Server 2012 Editionen auf einen Blick finden Sie hier.

Hochverfügbarkeit mit Always On

Hohe Verfügbarkeit gehört zu den wichtigsten Eigenschaften von Datenbanksystemen, bilden sie doch das Rückgrad praktisch aller geschäftskritischen Anwendungen im Business. Es erstaunt daher nicht, dass Microsoft die Ausfallsicherheit seines Datenbankservers weiter vorantreibt.
In den Vorgängerversionen des SQL Servers standen Firmen mit Failover Clustering, Database Mirroring oder Log Shipping gleich eine ganze Reihe von Technologien zur Verfügung, mit deren Hilfe sich die Ausfallsicherheit erhöhen liess. Jede dieser Technologien brachte allerdings ihre Vor- und Nachteile mit sich, so dass man je nach Bedarf gezwungen war, zwei oder mehrere dieser Verfahren miteinander zu kombinieren. Mit SQL Server 2012 führt Microsoft nun eine einheitliche Hochverfügbarkeitstechnologie mit der Bezeichnung Always On ein, welche die bisherigen Technologien zusammenfasst, und den Aufbau von ausfallsicheren Systemen vereinfacht.

Always On erlaubt es, eine Gruppe von Datenbanken zu sogenannten Availability Groups zusammenzufassen. Von diesen Gruppen lassen sich bis zu vier Replikas (Secondaries) auf anderen Servern in lokalen oder entfernten Datenzentren anlegen. Dabei werden für bis zu zwei Replikas synchrone Replikationen unterstützt, wobei eines dieser synchronen Abbilder zusammen mit dem Primärsystem im Failover-Betrieb genutzt werden kann. Fällt das Primärsystem aus, werden die Aufgaben automatisch vom Sekundärsystem übernommen. Die übrigen Replikas können asynchron, im Read-only-Modus betrieben werden. Diese lassen sich dann beispielsweise für Tasks wie Reporting oder Backups heranziehen, womit sich die primäre Datenbank entlasten lässt. Always On basiert auf der Windows-Server-Failover-Cluster-Technologie des Windows Server 2008 R2 und bietet zahlreiche raffinierte Features wie zum Beispiel den automatischen Page-Repair (bereits bekannt aus Data Mirroring), Datenkomprimierung und -verschlüsselung sowie Support für File-Stream-Replikation.
SQL Server 2012 verfügt ausserdem neu über die in bisherigen Versionen schmerzlich vermisste Windows-Server-Core-Unterstützung. Der Server-Core-Modus, der bereits mit Windows Server 2008 eingeführt wurde, erlaubt den Betrieb eines Windows Servers mit den notwendigsten Komponenten. So werden für eine bestimmte Server-Rolle nur die dafür nötigen Infrastrukturkomponenten und kein User Interface installiert. Das minimiert nicht nur die Angriffsfläche für Sicherheitsattacken, sondern reduziert auch den Aufwand für die Verwaltung, und führt zu einer höheren Uptime, da weniger Patches aufgespielt werden müssen. SQL Server 2012 lässt sich nun auf einem Windows Server 2008 R2 Server Core betreiben und erlaubt dadurch den Betrieb von schlankeren und effizienteren Datenbankserver-Installationen.

Mehr Speed: Column Store Indexes

Mit dem Column Store Index (Projekt «Apollo») wird in SQL Server 2012 eine weitere Index-Technologie eingeführt, welche die Performance von Abfragen bei Datawarehouse-Anwendungen erheblich verbessern soll. Microsoft spricht davon, dass sich die Performance unter optimalen Umständen bis um das 100-fache steigern lassen soll.
Ein Column Store Index wird, wie die Bezeichnung vermuten lässt, nicht wie im traditionellen Verfahren anhand von Records und Pages, sondern aufgrund der in einem bestimmten Feld (Spalte) gespeicherten Daten, angelegt. Da sich ein Spalten-basierter Index aufgrund der dafür typischen Datamuster besser komprimieren lässt, und bei einer Abfrage (die sich auf ein bestimmtes Feld bezieht) nur die notwendigen Columns zurückgeliefert werden müssen, lassen sich bei bestimmten Anwendungen hohe Performance-Vorteile erzielen. Für den Column Store Index nutzt Microsoft dieselbe In-Memory-Kompressionstechnologie mit der Bezeichnung Xvelocity (bislang unter der Bezeichnung Vertipaq bekannt), wie sie bereits mit Powerpivot verwendet wird. Mit Xvelocity werden Kompressionsraten erreicht, die bis um den Faktor 15 höher liegen als bei herkömmlichen Kompressionsverfahren. Das führt wiederum zu geringeren I/O-Raten und besserer Abfrage-Performance, weil die Menge an Daten, welche von der Disk in das Memory geladen werden muss, deutlich geringer ist.
Eine weitere spannende Neuerung nennt sich Filetable. Hierbei handelt es sich um eine neue Form von Tabelle, die sich direkt mit einem Ordner des Dateisystems verknüpfen lässt. Legt man nun Dateien in diesem Ordner ab, werden die entsprechenden API-Aufrufe von einer SQL-Server-Komponente abgefangen und die Daten in der entsprechenden Filetable der Datenbank gespeichert. Filetable baut auf der Filestream-Technologie auf, welche bereits mit SQL Server 2008 eingeführt wurde.



Universelles Datenmodell für BI

Ein weiterer Schwerpunkt der SQL-Server-2012-Neuerungen liegt bei der Business Intelligence. Dank dieser sollen Unternehmen in der Lage sein, auch grosse Datenmengen ansprechend aufbereiten und analysieren zu können. Dazu führt Microsoft mit dem Business Intelligence Semantic Model (BISM) ein neues Datenmodell ein, das den Speicherort der zu analysierenden Daten und die Auswertungsmethode voneinander trennt. Der Vorteil liegt auf der Hand: Daten können unabhängig ihrer Herkunft mit den verschiedenen Werkzeugen ausgewertet und in vielfältiger Form (Reports, Scorecards, Dashboards etc.) dargestellt werden. Das Datenmaterial kann beispielsweise aus externen Datenbanken, LOB-Anwendungen, OData-Feeds, Cloud-Diensten oder internen OLAP-Cubes stammen. Via BISM lassen sich diese dann mit dem passenden Werkzeug wie Powerpivot, Powerview, Excel, den Reporting Services oder einem Third-Party-Tool auswerten.
BISM ist Teil der SQL Analysis Services und versteht sich als Alternative zum bisherigen multidimensionalen Modell für Cubes. Zusätzlich wird mit BISM ein neues, tabellarisches Modell (SSAS-Tabellenmodell) eingeführt, mit dem sich riesige Datenmengen mit ansprechender Performance verarbeiten lassen (basierend auf der Xvelocity-Technologie).
Das Tabellenmodell soll in erster Linie Endusern den Zugang zu BI-Analysen vereinfachen. Für diese war die Konzeption eines multidimensionalen Cubes normalerweise zu kompliziert.
Ganz in diesem Sinne ist auch die Einführung der aus Powerpivot bekannten Data Analysis Expressions (DAX) in BISM. Mit DAX lassen sich Abfragen und Berechnungen mit einer sehr stark an die Formelsprache von Excel angelehnten Syntax verfassen. Die Erstellung von eigener Business-Logik wird daher sehr viel einfacher als mit den bisherigen, wenig intuitiven Multidimensional Expressions (MDX). Diese sind aber weiterhin enthalten und werden für multidimensionale Abfragen auch nach wie vor benötigt. Der Trend zeigt allerdings klar in Richtung DAX, die wohl in Zukunft zur universellen Sprache für Microsofts BI-Plattform avancieren und vermutlich in einem künftigen Release um multidimensionale Fähigkeiten erweitert werden.
Simple Auswertungsaufgaben wie Reporting oder Powerview-Dashboards werden durch das neue Tabellen-Modell stark vereinfacht. Für tiefgreifende Analysen (z.B. mit Excel) wird man aber auch in Zukunft nicht um das multidimensionale Modell herumkommen.
Erstellt werden die BISM-Datenmodelle mit den SQL Server Data Tools, dem neuen Entwicklungswerkzeug des SQL Servers 2012 (siehe S. 59), welche das bisherige BI Development Studio (BIDS) ersetzen.
Alternativ lassen sich Tabellen-Modelle auch direkt mit Powerpivot erstellen, das bereits im Mai 2010 im Rahmen von SQL Server 2008 R2 eingeführt wurde. In SQL Server 2012 steht Powerpivot nun in der erweiterten Version 2 bereit. Powerpivot erlaubt es Endusern, grosse Datenmengen Ad-hoc und In-Memory direkt in Excel-Worksheets zu analysieren, um beispielsweise Muster auszumachen oder wichtige Kennzahlen überwachen zu können. Powerpivot 2 bringt neben einer überarbeiteten Oberfläche Neuerungen wie die Möglichkeit, KPIs (Key Performance Indicator) und eigene Business-Logik (basierend auf DAX) zu definieren, Spaltensortierungen anzuwenden oder Daten hierarchisch strukturieren zu können. Ausserdem gibt es sogenannte Perspektiven, über die man Teilausschnitte eines Gesamtmodells anzeigen lassen und eine neue Ansicht, in der man tabellarische Modelle in Form von relationalen Diagrammen visualisieren kann.

Powerview bringt interaktive Dashboards

Eine echte Perle unter den BI-Funktionen ist die neue Powerview-Technologie, welche Teil der SQL Server 2012 Reporting Services ist. Die bis vor kurzem noch unter dem Codenamen «Crescent» bekannte Technologie erlaubt es Benutzern, eigene, interaktive Ansichten und Dashboards basierend auf dem neuen BI Semantic Model zu erstellen. Powerview soll in erster Linie dabei helfen, Zusammenhänge von Daten aufzuzeigen und Trends zu erkennen, kann aber auch für Ad-hoc-Reporting herangezogen werden. Im Unterschied zu Excel oder den herkömmlichen Reporting Services lassen sich Powerview-Diagramme viel interaktiver gestalten und können sogar animiert werden. So lässt sich beispielsweise eine Geschäftsentwicklung über einen bestimmten Zeitraum visualisieren. Interessant ist auch, dass sich mehrere Diagramme gemeinsam auf einem Canvas kombinieren lassen, um so Zusammenhänge besser visualisieren zu können. Änderungen innerhalb eines Diagrammes werden dabei automatisch auf alle übrigen Charts angewandt. Powerview beeindruckt mit einer sehr einfachen Bedienung, vielfältigen Gestaltungsmöglichkeiten und einer breiten Auswahl an Chart-Typen, inklusive der immer beliebter werdenden Bubble Charts.

Powerview basiert auf Silverlight und lässt sich daher zwar direkt per Webbrowser nutzen, aber eben nur auf Clients, welche Support für Microsofts Flash-Alternative bieten. Auf Tablets wie dem iPad und auf den kommenden ARM-basierenden Windows-8-Tablets wird man Powerview vorerst nicht einsetzen können. Microsoft hat aber bereits entsprechende Powerview-Clients für iPad, Windows Phone 7.5 und Android demonstriert. Dementsprechend dürfte auch eine Metro-only-Version für Windows-Tablets nur eine Frage der Zeit sein. Über die Verfügbarkeit von Powerview für Mobilgeräte schweigt sich Microsoft derzeit noch aus.
Ähnlich wie bei den bisherigen Reports lassen sich Powerview-Diagramme zentral in einer Sharepoint-Library publizieren und so auch anderen Usern zur Verfügung stellen. Dies setzt den Betrieb der Reporting Services im Sharepoint Integrated Mode (nur Sharepoint 2010 mit SP1) voraus. Ebenfalls nur im Zusammenhang mit Sharepoint nutzbar ist die neue Alerting-Funktion, über die man Benutzern automatisch aktualisierte Reports zustellen lassen kann, wenn sich bestimmte Bereiche des Datenmaterials ändern oder vorgegebene Schwellwerte überschritten werden.

Mehr Qualität für die Daten

Konsistente und korrekte Daten sind das A und O, wenn es darum geht, effektive Datawarehouse und BI-Anwendungen zu erstellen. Um die dazu notwendige Datenqualität zu gewährleisten, werden mit SQL Server 2012 die Data Quality Services (DQS) eingeführt. Die Technologie stammt aus der Übernahme der Firma Zoomix im Jahr 2008 und erlaubt es, eine Knowledge Base einzurichten, die mit Metadaten-Vorgaben und korrekten Data-Mustern gespiesen wird. So lassen sich beispielsweise für jedes Land ein gültiger Country-Code oder passende Land/Verkaufsregionen-Kombinationen festlegen. Gleichzeitig lassen sich auch Regeln definieren, wie Daten korrigiert werden sollen. Dabei kann beispielsweise vorgegeben werden, dass in einem Länderfeld ein Eintrag «Swiss» automatisch in «Switzerland» korrigiert werden soll. Ist die Knowledge Base aufgebaut, können sogenannte Data Quality Projects eingerichtet werden, mit deren Hilfe Daten nach Ungereimtheiten abgesucht und korrigiert werden können. Interessant ist, dass DQS auch eine Schnittstelle zu externen Services anbietet. So kann man zum Beispiel für die Überprüfung von Adressen einen spezialisierten Cloud-Anbieter in ein Projekt einbinden.

Die mit SQL Server 2008 R2 eingeführten Master Data Services (MDS), mit denen zentrale Datenbanken für Stammdaten eingerichtet werden können, haben eine ganze Reihe an Neuerungen erfahren. So können Masterdaten dank eines Add-ins für Excel auch von Endbenutzern sehr einfach gewartet werden. Zudem gibt es eine Schnittstelle zu den DQS, so dass sich Daten vor einem Upload in MDS auf Doubletten und regelwidrige Daten prüfen lassen.
Sowohl DQS und MDS sind Bestandteil der SQL Server Integration Services (SSIS), die punkto Usability und Administration überarbeitet wurden. Neu ist zudem, dass sich ein DQS-Projekt als SSIS-Paket in ein Integrations-Projekt einbinden lässt.
Auch punkto Sicherheit hat SQL Server 2012 eine ganze Reihe an Neuerungen erfahren. So kann ein Datenbankschema jetzt einer Windows-Gruppe anstelle nur eines individuellen Users zugeordnet werden. Die Auditing-Funktionalität ist nun in allen Editionen des SQL Servers verfügbar. Bislang gab es diese nur in der Enterprise-Edition. Ausserdem können benutzerdefinierte Audits nun eigene Ereignisse in das Audit-Protokoll schreiben. Audit Filtering bietet etwas mehr Übersicht bei der Auswertung der Logdaten, indem sich nicht benötigte Einträge ausblenden lassen. Neu gibt es zudem die User Defined Server Roles über die sich Berechtigungen von Datenbank-Usern granularer als bisher regeln lassen.

Neue IDE für Offline-Entwicklung

Mit den SQL Server Data Tools (SSDT) erhält Microsofts Datenbankserver eine neue Entwicklungsumgebung (bislang auch unter dem Codenamen «Juneau» bekannt), welche sowohl im Stand-alone-Einsatz als auch als Plug-in für Visual Studio 2010 betrieben werden kann. In künftigen Visual-Studio-Versionen wird SSDT gar fester Bestandteil sein. SSDT versteht sich als zentrale Anlaufstelle für alle Entwicklungsarbeiten im Zusammenhang mit SQL Server 2012 und kann neben dem Aufbau von reinen Datenbank-Projekten auch für Business-Intelligence-Lösungen (Reporting-, Analysis- und Integration-Services-Projekte) genutzt werden.
Mit den Data Tools wird ein neuer, universeller Datenbank-Projekttyp eingeführt, mit dem sich Datenbankdesigns unabhängig von der später verwendeten SQL-Server-Version aufbauen lassen. Unterstützt werden dabei nicht nur verschiedene Versionen des SQL Servers bis hinunter zum 2005er Release, sondern auch Microsofts Cloud-Datenbank SQL Azure.
Der neue Datenbank-Projekttyp basiert auf der Offline-Entwicklung (auch Disconnected Mode genannt), bei der Datenbankschemas und -anwendungen unabhängig vom späteren Zielsystem lokal gestaltet und später auf eine Testumgebung oder ein produktives System verteilt werden können. Das Datenbankschema wird dabei komplett deklarativ erstellt (inklusive der verwendeten Stored Procedures und Triggers) und in Form von T-SQL-Scripts festgehalten. Die Tatsache, dass die gesamte Datenbank-Definition als reiner Code vorliegt, hat neben anderem den Vorteil, dass diese sich problemlos in ein Source-Control-System und in einen Team-basierten Entwicklungsprozess einbinden lässt. Die Datenbank-Definitionen lassen sich direkt aus der Entwicklungsumgebung auf eine Datenbank-Instanz (z.B. auf einen Test-Server) ausliefern. Besonders hilfreich dabei ist die Update Engine der Data Tools, die das aktuelle Projekt mit dem Datenbankschema einer bestehenden SQL-Server-Datenbank vorab vergleicht und dazu gleich die entsprechenden Upgrade-Scripts generiert. Zudem prüft die Upgrade Engine das Projekt auf Einschränkungen und allfällige Probleme auf dem Zielsystem und warnt vor möglichen Konsequenzen.
Neben dem Deployment unterstützen die SQL Sever Data Tools auch den umgekehrten Weg und können bestehende Datenbanken direkt von einem SQL Server (inklusive Azure), aus vorhanden Scripts oder aus einem Deploy-ment-Package (.dacpac) importieren. Die Data Tools erzeugen dann automatisch ein Datenbank-Projekt mit allen notwendigen T-SQL-Statements.
Durch die Integration in Visual Studio kommen Entwickler neu in den Genuss vieler für die Microsoft-Entwicklungsumgebung typischen Komfortfunktionen wie beispielsweise Intellisense für T-SQL (inklusive Berücksichtigung der vorhandenen Datenbankstruktur), Code-Snippets, den Go-to-Definition-Befehl, integriertes Debugging (via T-SQL-Debugging), Refactoring und anderes mehr. Für die Definition von Tabellen gibt es einen einfachen Table Designer, der in einem synchron geschalteten Code-Fenster automatisch den passenden T-SQL Code generiert. Andere Design-Werkzeuge wie einen Query Designer oder ein Datenbank-Diagramm mit der visuellen Abbildung der Relationen sucht man in den Data Tools vergeblich.
Um auch im Offline-Betrieb das Testen und Debuggen von Datenbank-Anwendungen zu ermöglichen, führt Microsoft mit der LocalDB eine spezielle, auf Entwickler angepasste Version von SQL Server Express ein. Diese unterstützt den Entwicklungsprozess insofern, dass für jedes Datenbank-Projekt eine lokale Single-User-Instanz der LocalDB bereitgestellt wird. Für Testing und Debugging wird die Instanz automatisch gestartet und das Datenbankschema darauf installiert.

Überarbeitete Management-Tools

Neben dem Offline-Betrieb unterstützen die SQL Server Data Tools auch den sogenannten Connected Mode, bei dem auf einer angedockten Datenbank entwickelt wird. Analog zu dem aus bisherigen SQL-Server-Versionen bekannten SQL Server Management Studio (SSMS) wird über den Datenbank Explorer die verbundene Datenbank mit all ihren Objekten als Baumstruktur dargestellt. Im Unterschied zu SSMS werden bei den SSDT über das Kontextmenü des Baums aber entwicklerspezifische Funktionen bereitgestellt. Interessant ist, dass sich der Connected Mode nicht nur mit einem On-Premise-SQL-Server, sondern auch direkt mit der Cloud-Variante SQL Azure verwenden lässt. SSMS, das sich primär an Administratoren richtet, ist weiterhin in SQL Server 2012 zu finden. Auch SSMS wurde an die Visual-Studio-Shell angelehnt und bietet dementsprechend Visual-Studio-typische Funktionen wie Multi-Monitor-Support, Code Snippets oder Task-Listen. Für die Automatisierung von Administrationsaufgaben unterstützt SQL Server 2012 nun Powershell 2.0.

Neue Editionen und Lizenzierung

SQL Server 2012 gibt es in drei unterschiedlichen Haupteditionen: Enterprise, Business Intelligence und Standard. Ausserdem sind eine Reihe von weiteren Spezialausgaben wie Web, Express, Developer oder LocalDB verfügbar. Die im vorliegenden Artikel erwähnten Features werden nicht in allen SKUs unterstützt. Einen detaillierten Überblick liefert die Vergleichstabelle auf Seite 55. Am oberen Ende der Angebotsskala ist die Enterprise-Edition angesiedelt, die vor allem für den Betrieb in Rechenzentren und Anwendungen mit hoher Ausfallsicherheit gedacht ist. Neue Funktionen, welche die Hochverfügbarkeit, Skalierbarkeit- und Performance-Optimierungen betreffen, sind dementsprechend nur in dieser Edition zu finden. Die Enterprise-SKU ersetzt auch die bisherige Data Center Edition, die künftig nicht mehr erhältlich sein wird. Neu hingegen ist die Business-Intelligence-Edition, welche das gesamte Spektrum der neuen BI-, Reporting- und Analyse-Funktionen bietet. Die Standard-Ausgabe ist für die gebräuchlichsten Datenbank- und Reporting-Lösungen gedacht. Die Standardversion beinhaltet zwar die Reporting und Analysis Services, BI-Features wie Powerview oder Powerpivot sowie die Master Data Services fehlen jedoch.
Für den Entry-Level-Bereich wird es wie bisher die Express-Edition geben, die neben einem stark limitierten Funktionsangebot nur einen Prozessor, 1 GB RAM und Datenkapazitäten von Maximum 10 Gigabyte unterstützt.
Mit SQL Server 2012 passt Microsoft auch dessen Lizenzierung an. Da der Trend bei den Server-Prozessoren klar in Richtung immer mehr Kerne pro Prozessor geht, muss man die Enterprise-Version neu per Core und nicht mehr per Prozessor lizenzieren. Die Business-Intelligence-Edition wird per Sever (plus Client Access Licenses) lizenziert. Die Standardvariante kann sowohl per Core als auch per Server (plus CALs) lizenziert werden. Bei der Core-basierten Lizenzierung müssen pro Prozessor mindestens vier Kerne lizenziert werden. Sprich: Für eine CPU mit ein, zwei oder vier Kernen ist jeweils eine Vier-Core-Lizenz fällig. Bei einem Prozessor mit sechs oder acht Kernen sind dann entsprechend Sechs- respektive Acht-Core-Lizenzen fällig. Dementsprechend verlangt Microsoft für eine Core-Lizenz nur noch einen Viertel des Betrags, der bislang für eine Prozessorlizenz fällig wurde.


Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wie hiess im Märchen die Schwester von Hänsel?
GOLD SPONSOREN
SPONSOREN & PARTNER