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:

  1. 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' und SECRET = '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.

  2. 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äßig ON.

    Schließlich werden im Beispiel die zuvor erstellten Anmeldeinformationen verwendet.

    CREATE EXTERNAL DATA SOURCE SQLServerInstance
        WITH ( LOCATION = 'sqlserver://SqlServer',
        PUSHDOWN = ON,
        CREDENTIAL = SQLServerCredentials);
    
  3. 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);
    
  4. 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.