Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH.

Post on 05-Apr-2015

114 views 2 download

transcript

SQL Server 2008{ FileStream und Geodaten }Daniel Walzenbach

Developer EvangelistMicrosoft Deutschland GmbH

Agenda

Unstrukturierten DatenGeodatenHierarchische Daten

Speichern unstrukturierter Daten Herausforderungen

Moderne Anwendungen speichern zunehmend unstrukturierte Daten

BilderVideosDokumente…

Datenmenge wächst jährlich um ca. 35%

Davon 85% unstrukturierte DatenWie können diese Daten gespeichert werden?

Derzeitige Lösungsansätze BLOB in der DB speichern (varbinary(max))

Transaktional konsistente DatenEinfaches Sichern/Wiederherstellen der DatenEinheitliches Programmiermodell und Berechtigungskonzept

Große DatenbankenSchlechte StreamingperformanceBeschränkung der Dateigröße auf 2GBVergleichsweise teuer

Derzeitige Lösungsansätze BLOB im Dateisystem, Verweis in DB

Kleine DatenbankenGute StreamingperformanceDateigröße nur durch Dateisystem begrenztVergleichsweise günstig

Transaktional inkonsistente DatenUnterschiedliche BerechtigungssystemeSichern/Wiederherstellen der Daten nicht trivial

Die Lösung: FileStream Vorteile beider Welten kombinieren

Transaktional konsistente DatenEinfaches Sichern/Wiederherstellen der Daten (integriert in SQL Backup)Einheitliches BerechtigungskonzeptGute StreamingperformanceDateigröße nur durch Dateisystem begrenztVergleichsweise günstig

FileStream Wie funktioniert FileStream?

BLOBs (varbinary(max)) werden von SQL Server im Dateisystem verwaltet

BLOBs werden in eigenem Verzeichnis gespeichert (erfordert NTFS)

Verzeichnisse sind durch ACLs geschütztZwei Programmiermodelle

T-SQLWin32 Stream-API mit T-SQL Transaktionskontext

FileStream Konfiguration

FileStream auf Server aktivierenNur T-SQLLokaler DateisystemzugriffLokaler und Remote Dateisystemzugriff

Ablageort in CREATE DATABASE festlegenFILEGROUP FileStreamGroup1

CONTAINS FILESTREAM(NAME = FSMedia, FILENAME = N‘C:\Demos\FSData‘)

Tabelle muss GUID-Feld enthalten ROWGUIDCOL NOT NULL UNIQUE

FileStream Einschränkungen

Nicht unterstützt werdenDB SnapshotDB MirroringTransparente Verschlüsselung

FileStream Einsatzzweck

Zu speichernde Daten sind im Schnitt größer als 1 MBSchneller, lesender Zugriff ist wichtigFür kleinere Datensätze bietet varbinary(max) (in der Datenbank gespeichert) häufig bessere Performance

varbinary(max), varchar(max) und XML Datentypen werden nach wie vor unterstützt

{ FileStream demo }

Konfiguration des Servers

Zugriff auf FileStream Objekte mit T-SQL und .NET

Demo

Geodaten

Geodaten geben Antworten auf Fragen wie…

Welche Straßen kreuzen ein bestimmtes Gelände?Überlappen sich bestimmte Gebiete?Liste aller italienischen Restaurants im Umkreis von 5km?

Geodaten sind Bestandteil vieler Datenbanken

Adressen zu Kunden?

Spatial Datentypen

Das Open Geospatial Consortium (OGC) definiert eine Hierarchie von Geodatentypen

PointLinestringPolygonMultiPointMultiLinestringMultiPolygonGeomCollectionNicht instanziierbare Klassen auf denen diese Typen aufbauen

OGC Hierarchie von Geodaten

SQL Server 2008 und Geodaten

SQL Server unterstützt zwei Geodatentypen

GEOMETRY – flaches ErdmodellGEOGRAPHY – rundes Erdmodell

Beide Typen unterstützen alle OGC Typen

InstanceOf kann die Typen unterscheidenUnterstützung zweidimensionaler Daten

X und Y oder Längen-/BreitengradZ – Höhenangabe (benutzerdef. Semantik)M – Maßeinheit (benutzerdef. Semantik)

GEOGRAPHY Anforderungen

GEOGRAPHY Typ hat weitere AnforderungenKoordinaten werden in Breiten-/Längengrad eingegeben

Ändert sich zu Längengrad/Breitengrad vor RTM

Koordinaten von außengelegene Polygonringe müssen „gegen den Uhrzeiger“ angegeben werden, innen liegende (Löcher) „mit dem Uhrzeiger“Ein einzelnes Geometrieobjekt kann nicht mehr als eine halbe logische Hemisphäre umfassen

Innen oder außen?

GEMOETRY arbeitet „in der Ebene“Ein Polygon ist unabhängig der Ausrichtung eindeutig definiert

Innen oder außen

Welche Fläche definiert einen Polygonzug um den Äquator?

Innen oder außen?

„Linke Hand“ Regel

Properties und Methods

Geodaten Typen sind SQLCLR UDTs'.' Syntax für Properties'.' Syntax für Instanzmethoden'::' Syntax für statische MethodenMethoden und Properties sind case-sensitive

Methoden und Properties

Jeder Typ unterstützt eine Anzahl von Methoden und Properties, die mit den OGC übereinstimmt

Zusätzliche Erweiterungen für die Typen (MakeValid, Reduce, …)GEOMETRY implementiert alle OGC Properties und MethodenGEOGRAPHY implementiert die meisten OGC Eigenschaften und Properties

Eingabe von Geodaten

Geodaten werden binär gespeichertInstanzen des Typs können NULL seinEingabe als

Well Known binary - ST[Type]FromWKBWell Known text - ST[Type]FromTextGeography Markup Language (GML) - GeomFromGml

Außerdem SQLCLR FunktionenParsePoint

Ausgabe von Geodaten

Geodaten können ausgegeben werden als

Well Known binary - STAsBinaryWell Known text - STAsTextGML - AsGmlText mit Z und M Werten - AsTextZM

SQLCLR Methode ToString – Gibt „Well Known text“ zurückAls SQLCLR Object - SqlGeometry, SqlGeographyAndere nützliche Formate: GeoRSS, KML

Nicht direkt unterstützt

SRID (Spatial Reference Identifier)

Eine SRID pro GeodatensatzSRID legt die Spezifikation fest

4326 – GPS, 4269 – ESRI, …SRID 0 – keine spezielle Referenz. Default für GEOMETRY

Nur Geodaten mit der gleichen SRID können zusammen verarbeitet werden

Rückgabewerde ansonsten NULLSRID muss einen Eintrag von sys.spatial_reference_systems referenzieren

Nützliche Methoden/Properties

BeschreibendSTAreaSTLengthSTCentroid

Beziehungen zwischen zwei InstanzenSTIntersectsSTDistance

CollectionsSTGeometryNSTPointN

SELECT *FROM roads WHERE roads.geom.Intersects(@ms)=1

Beispiel

Welche Straßen kreuzen das Firmengelände von Microsoft?

Extension Methods

SQL Server 2008 erweitert den OGC Standard

MakeValid – Konvertiert zu OGC gültiger InstanzBufferWithTolerence – erlaubt Annäherung und AbweichungReduce – Vereinfacht komplexe Geometrie (GEOMETRY/GEOGRAPHY)GML Unterstützung…

Spatial Indexes GEOMETRY Datentyp

Spatial Indexes GEOGRAPHY Datentyp

{ Spatial demo }

Geodaten im Überblick

Demo

T-SQL VerbesserungenHierarchyID Datentyp

Perfekter Einsatz für Unternehmensorganisation, Stücklisten, etc…

Repräsentiert eine Position in einer HierarchieKompakte/effiziente Speicherung

6*logAn (A = Anzahl Kinder, n = Anzahl Knoten)

Beliebige Datensätze speichern/löschenLeistungsfähige Abfragen

GetRoot, GetLevel, IsDescendant, ReParent, etc.

Hierarchische Daten in SQL 2005

Parent ID <- ChildIDEinfach Daten einzupflegen aber…Aufwändig in der Abfrage

Rekursion

Hierarchische Daten in SQL 2008

Neuer „Built-In“ Datentyp – HierarchyIDSQLCLR basierte System UDT

Kann auch in .NET (VB.NET, C#) verwendet werden (SqlHierarchyId)

Als path enumeration model implementiert (ORDPATH)HierarchyID (SQLCLR Typ) kann erweitert werden

Von dem Typ ableitenUm Methoden und Properties erweitern

HierarchyID erweitern

Da HierarchyID ein SQLCLR Typ istKann von dem Typ abgeleitet werdenErweitern um Methoden und Properties

HierarchyID IndexstrategienDepth-first

Knoten in einem Unterbaum sind benachbart angeordnet

Effizient für Fragen nach Unterbäumen„Suche nach allen Dateien in diesem und den untergeordneten Ordnern“

CREATE UNIQUE INDEX Org_Depth_First ON Organization(EmployeeID)

HierarchyID Indexstrategien Breadth-first

Knoten in einer Ebene sind benachbart angeordnet

Effizient für Fragen nach direkt unterstellten Knoten„Suche nach allen Angestellten eines Managers“

CREATE CLUSTERED INDEX Org_Breadth_First ON Organization(OrgLevel,EmployeeID)

{ HierarchyID demo }

Speichern hierarchischer Daten

Demo

Resources

Learn more about data programmabilityhttp://www.microsoft.com/sql/2008/technologies/dataprogrammability.mspx

Learn more about spatial datahttp://www.microsoft.com/sql/2008/technologies/spatial.mspx

Learn more about SQL Server 2008http://www.microsoft.com/sql/2008/default.mspx

Discover SQL Server 2008: Webcasts, Virtual Labs, and White Papershttp://www.microsoft.com/sql/2008/learning/default.mspx

SQL Server 2008 traininghttp://www.microsoft.com/learning/sql/2008/default.mspx

Download latest SQL Server CTPhttp://www.microsoft.com/sql/2008/prodinfo/download.mspx

Join the SQL PASS communityhttp://www.sqlpass.org

Visual Studio 2008weitere Angebote

Visual Studio Team System Information DayRegelmäßige ganztägige Informationsveranstaltung von MicrosoftPraxisnahe Demos & viel Raum für DiskussionenDetails & Anmeldung: www.event-team.com/events/visualstudio

TeamConf 2008 – Die Visual Studio Team System KonferenzVSTS in der Praxis - 22.-24. April 2008 in MünchenAnwenderberichte (Siemens, ABB, Commerzbank, Datev, Münchener Rück,..)Fach- und TechnologievorträgeVortragsprogramm und Anmeldung: www.teamconf.de

Visual Studio Launch PromotionTauschen Sie Ihre Visual Studio Standard in eine höherwertige Visual Studio Edition Ihrer Wahl Anrechnung in Höhe von 299 € beim Kauf eines anderen VS Produktesvom 19. Februar bis zum 30. April 2008Nur bei den Partnern: PC Ware, SoftExpress, SOS und Zoschke (befinden sich alle in der Ausstellerhalle)

Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.