Konfigurieren von PolyBase-Erweiterungsgruppen unter Windows

Gilt für:SQL Server – nur Windows Azure SQL Managed Instance

In diesem Artikel wird beschrieben, wie Sie eine PolyBase-Erweiterungsgruppe unter Windows einrichten. Mit diesem Verfahren wird ein Cluster aus SQL Server-Instanzen erstellt, der durch horizontale Skalierung für bessere Abfrageleistungen bei großen Datasets aus externen Datenquellen sorgt, wie beispielsweise Hadoop oder Azure Blob Storage.

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.

Voraussetzungen

  • Mehr als ein Computer in der gleichen Domäne.

  • Ein Domänenbenutzerkonto zum Ausführen von PolyBase-Diensten. Die Verwendung eines gruppenverwalteten Dienstkontos (gMSA) wird empfohlen. Weitere Informationen finden Sie unter Gruppenverwaltete Dienstkonten: Übersicht.

Übersicht über den Prozess

Die folgenden Schritte fassen den Prozess der Erstellung einer PolyBase-Erweiterungsgruppe zusammen. Im nächsten Abschnitt finden Sie eine ausführliche exemplarische Vorgehensweise für jeden Schritt.

  1. Installieren Sie die gleiche Version von SQL Server mit PolyBase auf N Computern.

  2. Wählen Sie eine SQL Server-Instanz als Hauptknoten aus.

  3. Fügen Sie mithilfe von sp_polybase_join_groupdie verbleibenden SQL Server-Instanzen als Serverknoten hinzu.

  4. Überwachen von Knoten in der Gruppe mithilfe von sys.dm_exec_compute_nodes (Transact-SQL).

  5. Optional. Entfernen Eines Computeknotens aus der Verwendung von sp_polybase_leave_group (Transact-SQL).

Exemplarische Vorgehensweise

Hier erfahren Sie, wie Sie eine PolyBase-Gruppe mit den folgenden Informationen einrichten:

  1. Zwei Computer in der Domäne PQTH4A Die Namen der Computer sind:

    • PQTH4A-CMP01

    • PQTH4A-CMP02

  2. Domänenkonto: PQTH4A\PolyBaseUser

Installieren von SQL Server mit PolyBase auf allen Computern

  1. Führen Sie „setup.exe“ aus.

  2. Wählen Sie auf der Seite „Funktionsauswahl“ PolyBase Query Service for External Data (PolyBase-Abfragedienst für externe Daten).

  3. Verwenden Sie das Domänenkonto „PQTH4A\PolyBaseUser“ für die SQL Server-PolyBase-Engine und den SQL Server PolyBase-Datenverschiebungsdienst auf der Konfigurationsseite des Servers.

  4. Wählen Sie auf der PolyBase-Konfigurationsseite die Option Use the SQL Server instance as part of a PolyBase scale-out group(SQL Server-Instanz als Teil einer PolyBase-Erweiterungsgruppe verwenden). Hierdurch wird die Firewall geöffnet, um eingehende Verbindungen für die PolyBase-Dienste zuzulassen. Vom SQL Server-Installations-Assistenten werden die folgenden TCP-Ports automatisch in der Windows Server-Firewall verfügbar gemacht: 1433, 16450 bis 16453 und 17001. Wenn der Kopfknoten eine benannte SQL Server-Instanz ist, müssen Sie auch manuell den SQL Server-Port zur Windows-Firewall auf dem Kopfknoten hinzufügen und auch den SQL-Browser auf dem Kopfknoten starten. Ports sollten nur in den Firewalls der Server zugelassen sein, die Teil der PolyBase-Erweiterungsgruppe sind.

  5. Nachdem das Setup abgeschlossen ist, führen Sie services.mscaus. Überprüfen Sie, ob SQL Server, die PolyBase-Engine und der PolyBase-Datenverschiebungsdienst ausgeführt werden.

    A screenshot from SQL Server Configuration Manager, showing the PolyBase services.

Auswählen einer SQL Server-Instanz als Hauptknoten

Nachdem das Setup abgeschlossen ist, können beide Computer als PolyBase-Gruppenhauptknoten fungieren. In diesem Beispiel wählen wir die "MSSQLSERVER"-Instanz auf PQTH4A-CMP01 als Kopfknoten aus.

Hinzufügen weiterer SQL Server-Instanzen als Computeknoten

  1. Stellen Sie die Verbindung mit SQL Server auf PQTH4A-CMP02 her.

  2. Führen Sie die gespeicherte Prozedur sp_polybase_leave_groupaus.

    -- Enter head node details:
    -- head node machine name, head node dms control channel port, head node sql server name  
     EXEC sp_polybase_join_group 'PQTH4A-CMP01', 16450, 'MSSQLSERVER';
    
  3. Führen Sie „services.msc“ auf den Computeknoten (PQTH4A CMP02) aus.

  4. Beenden Sie das PolyBase-Modul, und starten Sie den PolyBase-Datenbewegungsdienst neu.

Hinweis

Wenn der PolyBase Engine-Dienst im Kopfknoten neu gestartet oder angehalten wird, werden die Dienste des Data Movement Service (DMS) beendet, sobald der Kommunikationskanal zwischen DMS und PolyBase Engine Service (DW) geschlossen wird. Wird die DW-Engine mehr als zweimal neu gestartet, wechselt der DMS-Dienst für 90 Minuten in einen Ruhezustand. Während dieses Zeitraums kann kein erneuter automatischer Startversuch durchgeführt werden. Starten Sie in diesem Fall den Dienst auf allen Knoten manuell.

Optional: Entfernen eines Computeknotens

  1. Stellen Sie eine Verbindung mit dem Computeknoten SQL Server (PQTH4A-CMP02) her.

  2. Führen Sie die gespeicherte Prozedur sp_polybase_leave_groupaus.

    EXEC sp_polybase_leave_group;  
    
  3. Führen Sie „services.msc“ auf dem Computeknoten (PQTH4A CMP02) aus, der entfernt wird.

  4. Starten Sie die PolyBase-Engine. Starten Sie den SQL Server PolyBase-Datenverschiebungsdienst neu.

  5. Stellen Sie sicher, dass der Knoten entfernt wurde, indem Sie den DMV sys.dm_exec_compute_nodes auf PQTH4A-CMP01 ausführen. Jetzt fungiert PQTH4A-CMP02 als eigenständiger Hauptknoten.

Begrenzungen

  • Wenn Sie eine standardmäßige SQL Server-Instanz haben, die so konfiguriert ist, dass sie an einem anderen TCP-Port als 1433 lauscht, können Sie sie in einer PolyBase-Erweiterungsgruppe nicht als Hauptknoten verwenden. sp_polybase_join_groupWenn Sie 'MSSQLSERVER' als Instanznamen übergeben, geht SQL Server davon aus, dass Port 1433 der Listenerport ist, sodass der Data Movement-Dienst beim Start keine Verbindung mit dem Kopfknoten herstellen kann.

  • PolyBase-Skalierungsgruppen werden mit AlwaysOn-Verfügbarkeitsgruppen nicht unterstützt.