PolyBase – Ein technischer Überblick

Keine Kommentare
PolyBase

Mit dem Release des SQL Servers 2016 von Microsoft wurde PolyBase als ein neues Feature eingeführt. Jedoch ist diese Funktionalität nicht neu; sie war bereits in der 2012er Version des Microsoft Analytics Platform System (APS) verfügbar. In diesem Blogbeitrag finden Sie einen technischen Überblick zu PolyBase.

Im Grunde genommen dient PolyBase als Brücke zwischen dem SQL Server und semi-strukturierten/nicht-strukturierten externen Datenquellen wie bspw. Hadoop oder dem Azure Blob Storage. Somit kann man relationale und nicht-relationale Datenbanken (NoSQL) gleichzeitig abgefragen. Auch das Importieren und Exportieren von Daten von und nach externen Datenbanken wird dadurch ermöglicht. Ferner können bestehende BI Tools, die bereits auf den SQL Server zurückgreifen zusätzlich auf die externen Datenquellen zugreifen.

PolyBase Diagramm

Ein wesentlicher Vorteil besteht darin, dass PolyBase keine zusätzlichen Softwareinstallationen auf den externen Datenquellen benötigt. Außerdem kann man Abfragen in T-SQL schreiben und im SQL Server Management Studio ausführen. Die Befehle werden im Hintergrund in die entsprechende Syntax der externen Datenquelle übersetzt und dort ausgeführt. Somit ist eine Einarbeitung in die jeweilige spezifische Syntax der externen Datenquelle für den Anwender nicht notwendig.

Eine mögliche Vorgehensweise der Installation von PolyBase auf dem SQL Server bietet Microsoft an.

Polybase Scale-Out Groups

Eine einfache SQL Server Instanz mit einer Polybase Engine kann zu Performance Beeinträchtigungen führen, wenn große Datenmengen aus externen Datenbanken abgefragt werden. Daher gestattet das Group Feature mehrere SQL Server Instanzen zu einem gemeinsamen Cluster zu vereinen, damit Abfragen mit großen Datenmengen aus externen Datenbanken besser skaliert werden und somit zur Performanceoptimierung beisteuern können. Die folgende Abbildung stellt hierzu die Vorgehensweise dar:

PolyBase scale-out groups

In jedem Cluster kann es nur einen Head Node und mindestens einen Compute Node geben. Diese Hierarchie entspricht der Aufteilung in Hadoop Clustern, in denen ein Name Node und mindestens ein Data Node existiert.

Der Head Node beinhaltet die SQL Server Instanz, auf der man die Abfragen ausführt. Dabei werden die Bereiche der Abfrage, die externe Datenquellen beinhalten, auf die PolyBase Engine geschoben. Die Engine übersetzt die Abfrage und erzeugt Query Pläne anhand der erstellen Statistiken auf den externen Tabellen. Des Weiteren verteilt die Engine die Aufgaben an den Data Movement Service (DMS) weiter, der auch auf den Compute Nodes installiert ist.

Der Compute Node umfasst die SQL Server Instanzen, die beim Skalieren der großen Datenmengen Abfragen unterstützen sollen. Der PolyBase DMS transferiert Daten zwischen den externen Datenquellen und dem SQL Server und zwischen dem Head Node und den Compute Nodes.

Eine genaue Vorgehensweise der Konfiguration von PolyBase Server Clustern auf dem SQL Server bietet Microsoft an:

Hier ein Beispiel zum Anlegen einer externen Datenquelle mit Datenformat und Tabelle:

Create External Data Source Hadoop With

Die externe Tabelle kann dann mit SELECT * FROM Table_01 abgefragt werden.

Weitere Beispiele zum Erstellen von externen Datenquellen und Tabellen findet man bspw. unter:

https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-t-sql-objects

https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-queries

Bei weiteren Fragen zu diesem spannenden Thema kontaktieren Sie uns gerne.

Vorheriger Beitrag
SQL Server Konferenz 2017
Nächster Beitrag
Temporale Tabellen mit Versionsverwaltung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Weitere Beiträge