Zusammen mit Michael Pertek habe ich, Andreas Glaser, das Whitepaper "Externe Speicherung von BLOBs mit SharePoint 2007 sowie SQL Server 2005" verfasst. Inhalt dieses Whitepapers ist das Aufzeigen welche Möglichkeiten und Restriktionen es bei der Speicherung von Daten mittels SharePoint 2007 und dem SQL Server 2005 (oder dem SQL Server 2008) extern auf dem Dateisystem zum jetzigen Zeitpunkt gibt.
Download als auch Teil 2 werden in ein paar Tagen zur Verfügung gestellt.
Einleitung
Schlagwörter wie „FileStream“, „EBS Provider“ und „externe Speicherung von grossen Datenmengen“ kursieren innerhalb der Anwendungsbereiche von SharePoint und SQL Server und werden immer wieder diskutiert. Hinsichtlich der gegebenen Verwendungsmöglichkeiten dieser Features und den nicht zu unterschätzenden Einschränkungen gibt es allerdings Stand heute kaum dokumentierte Erfahrungen im Einsatz dieser Features. Diese Zusammenstellung der zentralen Fakten und Lösungsvarianten bringt ein wenig Licht ins Dunkel im richtigen Umgang und der Speicherung von grossen Datenmengen.
Unstrukturierte Daten
Grundlage dieser Ausführungen ist die Annahme, dass aufgrund des starken, fast explosionsartig ansteigenden Aufkommens an digitalen Daten und der einhergehenden Reduktion der Anschaffungs- und Betriebskoten von Hardwarekomponenten zur Speicherung des vermehrten Datenaufkommens viele Firmen unstrukturierte Daten in einer Datenbank speichern. Unter unstrukturierten Daten, auch Binary Large Objects (BLOB) genannt, versteht man Dokumente, digitale Bilder, Audio oder Videoformate. Immer häufiger werden diese Daten zu einem geschäftskritischen Bestandteil in Firmen und ihre Vorhaltung gewinnt an strategischer Bedeutung.
Business Value
Die Speicherung von strukturierten als auch unstrukturierten Daten geschieht im SQL Server 2005 auf dieselbe Art und Weise. In der ersten Darstellung im linken Bild wird aufgezeigt, wie sowohl Dateien als auch Metadaten dieser Dateien in einer relationalen Datenbank gespeichert werden. In der rechten Darstellung wird derselbe Vorgang für unstrukturierte Daten innerhalb des SQL Servers 2008 abgebildet.
Die Speicherung von strukturierten als auch unstrukturierten Daten geschieht im SQL Server 2005 auf dieselbe Art und Weise. In der ersten Darstellung im linken Bild wird aufgezeigt, wie sowohl Dateien als auch Metadaten dieser Dateien in einer relationalen Datenbank gespeichert werden. In der rechten Darstellung wird derselbe Vorgang für unstrukturierte Daten innerhalb des SQL Servers 2008 abgebildet.
Abbildung 1: Unstrukturierte Daten im SQL Server 2005 und 2008
Der Zugriff auf BLOB’s, welche in der Datenbank gespeichert sind, ist allerdings in der Regel zu wenig performant.
Der SQL Server 2008 dagegen kann BLOB’s auch direkt auf dem Dateisystem speichern und die dazugehörigen Metadaten in einer Datenbank ablegen. Die Performance ist dadurch deutlich höher und für den Benutzer spürbar. Zusätzlich ist die Grösse der gespeicherten Dateien nicht wie beim SQL Server 2005 auf lediglich 2GB beschränkt.
Der SQL Server 2005 bietet von sich aus nicht die Möglichkeit der externen Speicherung von Daten wie oben beschrieben. Im Zusammenspiel mit SharePoint 2007 ist es dennoch möglich, die externe Speicherung über Sharepoint zu realisieren (Stichwort External BLOB Storage).
SharePoint 2007
Unter der Voraussetzung, dass Service Pack 1 installiert wurde, ergeben sich daraus zwei Lösungsansätze, um Daten ausserhalb des SQL Server zu speichern:
- External BLOB Storage – EBS (SQL Server 2005)
- FileStream (SQL Server 2008)
Der erste Lösungsansatz (EBS) ist auf der Seite von SharePoint umzusetzen und unterstützt den SQL Server 2005. Der zweite Lösungsansatz (FileStream) ist ein Feature des neuen SQL Server 2008.

