SQL Server "Denali" Data Quality Services – Teil 1

11. November 2011

Nun hab ich endlich mal ein bisschen Zeit gefunden, um mich mit den Data Quality Services aus der aktuellen SQL Server “Denali” CTP3 zu beschäftigen und werde dazu (hoffentlich) in den nächsten Tagen weitere Beiträge veröffentlichen können. Der erste Teil enthält einen kleinen Überblick zu den DQS zusammen mit ein paar Tipps zur Installation.

DQS - von Microsoft als “knowledge-driven data cleansing solution” bezeichnet – ermöglicht die Bereinigung und Deduplizierung von Daten. Dafür kann entweder eine der mit ausgelieferten Knowledge Base verwendet oder ein eigene Knowledge Base angelegt werden. Eine entsprechende KB ist in anderen Projekten wiederverwendbar.

Mit der CTP3 wurden die DQS zum ersten mal öffentlich zur Verfügung gestellt. Ein Vorversion stand schon im Rahmen der CTP2 einem ausgewählten Benutzerkreis zur Verfügung.

Im SQL Server Team Blog findet sich der Artikel New and Exciting in SQL Server Code Name “Denali”: Knowledge Driven Data Quality Services (DQS) inkl. eines Videos von David Faibush (Senior Programm Manager des Data Quality Services Team), in dem er ein bisschen auf die Vorteile der Lösung eingeht.

 

Data Quality Services–What’s new in SQL Server Denali

 

Installation


Die Installation der DQS im Denali erfolgt über den Standard Installations-Wizard.
Nach der Installation muss derzeit jedoch noch ein zusätzliches Installation Script über die Anwendung “DQSInstaller.exe” ausgeführt werden, mit dem die entsprechende Datenbanken und Rollen angelegt werden. Die entsprechende Datei befindet sich im Verzeichnis C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn.

Eine genaue Installationsanleitung ist in der MSDN zu finden.

Aufpassen muss man jedoch ein bisschen bei der Installation des SQL Server. Aktuell lädt das Setup des SQL Server “Denali” während der Installation standardmäßig zwei Produkt-Updates herunter. Das entsprechende Update kann während der Ausführung des Installationsscriptes “DQSInstaller.exe” zu einem Fehler führen, so dass die Installation nicht erfolgreich beendet werden kann. Nach Möglichkeit sollte dieses Update/Hotfix also nicht mitinstalliert werden.

Ist das Update bereits installiert, muss über das Windows Update der HotFix 1515 für SQL Server deinstalliert werden, um eine erfolgreiche Installation zu gewährleisten. Dieses Problem und die dazugehörige Lösung ist recht gut im innerhalb des Microsoft Forums SQL Server "Denali" Data Quality Services (Pre-Release) erklärt.

Sind die DQS erfolgreich installiert worden, so kann man sich über einen der durch das SQL Server Setup installierten Clients (x86/x64) mit den DQS verbinden.

Spielt man mit den DQS Client ein bisschen herum, so kommt man bei der CTP3 unter umständen an einem Punkt folgende Fehlermeldung angezeigt, obwohl der DQS Client vorher Daten aus der Datenbank laden konnte:

image


Um dieses Fehler zu beheben, muss den beiden SQL Server Logins ##MS_dqs_db_owner_login## und ##MS_dqs_service_login## Zugriff auf die jeweiligen Schemata in der Datenbank gewährt werden, dies sind bei der AdventureWorks200R2 z.B. HumanResources, Person, Production, Purchasing und Sales.

 

image

Falls weitere Fehler beim Anmelden and die DQS auftreten, so kann dies auch mit einigen .NET Updates zusammenhängen. In diesem Fall sollte man dann noch einmal einen Blick auf die Microsoft SQL Server Code-Named "Denali" CTP3 Release Notes, speziell auf den Bereich 4.23 Some .NET Framework 4 Updates Might Cause DQS to Fail, werfen. Diese Fehler können auch später durch Updates nach einer bereits erfolgreichen Installation und einem ersten Testing auftreten

Weitere Ressourcen zum Thema DQS:

 

Bookmark and Share

Data Quality, SQL Server Komponenten , ,

Denali – SQL Server 2011 CTP1

9. November 2010

Heute wurde die CTP1 des SQL Server 2011 – Codename Denali - veröffentlicht. Neben vielen Neuerungen interessiert mich natürlich am meisten, was sich im Bereich der SSIS alles verändern wird.

Aktuell läuft noch die Installation der VM im Hintergrund, ich bin gespannt. Soweit man es den verschiedenen Twitter Beiträgen entnehmen kann, werden die SSIS jedoch in einem leichten neuem Gewand daher kommen: Komponenten haben nun runde Ecken.

Zusätzlich soll die Entwicklungsumgebung jetzt auch STRG+Z und STRG+Y, also die Funktionen Rückgängig und Wiederherstellen unterstützen. Einige neue Features sind in dem MSDN Artikel What’s New (Integration Services) beschrieben.

Sobald die VM läuft werde ich mich besonders der darin beschriebenen “New Data Correction Component” widmen.

Weitere neue Funktionen die mit der CTP 1 zu testen sind, sind unter anderem eine verbesserte  Unterstützung von Geodaten und in wieweit Silverlight in die Reporting Service integriert wurde.

Bookmark and Share

SQL Server Komponenten, Sonstiges ,

Checkpoints

9. April 2010

Wenn innerhalb von SSIS Paketen Fehler auftreten, kann es hilfreich sein die Ausführung beim zuletzt erfolgreich ausgeführten Task wieder zu starten. Z.B. wenn einzelne Tasks innerhalb eines Paketes viel Zeit in Anspruch nehmen, wie ein FTP Task der großen Datenmengen hoch- oder runterlädt. Die Integration Services bieten hierfür Checkpoints an, um Pakete vom Fehler an erneut starten zu lassen, anstatt diese komplett neu auszuführen.

Sind Checkpoints innerhalb eines Paketes konfiguriert, werden während der Ausführung Informationen über den Ablauf in einer XML Datei gespeichert. Beim erfolgreichen Beenden des Paketes wird diese Datei wieder gelöscht und bei der nächsten Ausführung wieder neu erstellt.

Um Checkpoints innerhalb der SSIS Pakete zu verwenden, müssen 3 Parameter auf Paketebene konfiguriert werden, die direkt mit den Checkpoints in Zusammenhang stehen.

image  
Zusätzlich muss noch der Parameter FailPackageOnFailure konfiguriert werden, bei dem sich die richtigen Einstellungen aber etwas schwieriger/umfangreicher gestalten können.

imageEin relativ einfaches Paket, wie oben aufgebaut, kann nur Checkpoints erstellen, wenn bei dem Task der fehlschlägt, der Parameter FailPackageOnFailure auf True gesetzt wird. Was bei 4 Tasks vielleicht noch relativ schnell von der Hand geht.

Besser ist es, alle Tasks, für die die Checkpoint erzeugen wichtig ist, in einen Sequence Container zu verschieben. Hier reicht es dann aus den Parameter FailPackageOnFailure innerhalb des Sequence Containers auf True zu setzen.

 imageimage image

Im obigen Beispiel ist zu sehen, dass das Paket bei erneuter Ausführung nach dem fehlgeschlagenem Task startet. Möchte man dies umgehen, also die Situation herbeiführen dass das Paket da startet wo es abgebrochen ist, muss wieder der Parameter FailPackageOnFailure = True bei allen erforderlichen Tasks gesetzt werden. Ansonsten muss die Aktion die der fehlgeschlagene Task ursprünglich ausführen sollte, manuell durchgeführt werden.

In Punkto Sicherheit ist beim Umgang mit Checkpoints auch noch etwas zu beachten.

<DTS:Variable>
<
DTS:Property DTS:Name="Expression"
/>
<
DTS:Property DTS:Name="EvaluateAsExpression">0</DTS:Property
>
<
DTS:Property DTS:Name="Namespace">User</DTS:Property
>
<
DTS:Property DTS:Name="ReadOnly">0</DTS:Property
>
<
DTS:Property DTS:Name="RaiseChangedEvent">0</DTS:Property
>
<
DTS:Property DTS:Name="IncludeInDebugDump">2345</DTS:Property
>
<
DTS:VariableValue DTS:DataType="8">MeinPasswort</DTS:VariableValue
>
<
DTS:Property DTS:Name="ObjectName">Password</DTS:Property
>
<
DTS:Property DTS:Name="DTSID">
{2B274456-889B-440E-B79C-7E142E32B7AA</DTS:Property>
<
DTS:Property DTS:Name="Description"
/>
<
DTS:Property DTS:Name="CreationName"/>
</
DTS:Variable>
<
DTS:Variable>
<
DTS:Property DTS:Name="Expression"/>
<
DTS:Property DTS:Name="EvaluateAsExpression">0</DTS:Property>
<
DTS:Property DTS:Name="Namespace">User</DTS:Property>
<
DTS:Property DTS:Name="ReadOnly">0</DTS:Property>
<
DTS:Property DTS:Name="RaiseChangedEvent">0</DTS:Property>
<
DTS:Property DTS:Name="IncludeInDebugDump">2345</DTS:Property>
<
DTS:VariableValue DTS:DataType="8">MeinBenutzername</DTS:VariableValue>
<
DTS:Property DTS:Name="ObjectName">Username</DTS:Property>
<
DTS:Property DTS:Name="DTSID">{C92305B2-9E00-46FD-825E-49B4C83CD736}</DTS:Property>
<
DTS:Property DTS:Name="Description"/>
<
DTS:Property DTS:Name="CreationName"/>
</
DTS:Variable>
</
DTS:Variables>

Der oben stehende Code ist ein Auszug aus einer Checkpoint Datei. Da Checkpoints auch Variablen und deren Inhalte mit abspeichern, sollte man sich bei der Verwendung von Checkpoints auch Gedanken um die Zugriffsberechtigungen auf diese machen. Im Code sind die beiden Variablen Username und Password mit den jeweiligen Werten im Klartext zu lesen.

Bookmark and Share

SQL Server Komponenten, Tools ,