Bereitstellen von Apache Superset™
Hinweis
Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.
Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.
Wichtig
Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.
Visualisierung ist unerlässlich, um Daten effektiv zu untersuchen, zu präsentieren und zu teilen. Apache Superset ermöglicht es Ihnen, in einer flexiblen Webbenutzeroberfläche Abfragen auszuführen, Daten zu visualisieren und Dashboards für Ihre Daten zu erstellen.
In diesem Artikel wird beschrieben, wie Sie eine Instanz der Apache Superset-Benutzeroberfläche in Azure bereitstellen und mit einem Trino-Cluster mit HDInsight on AKS verbinden, um Daten abzufragen und Dashboards zu erstellen.
Zusammenfassung der Schritte, die in diesem Artikel behandelt werden:
- Voraussetzungen
- Erstellen eines Kubernetes-Clusters für Apache Superset
- Bereitstellen von Apache Superset
Voraussetzungen
Verwenden Sie bei Verwendung von Windows Ubuntu unter WSL2, um diese Anweisungen in einer Linux-Bash-Shell in Windows auszuführen. Andernfalls müssen Sie die Befehle ändern, damit sie in Windows funktionieren.
Erstellen eines Trino-Clusters und Zuweisen einer verwalteten Identität
Falls noch nicht geschehen, erstellen Sie einen Trino-Cluster mit HDInsight on AKS.
Apache Superset benötigt eine verwaltete Identität (MSI), um Trino aufzurufen. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität, oder wählen Sie eine vorhandene aus.
Ändern Sie Ihre Trino-Clusterkonfiguration, um der in Schritt 2 erstellten verwalteten Identität das Ausführen von Abfragen zu erlauben. Informationen zum Verwalten des Zugriffs finden Sie hier.
Installieren lokaler Tools
Richten Sie die Azure-Befehlszeilenschnittstelle (Command Line Interface, CLI) ein.
a. Installieren Sie die Azure-Befehlszeilenschnittstelle.
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
Installieren Sie Kubernetes.
Installieren Sie Helm.
Erstellen eines Kubernetes-Clusters für Apache Superset
In diesem Schritt erstellen Sie 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 Superset sich mit dieser Identität beim Trino-Cluster authentifizieren kann.
Erstellen Sie in Bash die folgenden Variablen 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=
Wählen Sie das Abonnement aus, in dem Sie Superset installieren möchten.
az account set --subscription $SUBSCRIPTION
Aktivieren Sie das Feature „Podidentität“ in Ihrem aktuellen Abonnement.
az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService az provider register -n Microsoft.ContainerService
Erstellen Sie einen AKS-Cluster, um Superset bereitzustellen.
# 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
Die einfachste Möglichkeit, um Superset die sichere Kommunikation mit dem Trino-Cluster zu ermöglichen, besteht darin, Superset für die Verwendung der verwalteten Azure-Identität einzurichten. Durch diesen Schritt verwendet Ihr Cluster die Identität, die Sie ihm zugewiesen haben, ohne dass Geheimnisse manuell bereitgestellt oder durchlaufen werden.
Sie müssen eine Datei „values.yaml“ für die Superset-Bereitstellung mit Helm erstellen. Sehen Sie hierzu den Beispielcode an.
Optionaler: Verwenden Sie Microsoft Azure Postgres anstelle der im Kubernetes-Cluster bereitgestellten Postgres-Instanz.
Erstellen Sie eine Instanz von Azure Database for PostgreSQL, um eine einfachere Wartung sowie Sicherungen zu ermöglichen und die Zuverlässigkeit zu erhöhen.
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
Fügen Sie der Datei „values.yaml“ bei Bedarf weitere Abschnitte hinzu. Die Superset-Dokumentation empfiehlt, das Standardkennwort zu ändern.
Stellen Sie Superset mithilfe von Helm bereit.
# 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
Stellen Sie eine Verbindung mit Superset her, und erstellen Sie eine Verbindung.
Hinweis
Sie sollten für jeden Trino-Katalog, den Sie verwenden möchten, eine separate Verbindung erstellen.
Stellen Sie mithilfe der Portweiterleitung eine Verbindung mit Superset her.
kubectl port-forward service/superset 8088:8088 --namespace default
Öffnen Sie einen Webbrowser, und navigieren Sie zu http://localhost:8088/.. Wenn Sie das Administratorkennwort nicht geändert haben, melden Sie sich mit dem Benutzernamen „admin“ und dem Kennwort „admin“ an.
Klicken Sie auf der rechten Seite auf das Pluszeichen (+), und wählen Sie im angezeigten Menü „Connect database“ aus.
Wählen Sie Trino aus.
Geben Sie den SQLAlchemy-URI Ihres Trino-Clusters ein.
Sie müssen drei Teile dieser Verbindungszeichenfolge ändern:
Eigenschaft Beispiel BESCHREIBUNG user trino@ Der Name vor dem @-Symbol ist der Benutzername, der für die Verbindung mit Trino verwendet wird. hostname mytrinocluster.00000000000000000000000000
.eastus.hdinsightaks.netDer Hostname Ihres Trino-Clusters.
Sie finden diese Informationen im Azure-Portal auf der Seite „Übersicht“ Ihres Clusters.Katalog /tpch Nach dem Schrägstrich steht der Name des Standardkatalogs.
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
Wählen Sie die Registerkarte „Advanced“ aus, und geben Sie unter „Additional Security“ die folgende Konfiguration ein. Ersetzen Sie den Wert von „client_id“ durch die GUID-Client-ID für Ihre verwaltete Identität (diesen Wert finden Sie im Azure-Portal auf der Seite mit der Ressourcenübersicht Ihrer verwalteten Identität).
{ "auth_method": "azure_msi", "auth_params": { "scope": "https://clusteraccess.hdinsightaks.net/.default", "client_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }
Wählen Sie „Connect“ aus.
Jetzt können Sie Datasets und Diagramme erstellen.
Problembehandlung
Vergewissern Sie sich, dass Ihr Trino-Cluster so konfiguriert wurde, dass die benutzerseitig zugewiesene verwaltete Identität des Superset-Clusters eine Verbindung herstellen kann. Sie können diesen Wert im JSON-Ressourcencode Ihres Trino-Clusters überprüfen (authorizationProfile/userIds). 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 vorhanden sind.
- Stellen Sie sicher, dass der Abschnitt „Secure Extra“ ausgefüllt ist.
- Stellen Sie sicher, dass Ihre URL korrekt ist.
- Testen Sie mit dem
tpch
-Katalog, ob die Verbindung funktioniert, bevor Sie Ihren eigenen Katalog verwenden.
Nächste Schritte
Um Superset im Internet verfügbar zu machen und die Benutzeranmeldung mit Microsoft Entra ID zuzulassen, müssen Sie die folgenden allgemeinen Schritte ausführen. Für diese Schritte sind mindestens Grundkenntnisse in Kubernetes erforderlich.