Freigeben über


Bereitstellen von Apache Superset™

Wichtig

Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mehr mit dieser Ankündigung.

Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.

Wichtig

Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Funktionsvorschläge senden Sie bitte eine Anfrage mit den Details an AskHDInsight und folgen Sie uns, um weitere Updates zur Azure HDInsight Communityzu erhalten.

Die Visualisierung ist unerlässlich, um Daten effektiv zu untersuchen, zu präsentieren und zu teilen. Apache Superset ermöglicht es Ihnen, Abfragen auszuführen, Zu visualisieren und Dashboards über Ihre Daten in einer flexiblen Web-UI zu erstellen.

In diesem Artikel wird beschrieben, wie Sie eine Apache Superset-UI-Instanz in Azure bereitstellen und mit dem Trino-Cluster mit HDInsight auf AKS verbinden, um Daten abzufragen und Dashboards zu erstellen.

Zusammenfassung der in diesem Artikel behandelten Schritte:

  1. Voraussetzungen.
  2. Kubernetes-Cluster für Apache Superseterstellen.
  3. Apache Supersetbereitstellen.

Voraussetzungen

Wenn Sie Windows verwenden, verwenden Sie Ubuntu auf WSL2-, um diese Anweisungen in einer Bash-Shell-Linux-Umgebung in Windows auszuführen. Andernfalls müssen Sie Befehle ändern, damit sie in Windows funktionieren.

Erstellen eines Trino-Clusters und Zuweisen einer verwalteten Identität

  1. Sollte dies noch nicht geschehen sein, erstellen Sie einen Trino-Cluster mit HDInsight auf AKS.

  2. Damit Apache Superset Trino aufruft, muss er über eine verwaltete Identität (MSI) verfügen. Erstellen oder auswählen einer bestehenden benutzerzugewiesenen verwalteten Identität.

  3. Ändern Sie Ihre Trino-Clusterkonfiguration so, dass die in Schritt 2 erstellte verwaltete Identität Abfragen ausführen kann. Erfahren Sie, wie Sie den Zugriffverwalten.

Installieren lokaler Tools

  1. Einrichten der Azure CLI.

    ein. Installieren Sie Azure CLI.

    b. Melden Sie sich bei der Azure CLI an: az login.

    c. Installieren Sie die Azure CLI-Vorschauerweiterung.

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the extension to make sure you've the latest version installed
    az extension update --name aks-preview
    
  2. Installieren Sie Kubernetes.

  3. Installieren Sie Helm.

Erstellen eines Kubernetes-Clusters für Apache Superset

Dieser Schritt erstellt den Azure Kubernetes Service (AKS)-Cluster, in dem Sie Apache Superset installieren können. Sie müssen die verwaltete Identität, die Sie dem Cluster zugeordnet haben, binden, damit das Superset sich mit diesem Trino-Cluster mit dieser Identität authentifizieren kann.

  1. Erstellen Sie die folgenden Variablen in bash für Ihre Superset-Installation.

    # ----- Parameters ------
    
    # The subscription ID where you want to install Superset
    SUBSCRIPTION=
    # Superset cluster name (visible only to you)
    CLUSTER_NAME=trinosuperset 
    # Resource group containing the Azure Kubernetes service
    RESOURCE_GROUP_NAME=trinosuperset 
    # The region to deploy Superset (ideally same region as Trino): to list regions: az account list-locations REGION=westus3 
    # The resource path of your managed identity. To get this resource path:
    #   1. Go to the Azure Portal and find your user assigned managed identity
    #   2. Select JSON View on the top right
    #   3. Copy the Resource ID value.
    MANAGED_IDENTITY_RESOURCE=
    
  2. Wählen Sie das Abonnement aus, in dem Sie Superset installieren möchten.

    az account set --subscription $SUBSCRIPTION
    
  3. Aktivieren Sie das Feature "Pod-Identität" in Ihrem aktuellen Abonnement.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Erstellen Sie einen AKS-Cluster zum Bereitstellen von Superset.

    # Create resource group
    az group create --location $REGION --name $RESOURCE_GROUP_NAME
    
    # Create AKS cluster
    az \
    aks create \
    -g $RESOURCE_GROUP_NAME \
    -n $CLUSTER_NAME \
    --node-vm-size Standard_DS2_v2 \
    --node-count 3 \
    --enable-managed-identity \
    --assign-identity $MANAGED_IDENTITY_RESOURCE \
    --assign-kubelet-identity $MANAGED_IDENTITY_RESOURCE
    
    # Set the context of your new Kubernetes cluster
    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    

Bereitstellen von Apache Superset

  1. Damit Superset sicher mit Dem Trino-Cluster kommunizieren kann, besteht die einfachste Möglichkeit darin, Superset für die Verwendung der azure Managed Identity einzurichten. Dieser Schritt bedeutet, dass Ihr Cluster die Identität verwendet, die Sie ihm zugewiesen haben, ohne dass geheime Schlüssel manuell bereitgestellt oder durchlaufen werden.

    Sie müssen eine datei values.yaml für die Superset Helm-Bereitstellung erstellen. Siehe Beispielcode.

    Optionaler: Verwenden Sie Microsoft Azure PostgreSQL, anstatt das im Kubernetes-Cluster bereitgestellte PostgreSQL zu verwenden.

    Erstellen Sie eine Instanz "Azure Database for PostgreSQL", um eine einfachere Wartung zu ermöglichen, Sicherungen zu ermöglichen und eine bessere Zuverlässigkeit zu bieten.

    postgresql:
      enabled: false
    
    supersetNode:
      connections:
        db_host: '{{SERVER_NAME}}.postgres.database.azure.com'
        db_port: '5432'
        db_user: '{{POSTGRES_USER}}'
        db_pass: '{{POSTGRES_PASSWORD}}'
        db_name: 'postgres' # default db name for Azure Postgres
    
  2. Fügen Sie bei Bedarf weitere Abschnitte der werte.yaml hinzu. Superset-Dokumentation empfiehlt das Ändern des Standardkennworts.

  3. Implementieren Sie Superset mit Helm.

    # Verify you have the context of the right Kubernetes cluster
    kubectl cluster-info
    # Add the Superset repository
    helm repo add superset https://apache.github.io/superset
    # Deploy
    helm repo update
    helm upgrade --install --values values.yaml superset superset/superset
    
  4. Stellen Sie eine Verbindung mit Superset her, und erstellen Sie eine Verbindung.

    Anmerkung

    Sie sollten separate Verbindungen für jeden Trino-Katalog erstellen, den Sie verwenden möchten.

    1. Stellen Sie mithilfe der Portweiterleitung eine Verbindung mit Superset her.

      kubectl port-forward service/superset 8088:8088 --namespace default

    2. Öffnen Sie einen Webbrowser, und wechseln Sie zu http://localhost:8088/. Wenn Sie das Administratorkennwort nicht geändert haben, melden Sie sich mit Benutzername: Administrator, Kennwort: Administrator an.

    3. Wählen Sie im Plusmenü "+" auf der rechten Seite "Datenbank verbinden" aus.

      Screenshot, der das Verbinden mit der Datenbank zeigt.

    4. Wählen Sie Trinoaus.

    5. Geben Sie den SQL Alchemy-URI Ihres Trino-Clusters ein.

      Sie müssen drei Teile dieser Verbindungszeichenfolge ändern:

      Eigentum Beispiel Beschreibung
      Benutzer trino@ Der Name vor dem @-Symbol ist der Benutzername, der für die Verbindung mit Trino verwendet wird.
      Hostname mytrinocluster.00000000000000000000000000
      .eastus.hdinsightaks.net
      Der Hostname Ihres Trino-Clusters.
      Sie können diese Informationen über die Seite "Übersicht" Ihres Clusters im Azure-Portal abrufen.
      Katalog /tpch Nach dem Schrägstrich ist der Standardkatalogname.
      Sie müssen diesen Katalog in den Katalog ändern, der die Daten enthält, die Sie visualisieren möchten.

      trino://$USER@$TRINO_CLUSTER_HOST_NAME.hdinsightaks.net:443/$DEFAULT_CATALOG

      Beispiel: trino://trino@mytrinocluster.00000000000000000000000000.westus3.hdinsightaks.net:443/tpch

      Screenshot mit Verbindungszeichenfolge.

    6. Wählen Sie die Registerkarte "Erweitert" aus, und geben Sie die folgende Konfiguration in "Zusätzliche Sicherheit" ein. Ersetzen Sie den client_id Wert durch die GUID-Client-ID für Ihre verwaltete Identität (dieser Wert finden Sie auf der Übersichtsseite für verwaltete Identitätsressourcen im Azure-Portal).

       {
         "auth_method": "azure_msi",
         "auth_params":
         {
           "scope": "https://clusteraccess.hdinsightaks.net/.default",
           "client_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
         }
       }
      

      Screenshot mit dem Hinzufügen von MSI.

    7. Wählen Sie "Verbinden" aus.

Jetzt können Sie Datasets und Diagramme erstellen.

Fehlerbehebung

  • Vergewissern Sie sich, dass Ihr Trino-Cluster so konfiguriert wurde, dass die zugewiesene verwaltete Identität des Superset-Clusters eine Verbindung herstellen kann. Sie können diesen Wert überprüfen, indem Sie sich den Ressourcen-JSON-Code Ihres Trino-Clusters (authorizationProfile/userIds) ansehen. Stellen Sie sicher, dass Sie die Objekt-ID der Identität verwenden, nicht die Client-ID.

  • Stellen Sie sicher, dass in der Verbindungskonfiguration keine Fehler aufgetreten sind.

    1. Stellen Sie sicher, dass das "sichere Extra" ausgefüllt ist,
    2. Ihre URL ist richtig.
    3. Verwenden Sie den tpch-Katalog, um zu überprüfen, ob Ihre Verbindung funktioniert, bevor Sie Ihren eigenen Katalog verwenden.

Nächste Schritte

Um Superset im Internet verfügbar zu machen, erlauben Sie die Benutzeranmeldung mit der Microsoft Entra-ID, indem Sie die folgenden allgemeinen Schritte ausführen. Für diese Schritte ist ein mittleres oder höheres Erfahrungsniveau mit Kubernetes erforderlich.