Partage via


Déployer Apache Superset™

Important

Azure HDInsight sur AKS a été mis hors service le 31 janvier 2025. En savoir plus avec cette annonce.

Vous devez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent pour éviter l’arrêt brusque de vos charges de travail.

Important

Cette fonctionnalité est actuellement en préversion. Les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure incluent des termes juridiques supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations sur Azure HDInsight sur AKS en préversion. Pour des questions ou des suggestions de fonctionnalités, envoyez une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur Communauté Azure HDInsight.

La visualisation est essentielle pour explorer, présenter et partager efficacement des données. Apache Superset vous permet d’exécuter des requêtes, de visualiser et de créer des tableaux de bord sur vos données dans une interface utilisateur web flexible.

Cet article explique comment déployer une instance d’interface utilisateur Apache Superset dans Azure et la connecter à un cluster Trino avec HDInsight sur AKS pour interroger des données et créer des tableaux de bord.

Résumé des étapes décrites dans cet article :

  1. Prérequis.
  2. Créer un cluster Kubernetes pour Apache Superset.
  3. Déployer Apache Superset.

Conditions préalables

Si vous utilisez Windows, utilisez Ubuntu sur WSL2 pour exécuter ces instructions dans un environnement Linux bash shell dans Windows. Sinon, vous devez modifier les commandes pour fonctionner dans Windows.

Créer un cluster Trino et attribuer une identité managée

  1. Si ce n’est pas encore fait, créez un cluster Trino avec HDInsight sur AKS.

  2. Pour qu’Apache Superset appelle Trino, il doit avoir une identité managée (MSI). Créez ou choisissez une identité gérée assignée par l'utilisateur existante .

  3. Modifiez votre configuration de cluster Trino pour permettre à l’identité managée créée à l’étape 2 d’exécuter des requêtes. Découvrez comment gérer lesd’accès.

Installer les outils locaux

  1. Configurer Azure CLI.

    un. Installez Azure CLI.

    b. Connectez-vous à Azure CLI : az login.

    c. Installez l’extension Azure CLI en préversion.

    # 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. Installez Kubernetes.

  3. Installez Helm.

Créer un cluster Kubernetes pour Apache Superset

Cette étape crée le cluster Azure Kubernetes Service (AKS) dans lequel vous pouvez installer Apache Superset. Vous devez lier l’identité managée que vous avez associée au cluster pour permettre au Superset de s’authentifier auprès du cluster Trino avec cette identité.

  1. Créez les variables suivantes dans bash pour votre installation de Superset.

    # ----- 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. Sélectionnez l’abonnement dans lequel vous allez installer Superset.

    az account set --subscription $SUBSCRIPTION
    
  3. Activez la fonctionnalité d’identité de pod sur votre abonnement actuel.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Créez un cluster AKS pour déployer 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
    

Déployer Apache Superset

  1. Pour permettre à Superset de communiquer en toute sécurité avec le cluster Trino, le moyen le plus simple consiste à configurer Superset pour utiliser l’identité managée Azure. Cette étape signifie que votre cluster utilise l’identité que vous lui avez affectée sans déploiement manuel ni cycle de secrets.

    Vous devez créer un fichier values.yaml pour le déploiement De Superset Helm. Reportez-vous à l'exemple de code .

    facultatif : utilisez Microsoft Azure Postgres au lieu d’utiliser Postgres déployé à l’intérieur du cluster Kubernetes.

    Créez une instance « Azure Database pour PostgreSQL » pour faciliter la maintenance, autoriser les sauvegardes et fournir une meilleure fiabilité.

    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. Ajoutez d’autres sections du fichier values.yaml si nécessaire. Documentation Superset recommande de modifier le mot de passe par défaut.

  3. Déployez Superset à l’aide de 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. Connectez-vous à Superset et créez une connexion.

    Note

    Vous devez créer des connexions distinctes pour chaque catalogue Trino que vous souhaitez utiliser.

    1. Connectez-vous à Superset à l’aide du transfert de port.

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

    2. Ouvrez un navigateur web et accédez à http://localhost:8088/. Si vous n’avez pas modifié le mot de passe administrateur, connectez-vous à l’aide du nom d’utilisateur : administrateur, mot de passe : administrateur.

    3. Sélectionnez « connecter la base de données » dans le menu plus « + » sur le côté droit.

      capture d’écran montrant la base de données de connexion.

    4. Sélectionnez Trino.

    5. Entrez l’URI SQL Alchemy de votre cluster Trino.

      Vous devez modifier trois parties de cette chaîne de connexion :

      Propriété Exemple Description
      utilisateur trino@ Le nom avant le symbole @ est le nom d’utilisateur utilisé pour la connexion à Trino.
      nom d’hôte mytrinocluster.00000000000000000000000000
      .eastus.hdinsightaks.net
      Nom d’hôte de votre cluster Trino.
      Vous pouvez obtenir ces informations à partir de la page « Vue d’ensemble » de votre cluster dans le portail Azure.
      catalogue /tpch Après la barre oblique se trouve le nom du catalogue par défaut.
      Vous devez remplacer ce catalogue par le catalogue contenant les données que vous souhaitez visualiser.

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

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

      Capture d’écran montrant la chaîne de connexion.

    6. Sélectionnez l’onglet « Avancé » et entrez la configuration suivante dans « Sécurité supplémentaire ». Remplacez la valeur client_id par l’ID client GUID de votre identité managée (cette valeur est disponible dans la page vue d’ensemble de votre ressource d’identité managée dans le portail Azure).

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

      capture d’écran montrant l’ajout de MSI.

    7. Sélectionnez « Se connecter ».

Vous êtes maintenant prêt à créer des jeux de données et des graphiques.

Dépannage

  • Vérifiez que votre cluster Trino a été configuré pour permettre à l’identité managée affectée par l’utilisateur du cluster Superset de se connecter. Vous pouvez vérifier cette valeur en examinant le JSON de ressource de votre cluster Trino (authorizationProfile/userIds). Vérifiez que vous utilisez l’ID d’objet de l’identité, et non l’ID client.

  • Vérifiez qu’il n’y a aucune erreur dans la configuration de connexion.

    1. Assurez-vous que le « formulaire sécurisé supplémentaire » est rempli,
    2. Votre URL est correcte.
    3. Utilisez le catalogue tpch pour vérifier que votre connexion fonctionne avant d’utiliser votre propre catalogue.

Étapes suivantes

Pour exposer Superset à Internet, vous devez effectuer les étapes générales suivantes afin d’autoriser la connexion utilisateur via Microsoft Entra ID. Ces étapes nécessitent une expérience intermédiaire ou supérieure avec Kubernetes.