Gilt für: SQL Server 2016 (13.x) und höhere Versionen
PolyBase vs. Verbindungsserver
In der folgenden Tabelle werden die Unterschiede zwischen PolyBase und Verbindungsserverfunktionen hervorgehoben:
| PolyBase | Verknüpfte Server |
|---|---|
| Datenbankweites Objekt | Instanzweites Objekt |
| Verwendet ODBC-Treiber. | Verwendet OLE-Datenbankanbieter |
| Unterstützt schreibgeschützte Vorgänge für alle Datenquellen und das Schreiben in einige externe Datenquellen | Unterstützt sowohl Lese- als auch Schreibvorgänge |
| Abfragen einer Remotedatenquelle über eine einzige Verbindung lassen sich horizontal skalieren | Abfragen an eine entfernte Datenquelle von einer einzigen Verbindung aus können nicht skaliert werden |
| Weitergabe von Prädikaten wird unterstützt | Weitergabe von Prädikaten wird unterstützt |
| Es ist keine separate Konfiguration für die Verfügbarkeitsgruppe erforderlich | Es ist eine separate Konfiguration für jede Instanz in der Verfügbarkeitsgruppe erforderlich |
| Nur Standardauthentifizierung | Basis- und integrierte Authentifizierung |
| Geeignet für Analyseabfragen, die eine große Anzahl von Zeilen verarbeiten | Geeignet für OLTP-Abfragen, die einzelne oder wenige Zeilen zurückgeben |
| Abfragen, die eine externe Tabelle verwenden, können nicht an verteilten Transaktionen teilnehmen | Verteilte Abfragen können an verteilter Transaktion teilnehmen |
Neuigkeiten bei PolyBase in SQL Server 2022?
SQL Server 2022 (16.x) unterstützt CSV-, Parquet- und Delta-Dateien, die auf Azure Storage Account v2, Azure Data Lake Storage Gen2 oder jedem S3-kompatiblen Objektspeicher über die S3 REST API, entweder lokal oder in der Cloud, gespeichert werden.
SQL Server 2022 (16.x) unterstützt CREATE EXTERNAL TABLE AS SELECT (CETAS) sowie Befehle wie OPENROWSET, CREATE EXTERNAL TABLE (CET) und die T-SQL-Erweiterungen.
SQL Server 2022 (16.x) unterstützt keine externen Hadoop-Datenquellen.
SQL Server 2022 (16.x) Cumulative-Update 2 führt Unterstützung für Oracle TNS-Dateien ein. Weitere Informationen und Beispiele finden Sie unter CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.
Weitere Informationen finden Sie unter Data Virtualization with PolyBase for SQL Server 2022 und sehen Sie sich die PolyBase-Erweiterungen von SQL Server 2022 an.
Neuigkeiten bei PolyBase in SQL Server 2019?
PolyBase in SQL Server 2019 (15.x) kann Daten aus mehreren Quellen lesen. Du kannst die Daten aus diesen externen Datenquellen als externe Tabellen auf deiner SQL Server-Instanz speichern. PolyBase unterstützt zudem die Pushdown-Berechnung für diese externen Datenquellen, mit Ausnahme von generischen ODBC-Typen.
Kompatible Datenquellen
- SQL Server
- Oracle
- Teradata
- MongoDB
- Kompatible generische ODBC-Typen
SQL Server 2019 (15.x) Cumulative Update 19 führt Unterstützung für Oracle TNS-Dateien ein. Weitere Informationen und Beispiele finden Sie unter CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.
Note
PolyBase kann sich mit externen Datenquellen verbinden, indem er ODBC-Treiber von Drittanbietern verwendet. PolyBase enthält diese Treiber nicht, und sie funktionieren möglicherweise nicht wie vorgesehen. Weitere Informationen finden Sie unter Konfigurieren von PolyBase für den Zugriff auf externe Daten mit generischen ODBC-Typen.
Was CONNECTION_OPTIONS kann ich für die Verbindung mit Datenquellen von Drittanbietern angeben?
Überprüfen CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS Sie die unterstützten Verbindungsoptionen für Datenanbieter für SQL Server, Oracle, Teradata, die MongoDB-API für Cosmos DB und generische ODBC-Datenanbieter.
Wie kann ich den Ausführungsplan für Remoteabfragen der PolyBase-Pushdownberechnung anzeigen?
Du kannst den Fernabfrage-Ausführungsplan je nach Version von SQL Server mit unterschiedlichen Methoden einsehen. Weitere Informationen finden Sie unter PolyBase Troubleshooting – Um den PolyBase-Abfrageplan anzusehen.
Wie kann ich feststellen, ob eine PolyBase-Pushdown-Berechnung ausgeführt wird?
Weitere Informationen finden Sie unter Wie man erkennt, ob ein externer Pushdown erfolgt ist.
Wird PolyBase in Azure SQL-Datenbank unterstützt?
Nein, aber du kannst Daten in Dateien in Azure Blob Storage mit der OPENROWSET Funktion abfragen oder aus CREATE EXTERNAL TABLE einem serverlosen SQL-Pool in Synapse Analytics lesen. Weitere Informationen finden Sie unter Azure SQL kann Azure Data Lake Storage-Dateien mit externen Synapse SQL-Tabellen lesen.
Wird PolyBase auf Azure SQL Managed Instance unterstützt?
Azure SQL Managed Instance verfügt über eigene Datenvirtualisierungsfunktionen für Azure Data Lake Storage (ADLS) und Azure Blob Storage als Datenquellen. Weitere Informationen finden Sie unter Datenvirtualisierung mit Azure SQL Managed Instance.
Welche Ports meiner Firewall sollte ich für PolyBase zulassen?
PolyBase selbst erfordert nicht das Öffnen zusätzlicher Ports, es sei denn, Sie verwenden eine PolyBase-Scale-Out-Gruppe. Ohne eine Skalierungsgruppe benötigt der PolyBase-Dienst keine Firewall-Regeln.
Auf Windows-Servern verwendet PolyBase die Ports, die die SQL Server-Instanz im IPAll-Abschnitt der TCP/IP-Einstellungen im SQL Server-Konfigurations-Manager verwendet. Weitere Informationen finden Sie unter TCP/IP-Eigenschaften (Reiter IP-Adressen). Auf Linux-Servern verwendet PolyBase diese network.tcpport Einstellung. Weitere Informationen finden Sie unter TCP-Port.
Informationen zu PolyBase-Erweiterungsgruppen über mehrere Windows-Server finden Sie unter „Portinformationen“ in der nächsten Frage.
Sie müssen jedoch andere Ports für die Kommunikation zu den verschiedenen externen Datenquellen erlauben, die PolyBase nutzt. Lesen Sie die Dokumentation zu ODBC-Konfiguration, Azure-Ressourcenkonfiguration oder bestimmten Datenquellen. Beispiel:
| Quellplattform | Reference |
|---|---|
| Microsoft SQL Server | Von SQL Server verwendete Ports |
| Hortonworks HDP | Verwalten von HDFS |
| Cloudera CDH | Von CDH-Komponenten verwendete Ports |
Welche Ports werden für die PolyBase-Erweiterungsgruppe verwendet?
Standardmäßig verbindet sich der PolyBase-Datenbewegungsdienst mit dem Hauptknoten einer Scale-Out-Gruppe über einen TCP-Portbereich von 16450 bis 16460 (typischerweise 16450-1645) sowie über Port 17001. PolyBase nutzt diese Ports nur, wenn du eine Scale-out-Gruppe konfigurierst, also lass sie über Server-Firewalls laufen. SQL Server Setup erstellt automatisch eine lokale Firewall-Regel, die diese Ports erlaubt, wenn du die Funktion installierst. Weitere Informationen finden Sie unter Konfigurieren von PolyBase-Erweiterungsgruppen unter Windows.
Note
SQL Server PolyBase-Scale-Out-Gruppen wurden in SQL Server 2022 (16.x) entfernt.