Konfigurieren von PolyBase für den Zugriff auf externe Daten in SQL Server.
Gilt für: SQL Server
In diesem Artikel wird erläutert, wie Sie PolyBase in einer SQL Server-Instanz verwenden, um externe Daten in einer anderen SQL Server-Instanz abzufragen.
Voraussetzungen
Wenn Sie PolyBase nicht installiert haben, finden Sie weitere Informationen unter PolyBase installation (Installieren von PolyBase). Die Voraussetzungen für die Installation werden im entsprechenden Artikel erläutert. Stellen Sie nach der Installation auch sicher, dass Sie PolyBase aktivieren.
Die externe SQL Server-Datenquelle verwendet die SQL-Authentifizierung.
Bevor datenbankweit gültige Anmeldeinformationen erstellt werden können, muss ein Hauptschlüssel erstellt werden.
Konfigurieren einer externen SQL Server-Datenquelle
Um die Daten einer SQL Server-Datenquelle abzufragen, müssen Sie externe Tabellen zum Referenzieren der externen Daten erstellen. Dieser Abschnitt enthält Beispielcode zum Erstellen dieser externen Tabellen.
Damit eine optimale Abfrageleistung erzielt werden kann, sollten Sie Statistiken für externe Tabellenspalten erstellen, insbesondere für die Spalten, die für Joins, Filter und Aggregate verwendet werden.
In diesem Abschnitt werden die folgenden Transact-SQL-Befehle verwendet:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- ERSTELLEN EINER EXTERNEN DATENQUELLE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Erstellen Sie datenbankweit gültige Anmeldeinformationen für den Zugriff auf die SQL Server-Quelle. Das folgende Beispiel erstellt eine Anmeldeinformation für die externe Datenquelle mit
IDENTITY = 'username'
undSECRET = 'password'
.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
Wichtig
Der SQL ODBC-Connector für PolyBase unterstützt nur die einfache Authentifizierung, nicht die Kerberos-Authentifizierung.
Erstellen Sie mit CREATE EXTERNAL DATA SOURCE eine externe Datenquelle. Im Beispiel unten geschieht Folgendes:
- wird eine externe Datenquelle mit dem Namen
SQLServerInstance
erstellt. - werden externe Datenquellen (
LOCATION = '<vendor>://<server>[:<port>]'
) identifiziert. Im Beispiel verweist sie auf eine SQL Server-Standardinstanz. - wird identifiziert, ob die Berechnung zur Quelle (
PUSHDOWN
) gepusht werden soll.PUSHDOWN
ist standardmäßigON
.
Schließlich werden im Beispiel die zuvor erstellten Anmeldeinformationen verwendet.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- wird eine externe Datenquelle mit dem Namen
Erstellen Sie die externe Tabelle mit CREATE EXTERNAL TABLE. Die Anweisung erfordert eine Sortierung, und der Speicherort erfordert die dreiteilte Notation (
<database>.<schema>.<table>
).CREATE EXTERNAL TABLE DatabasesExternal ( name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS) WITH (LOCATION = 'master.sys.databases', DATA_SOURCE = SQLServerInstance);
Optional erstellen Sie Statistiken für eine externe Tabelle.
Damit eine optimale Abfrageleistung erzielt werden kann, sollten Sie Statistiken für externe Tabellenspalten erstellen, insbesondere für die Spalten, die für Joins, Filter und Aggregate verwendet werden.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Wichtig
Sobald Sie eine externe Datenquelle erstellt haben, können Sie über den Befehl CREATE EXTERNAL TABLE eine abfragbare Tabelle für diese Quelle erstellen.
Mit dem SQL Server-Connector kompatible Typen
Sie können auch den SQL Server-Connector (sqlserver://) verwenden, um auf Azure SQL-Datenbank zuzugreifen. Führen Sie dafür die zuvor erläuterten Schritte aus. Stellen Sie sicher, dass die datenbankbezogenen Anmeldeinformationen, die Serveradresse, der Port und die Standortzeichenfolge mit denen der Azure SQL-Datenbank-Datenquelle übereinstimmen, mit der Sie eine Verbindung herstellen möchten.
Nächste Schritte
Weitere Lernprogramme zum Erstellen externer Datenquellen und externer Tabellen für eine Vielzahl von Datenquellen finden Sie unter PolyBase Transact-SQL-Referenz.
Weitere Informationen zu PolyBase finden Sie in der Übersicht zu SQL Server-PolyBase.