Einführung in die Datenvirtualisierung mit PolyBase
Gilt für: SQL Server
Azure SQL-Datenbank
Azure Synapse Analytics
Analytics Platform System (PDW)
PolyBase ist ein Datenvirtualisierungsfeature für SQL Server.
Was ist PolyBase?
PolyBase ermöglicht Ihrer SQL Server-Instanz, Daten mit T-SQL direkt aus SQL Server, Oracle, Teradata, MongoDB, Hadoop-Clustern, Cosmos DB und einem S3-kompatiblen Objektspeicher abzufragen, ohne dass eine spezielle Software für Clientverbindungen installiert werden muss. Sie können auch den generischen ODBC-Connector verwenden, um eine Verbindung mit weiteren Anbietern über ODBC-Treiber von Drittanbietern herzustellen. PolyBase ermöglicht T-SQL-Abfragen, Daten aus externen Quellen mit relationalen Tabellen in einer Instanz von SQL Server zu verknüpfen.
Ein wichtiger Anwendungsfall für die Datenvirtualisierung mit PolyBase besteht darin, dass die Daten an Ihrem ursprünglichen Speicherort und im Quellformat verbleiben. Diese externen Daten können über die SQL Server-Instanz virtualisiert werden, sodass sie wie in jeder anderen Tabelle in SQL Server abgefragt werden können. Dadurch werden weniger ETL-Vorgänge für Datenverschiebungen benötigt. Dieses Datenvirtualisierungsszenario ist mithilfe von PolyBase-Connectors möglich.
Unterstützte SQL-Produkte und -Dienste
PolyBase bietet dieselben Funktionen für die folgenden SQL-Produkte von Microsoft:
- SQL Server 2016 (13.x) und höhere Versionen (Windows)
- SQL Server 2019 (15.x) und höhere Versionen (Windows und Linux)
- SQL Server Analytics Platform System (PDW)
- Azure Synapse Analytics (für dedizierte SQL-Pools)
- Die Datenvirtualisierung in Azure Synapse Analytics ist in zwei Modi verfügbar: PolyBase und native. Weitere Informationen finden Sie unter Verwenden externer Tabellen mit Synapse SQL.
Hinweis
Die Datenvirtualisierung ist auch für azure SQL Managed Instance verfügbar, die auf das Abfragen externer Daten in Dateien in Azure Data Lake Storage (ADLS) Gen2 und Azure Blob Storage festgelegt ist. Weitere Informationen finden Sie unter Datenvirtualisierung mit Azure SQL Managed Instance.
SQL Server 2022 PolyBase-Verbesserungen
Neu bei SQL Server 2022 (16.x) | Details |
---|---|
S3-kompatibler Objektspeicher | SQL Server 2022 (16.x) fügt neuen Connector, S3-kompatiblen Objektspeicher, mithilfe der S3-REST-API hinzu. Sie können sowohl Datendateien als auch OPENROWSET EXTERNAL TABLES datendateien im S3-kompatiblen Objektspeicher abfragen. |
Einige Connectors sind von den PolyBase-Diensten getrennt | Der S3-kompatible Objektspeicherconnector sowie ADSL Gen2 und Azure Blob Storage sind nicht mehr von PolyBase-Diensten abhängig. PolyBase-Dienste müssen weiterhin ausgeführt werden, um die Konnektivität mit Oracle, Teradata, MongoDB und generischem ODBC zu unterstützen. Das PolyBase-Feature muss weiterhin auf Ihrer SQL Server-Instanz installiert werden. |
Parquet-Dateiformat | PolyBase kann jetzt auch Daten aus Parquet-Dateien abfragen, die sich in einem S3-kompatiblen Objektspeicher befinden. Weitere Informationen finden Sie unter Virtualisierung von Parquet-Dateien in einem S3-kompatiblen Objektspeicher mit PolyBase. |
Delta-Tabellenformat | PolyBase ist jetzt in der Lage, Daten aus dem Delta-Tabellenformat, die auf S3-kompatiblem Objektspeicher, Azure Storage Account V2 und Azure Data Lake Storage Gen2 gespeichert sind, abfragt (schreibgeschützt). Weitere Informationen finden Sie unter Virtualisieren des Delta-Tabellenformats |
Externe Tabelle als Auswahl erstellen (CETAS) | PolyBase kann jetzt CETAS verwenden, um eine externe Tabelle zu erstellen und dann parallel das Ergebnis einer Transact-SQL SELECT-Anweisung in Azure Data Lake Storage Gen2, Azure Storage Account V2 und S3-kompatible Objektspeicher zu exportieren. Weitere Informationen finden Sie unter CREATE EXTERNAL TABLE AS SELECT (Transact-SQL). |
Weitere neue Features von SQL Server 2022 (16.x) finden Sie unter Neuigkeiten in SQL Server 2022?
Ein Beispiel für die Verwendung von PolyBase in SQL Server 2022 (16.x) zum Virtualisieren einer CSV-Datei in Azure Storage finden Sie unter Virtualize CSV-Datei mit PolyBase.
PolyBase-Connectors
PolyBase bietet Konnektivität mit den folgenden externen Datenquellen:
Externe Datenquellen | SQL Server 2016-2019 mit PolyBase | SQL Server 2022 (16.x) mit PolyBase | APS PDW | Azure Synapse Analytics |
---|---|---|---|---|
Oracle, MongoDB, Teradata | Lesen | Lesen | Nein | Nein |
Generisches ODBC | Lesen (nur Windows) | Lesen (nur Windows) | Nein | Nein |
Azure Storage | Lesen/Schreiben | Lesen/Schreiben | Lesen/Schreiben | Lesen/Schreiben |
Hadoop | Lesen/Schreiben | Nein | Lesen/Schreiben | Nein |
SQL Server | Lesen | Lesen | Nein | Nein |
S3-kompatibler Objektspeicher | Nein | Lesen/Schreiben | Nein | Nein |
- SQL Server 2022 (16.x) unterstützt Hadoop nicht.
- SQL Server 2016 (13.x) hat PolyBase mit Unterstützung für Verbindungen mit Hadoop und Azure Blob Storage eingeführt.
- SQL Server 2019 (15.x) hat zusätzliche Connectors eingeführt, einschließlich SQL Server, Oracle, Teradata und MongoDB.
- SQL Server 2022 (16.x) hat den S3-kompatiblen Speicherconnector eingeführt.
- SQL Server 2019 (15.x) Kumulatives Update 19 hat Unterstützung für Oracle TNS eingeführt.
- SQL Server 2022 (16.x) Kumulatives Update 2 hat Unterstützung für Oracle TNS eingeführt.
Beispiele für externe Connectors:
* PolyBase unterstützt zwei Hadoop-Anbieter: Hortonworks Data Platform (HDP) und Cloudera Distributed Hadoop (CDH) über SQL Server 2019. SQL Server-Unterstützung für externe Datenquellen von HDFS Cloudera (CDP) und Hortonworks (HDP) wird eingestellt und nicht in SQL Server 2022 (16.x) enthalten sein. Weitere Informationen finden Sie unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.
So verwenden Sie PolyBase in einer Instanz von SQL Server:
- Installieren Sie PolyBase unter Windows oder unter Linux.
- Aktivieren Sie polyBase ab SQL Server 2019 (15.x) bei Bedarf in sp_configure.
- Erstellen Sie eine externe Datenquelle.
- Erstellen Sie eine externe Tabelle.
Azure-Integration
Durch die zugrunde liegende Unterstützung von PolyBase können T-SQL-Abfragen außerdem Daten aus Azure Blob Storage importieren und exportieren. PolyBase ermöglicht Azure Synapse Analytics zudem das Importieren und Exportieren von Daten aus Azure Data Lake Store und aus Azure Blob Storage.
Gründe für die Verwendung von PolyBase
Mit PolyBase können Sie Daten aus einer SQL Server-Instanz mit externen Daten verbinden. Vor PolyBase konnten Sie zum Verknüpfen von Daten mit externen Datenquellen wie folgt vorgehen:
- Übertragen der Hälfte Ihrer Daten, damit sich alle Daten an einem Speicherort befinden.
- Abfragen beider Datenquellen und Schreiben benutzerdefinierter Abfragelogik zum Verknüpfen und Integrieren der Daten auf Clientebene.
Mit PolyBase können Sie einfach Transact-SQL verwenden, um die Daten zu verknüpfen.
Mit PolyBase müssen Sie keine zusätzliche Software in Ihrer Hadoop-Umgebung installieren. Sie fragen externe Daten anhand der gleichen T-SQL-Syntax ab, die auch zum Abfragen einer Datenbanktabelle verwendet wird. Alle von PolyBase implementierten Unterstützungsaktionen werden transparent durchgeführt. Der Abfrageautor benötigt keine Kenntnisse über die externe Quelle.
Verwendungszwecke von PolyBase
PolyBase ermöglicht die folgenden Szenarios in SQL Server:
Abfragen von in Azure Blob Storage gespeicherten Daten. Azure Blob Storage ist ein praktischer Ort zum Speichern von Daten für die Verwendung durch Azure-Dienste. PolyBase vereinfacht den Zugriff auf die Daten mithilfe von T-SQL.
Abfragen von in Hadoop gespeicherten Daten aus einer SQL Server-Instanz oder einem PDW. Benutzer speichern Daten in kostengünstigen verteilten und skalierbaren Systemen, wie z.B. Hadoop. PolyBase vereinfacht die Abfrage der Daten mithilfe von T-SQL.
Importieren von Daten aus Hadoop, Azure Blob Storage oder Azure Data Lake Store. Profitieren Sie von der Geschwindigkeit der Columnstore-Technologie und den Analysefunktionen von Microsoft SQL, indem Sie Daten aus Hadoop, Azure Blob Storage oder Azure Data Lake Store in relationale Tabellen importieren. Sie benötigen keine separaten ETL-Funktionen und kein Importtool.
Exportieren von Daten in Hadoop, Azure-Blobspeicher oder Azure Data Lake Store. Archivieren Sie Daten in Hadoop, Azure-Blobspeichern oder Azure Data Lake Store, um kostengünstigen Speicherplatz zu nutzen und Daten für einfachen Zugriff online zu halten.
Integrieren in BI-Tools. Verwenden Sie PolyBase mit dem Business Intelligence- und Analysestapel von Microsoft, oder verwenden Sie tools von Drittanbietern, die mit SQL Server kompatibel sind.
Leistung
Übertragen von Berechnungen an Hadoop. (Gilt nur für: SQL Server 2016 (13.x), SQL Server 2017 (14.x) und SQL Server 2019 (15.x).) PolyBase überträgt einige Berechnungen per Push an die externe Quelle, um die Abfrage insgesamt zu optimieren. Der Abfrageoptimierer trifft eine kostenbasierte Entscheidung darüber, ob die Berechnung an Hadoop übertragen wird, wenn die Abfrageleistung dadurch verbessert wird. Für diese kostenbasierte Entscheidung verwendet der Abfrageoptimierer Statistiken in externen Tabellen. Bei der Übertragung der Berechnung werden MapReduce-Aufträge erstellt und die verteilten Berechnungsressourcen von Hadoop genutzt. Weitere Informationen finden Sie unter Weitergabeberechnungen in PolyBase.
Skalieren von Berechnungsressourcen. (Gilt nur für: SQL Server 2016 (13.x), SQL Server 2017 (14.x) und SQL Server 2019 (15.x).) Um die Abfrageleistung zu verbessern, können Sie PolyBase-Erweiterungsgruppenvon SQL Server verwenden. Die ermöglicht eine parallele Datenübertragung zwischen SQL Server-Instanzen und Hadoop-Knoten und fügt Berechnungsressourcen für die Verarbeitung der externen Daten hinzu.
Wichtig
Die Microsoft SQL Server PolyBase-Erweiterungsgruppen werden eingestellt. Die Erweiterungsgruppen-Funktionalität wird in SQL Server 2022 (16.x) aus dem Produkt entfernt. PolyBase-Datenvirtualisierung wird in SQL Server weiterhin als Aufskalierungsgruppen-Feature vollständig unterstützt. Weitere Informationen finden Sie unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.
Aktualisieren auf SQL Server 2022
Ab SQL Server 2022 (16.x) werden Hortonworks Data Platform (HDP) und Cloudera Distributed Hadoop (CDH) nicht mehr unterstützt. Aufgrund dieser Änderungen müssen externe PolyBase-Datenquellen, die in früheren Versionen von SQL Server erstellt wurden, manuell abgelegt werden, TYPE = HADOOP
bevor sie zu SQL Server 2022 (16.x) migriert werden. Das Ablegen externer Datenquellen erfordert auch das Ablegen der zugeordneten Datenbankobjekte, z. B. Anmeldeinformationen mit Datenbankbereich und externe Tabellen.
Azure Storage-Connectors müssen basierend auf der folgenden Referenztabelle geändert werden:
Externe Datenquelle | From | Beschreibung |
---|---|---|
Azure Blob Storage | wasb[s] | abs |
ADLS Gen2 | abfs[s] | adls |
Nächste Schritte
Vor der Verwendung von PolyBase müssen Sie PolyBase unter Windows oder Linux installieren und ggf. PolyBase in sp_configure aktivieren. Weitere Lernprogramme zum Erstellen externer Datenquellen und externer Tabellen für eine Vielzahl von Datenquellen finden Sie unter PolyBase Transact-SQL-Referenz.
Überprüfen Sie die PolyBase Transact-SQL-Referenz mit Beispielen für externe Datenquellen und externe Tabellen für eine Vielzahl von Datenquellen. Weitere Lernprogramme finden Sie in den folgenden Artikeln: