Externe Datenquellen für die Verwendung mit PolyBase konfigurieren

<meta <="" content="Auf dieser Seite wird beschrieben, wie Sie externe Datenquellen für die Verwendung mit PolyBase und Ihren Cloud SQL for SQL Server-Instanzen konfigurieren." name="description" />

Auf dieser Seite wird beschrieben, wie Sie externe Datenquellen für die Verwendung mit PolyBase und Ihren Cloud SQL for SQL Server-Instanzen konfigurieren und verwalten.

Zugriff auf externe Objekte verwalten

Cloud SQL unterstützt nur Vorgänge zum Aktivieren und Deaktivieren von PolyBase. Nutzer müssen SQL Server-Entitäten manuell mit T-SQL-Anweisungen verwalten.

Bevor Sie Ihre SQL Server-Entitäten manuell verwalten, lesen Sie die folgenden Microsoft-Ressourcen:

Externe Datenquelle erstellen

In den folgenden Schritten wird beschrieben, wie Sie eine externe Datenquelle für Ihre Cloud SQL for SQL Server-Instanz erstellen.

In SQL Server wird eine externe Datenquelle als Ressource mit Verbindungsinformationen wie Servername, Datenbank name und Verbindungsstring definiert.

In SQL Server werden externe Tabellen als Metadatenobjekte in SQL Server definiert, die auf die Daten in den externen Datenquellen verweisen. Sie definieren das Schema der externen Daten, so wie sie in SQL Server dargestellt werden.

Für diese Prozedur muss eine datenbankbezogene Anmeldeinformation (Database-Scoped Credential, DSC) für Ihre externe Datenquelle erstellt werden.

In DSCs werden die Authentifizierungsinformationen gespeichert, die für die Verbindung zu den externen Datenquellen erforderlich sind. Diese Anmeldeinformationen werden mit dem Datenbank-Masterschlüssel (Database Master Key, DMK) verschlüsselt.

Der DMK dient als Stamm der Verschlüsselungshierarchie in einer Datenbank und schützt Geheimnisse in datenbankbezogenen Anmeldeinformationen. Dieser symmetrische Schlüssel wird mit dem Dienst-Masterschlüssel (Service Master Key, SMK) und einem vom Nutzer angegebenen Passwort verschlüsselt. Der DMK wird nicht automatisch erstellt und muss vom Nutzer explizit mit T-SQL verwaltet werden.

Der SMK dient als Stamm der Verschlüsselungshierarchie für eine bestimmte Instanz von SQL Server. Dieser symmetrische Schlüssel wird beim ersten Start automatisch von SQL Server generiert und zum Schutz anderer Sicherheitsobjekte wie DMKs und Anmeldepasswörter verwendet.

Oracle

Führen Sie die folgenden Schritte in SQL Server aus.

  1. Erstellen Sie eine datenbankbezogene Anmeldeinformation (DSC) für Oracle.

    1. Wenn noch keine vorhanden ist, wechseln Sie zu einer Nutzerdatenbank, um einen Masterschlüssel zu erstellen:

      USE USER_DB;
      CREATE MASTER KEY ENCRYPTION BY PASSWORD='MK_PASSWORD';
      

      Ersetzen Sie Folgendes:

      • USER_DB: die Nutzerdatenbank, die Sie zum Erstellen des Masterschlüssels verwenden möchten. Beispiel: polybasedb.
      • MK_PASSWORD: das Passwort für den Masterschlüssel, den Sie verwenden möchten. Speichern Sie das Passwort für den Masterschlüssel zur späteren Verwendung.
    2. Erstellen Sie eine datenbankbezogene Anmeldeinformation für die Oracle-Datenquelle.

      CREATE DATABASE SCOPED CREDENTIAL DB_CREDENTIAL_NAME WITH IDENTITY = 'EXTERNAL_DATABASE_USERNAME', SECRET = 'EXTERNAL_DATABASE_PASSWORD';
      

      Ersetzen Sie Folgendes:

      • DB_CREDENTIAL_NAME: der Name der Anmeldeinformation, den Sie für die externe Datenbank verwenden möchten.
      • EXTERNAL_DATABASE_USERNAME: der Nutzername, den Sie für den Zugriff auf die externe Datenbank verwenden möchten.
      • EXTERNAL_DATABASE_PASSWORD: das Passwort für die externe Datenbank. Anmeldedaten für externe Datenquellen müssen bei der Rotation aktualisiert werden und müssen manuell von Ihnen verwaltet werden.
  2. Erstellen Sie eine externe Datenquelle für Oracle.

    CREATE EXTERNAL DATA SOURCE DATA_SOURCE_NAME
    WITH (
        LOCATION = 'oracle://SERVER_IP:PORT',
        PUSHDOWN = PUSHDOWN,
        CREDENTIAL = DB_CREDENTIAL_NAME
    );
    

    Ersetzen Sie Folgendes:

    • DATA_SOURCE_NAME: der Name, den Sie für die externe Datenbank verwenden möchten.
    • SERVER_IP: die IP-Adresse des Servers oder der Hostname.
    • PORT: der Port, den Sie verwenden möchten.
    • PUSHDOWN: erforderlich. Pushdown ist eine Funktion, die in SQL Server angeboten wird und konfiguriert werden muss. Legen Sie den Wert je nach Anwendungsfall auf ON oder OFF fest.
    • DB_CREDENTIAL_NAME: die Anmeldeinformation, die Sie gerade erstellt haben.
  3. Erstellen Sie eine externe Tabelle.

    Definieren Sie das Schema und die Struktur der externen Daten:

    • Erstellen Sie die Definition der externen Tabelle. Das Schema muss mit der Remotetabelle übereinstimmen.
    • Definieren Sie Spalten mit geeigneten SQL Server-Datentypen und -Sortierungen.
    • Der Speicherort ist der Pfad der Remotetabelle.
    CREATE EXTERNAL TABLE EXTERNAL_TABLE_NAME(
        COLUMN_NAME_1 DATA_TYPE_1 COLLATE COLLATION_1,
        COLUMN_NAME_2 DATA_TYPE_2 COLLATE COLLATION_2,
        ...
    )
    WITH(
        LOCATION = 'REMOTE_DATABASE.REMOTE_USERNAME.REMOTE_TABLE_NAME',
        DATA_SOURCE = DB_DATA_SOURCE_NAME
    );
    

    Ersetzen Sie Folgendes:

    • EXTERNAL_TABLE_NAME: der Name der externen Tabelle, die Sie erstellen möchten.
    • COLUMN_NAME_1: der Name der ersten Spalte der Tabelle.
    • DATA_TYPE_1: der Datentyp der ersten Spalte.
    • COLLATION_1: die Sortierung, die Sie für die erste Spalte verwenden möchten.
    • COLUMN_NAME_2: der Name der zweiten Spalte der Tabelle.
    • DATA_TYPE_2: der Datentyp der zweiten Spalte.
    • COLLATION_2: die Sortierung, die Sie für die zweite Spalte verwenden möchten.
    • REMOTE_DATABASE: der Name der Remotedatenbank.
    • REMOTE_USERNAME: der Nutzername des Remote-Nutzers.
    • REMOTE_TABLE_NAME: der Name der Remotetabelle.
    • DB_DATA_SOURCE_NAME: der Name der externen Datenquelle.
  4. Fragen Sie die von Ihnen erstellte externe Oracle-Tabelle ab.

    SELECT TOP 10 * FROM EXTERNAL_TABLE_NAME;
    

    Ersetzen Sie Folgendes:

    • EXTERNAL_TABLE_NAME: der Name der externen Tabelle, die Sie abfragen möchten.

Cloud Storage

Führen Sie die folgenden Schritte in SQL Server aus.

  1. Erstellen Sie eine datenbankbezogene Anmeldeinformation für Cloud Storage.

    1. Wenn noch keine vorhanden ist, wechseln Sie zu einer Nutzerdatenbank, um einen Masterschlüssel zu erstellen:

      USE USER_DB;
      CREATE MASTER KEY ENCRYPTION BY PASSWORD='MK_PASSWORD';
      

      Ersetzen Sie Folgendes:

      • USER_DB: die Nutzerdatenbank, die Sie zum Erstellen des Masterschlüssels verwenden möchten. Beispiel: polybasedb.
      • MK_PASSWORD: das Passwort, das Sie für den Masterschlüssel verwenden möchten. Speichern Sie das Passwort für den Masterschlüssel zur späteren Verwendung.
    2. Für Cloud Storage sind eine Zugriffsschlüssel-ID und eine geheimer Schlüssel-ID erforderlich:

      CREATE DATABASE SCOPED CREDENTIAL STORAGE_CREDENTIAL_NAME WITH IDENTITY = 'S3 Access Key', SECRET = 'ACCESS_KEY_ID:SECRET_KEY_ID';
      

      Ersetzen Sie Folgendes:

      • STORAGE_CREDENTIAL_NAME: der Name der Cloud Storage-Anmeldeinformation , die Sie verwenden möchten.
      • ACCESS_KEY_ID: die Zugriffsschlüssel-ID.
      • SECRET_KEY_ID: die geheimer Schlüssel-ID.

      Es wird nur die Basisauthentifizierung unterstützt.

  2. Erstellen Sie eine externe Datenquelle.

    CREATE EXTERNAL DATA SOURCE STORAGE_DATA_SOURCE_NAME
    WITH (
        LOCATION = 's3://storage.googleapis.com/',
        CREDENTIAL = STORAGE_CREDENTIAL_NAME
    );
    

    Ersetzen Sie Folgendes:

    • STORAGE_DATA_SOURCE_NAME: der Name der externen Datenquelle in Cloud Storage.
    • STORAGE_CREDENTIAL_NAME: der Name der Anmeldeinformation für die externe Speicherressource.
  3. Erstellen Sie eine externe Tabelle für Cloud Storage.

    Definieren Sie das Format und die Struktur der externen Daten:

    • Erstellen Sie die externe Datei. Das Schema muss mit der Dateistruktur übereinstimmen.
    • Definieren Sie Spalten mit geeigneten SQL Server-Datentypen und -Sortierungen.
    • Der Speicherort ist der Pfad in der Datenquelle.
    CREATE EXTERNAL FILE FORMAT FILE_FORMAT_NAME
    WITH (
        FORMAT_TYPE = FORMAT_TYPE,
        FORMAT_OPTIONS (
            FIELD_TERMINATOR = 'FIELD_TERMINATOR',
            STRING_DELIMITER = 'DELIMITER',
            FIRST_ROW = FIRST_ROW
        )
    );
    
    CREATE EXTERNAL TABLE FILE_EXTERNAL_TABLE_NAME (
        COLUMN_NAME_1 DATA_TYPE_1,
        COLUMN_NAME_2 DATA_TYPE_2,
        ...
    )
    WITH (
        LOCATION = 'PATH_TO_BUCKET/FILENAME',
        DATA_SOURCE = STORAGE_DATA_SOURCE_NAME,
        FILE_FORMAT = FILE_FORMAT_NAME
    );
    

    Ersetzen Sie Folgendes:

    • FILE_FORMAT_NAME: der Name des externen Dateiformats, das Sie erstellen möchten.
    • FORMAT_TYPE: der Formattyp, den Sie verwenden möchten, z. B. DELIMITEDTEXT. Eine Liste der unterstützten Werte finden Sie unter Unterstützte Dateiformate.
    • FIELD_TERMINATOR: das Feldtrennzeichen, das Sie verwenden möchten.
    • DELIMITER: das Stringtrennzeichen, das Sie verwenden möchten.
    • FIRST_ROW: die Zeile, ab der Sie lesen möchten.
    • FILE_EXTERNAL_TABLE_NAME: der Name der externen Tabelle, die Sie erstellen möchten.
    • COLUMN_NAME_1: der Name der ersten Spalte der Tabelle.
    • DATA_TYPE_1: der Datentyp der ersten Spalte.
    • COLUMN_NAME_2: der Name der zweiten Spalte der Tabelle.
    • DATA_TYPE_2: der Datentyp der zweiten Spalte.
    • PATH_TO_BUCKET: der vollständige Pfad zum Cloud Storage-Bucket.
    • FILENAME: der Dateiname im Cloud Storage-Bucket.
    • STORAGE_DATA_SOURCE_NAME: der Name der externen Datenquelle in Cloud Storage.
    • FILE_FORMAT_NAME: der Name des externen Dateiformats.
  4. Fragen Sie die von Ihnen erstellte externe Cloud Storage-Tabelle ab.

    SELECT * FROM FILE_EXTERNAL_TABLE_NAME;
    

    Ersetzen Sie Folgendes:

    • FILE_EXTERNAL_TABLE_NAME: der Name der externen Tabelle, die Sie abfragen möchten.

Datenbank-Masterschlüssel nach einer Datenbankwiederherstellung verwalten

Die datenbankbezogenen Anmeldeinformationen, die für den Zugriff auf externe Datenquellen verwendet werden, werden mit einem Datenbank-Masterschlüssel (DMK) verschlüsselt.

Der DMK wird mit dem Dienst-Masterschlüssel (SMK) der Quellinstanz und dem vom Nutzer angegebenen DMK-Passwort verschlüsselt. In der Quellinstanz öffnet SQL Server den DMK im Hintergrund mit einem SMK.

Wenn Sie eine Cloud SQL for SQL Server-Instanz wiederherstellen, wird der DMK aufgrund von Änderungen am SMK nicht automatisch in der neuen Instanz geöffnet.

Daher müssen Sie den DMK zuerst mit dem bei der Erstellung festgelegten Nutzerpasswort entschlüsseln und dann mit dem SMK der Zielinstanz neu verschlüsseln.

Weitere Informationen finden Sie in den folgenden Microsoft-Ressourcen:

Logs

Die folgenden PolyBase-Logs sind in Logs Explorer verfügbar:

  • Polybase_Dms_errors.log
  • Polybase_Dms_movement.log
  • Polybase_DWEngine_errors.log
  • Polybase_DWEngine_movement.log
  • Polybase_DWEngine_server.log

Weitere Informationen finden Sie in der Microsoft-Dokumentation zur Fehlerbehebung bei PolyBase.

Nächste Schritte