Déployer Apache Superset™
Remarque
Nous allons mettre hors service Azure HDInsight sur AKS le 31 janvier 2025. Avant le 31 janvier 2025, vous devrez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent afin d’éviter leur arrêt brutal. Les clusters restants de votre abonnement seront arrêtés et supprimés de l’hôte.
Seul le support de base est disponible jusqu’à la date de mise hors service.
Important
Cette fonctionnalité est disponible actuellement en mode Aperçu. Les Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure contiennent davantage de conditions légales qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou ne se trouvant pas encore en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez les Informations sur la préversion d’Azure HDInsight sur AKS. Pour toute question ou pour des suggestions à propos des fonctionnalités, veuillez envoyer vos requêtes et leurs détails sur AskHDInsight, et suivez-nous sur la Communauté Azure HDInsight pour plus de mises à jour.
La visualisation est essentielle pour explorer, présenter et partager efficacement des données. Apache Superset vous permet d’exécuter des requêtes et de visualiser et créer des tableaux de bord sur vos données dans une interface utilisateur web flexible.
Cet article décrit comment déployer une instance d’interface utilisateur Apache Superset dans Azure et comment la connecter au 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 :
Prérequis
Si vous utilisez Windows, utilisez Ubuntu sur WSL2 pour exécuter ces instructions dans un environnement Linux d’interpréteur de commandes Bash dans Windows. Sinon, vous devez modifier les commandes pour qu’elles fonctionnent dans Windows.
Créer un cluster Trino et attribuer une identité managée
Si ce n’est déjà fait, créez un cluster Trino avec HDInsight sur AKS.
Pour qu’Apache Superset appelle Trino, il doit avoir une identité managée (MSI). Créez ou sélectionnez une identité managée affectée par l’utilisateur existante.
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 l’accès.
Installer les outils locaux
Configurez Azure CLI.
a. 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
Installez Kubernetes.
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 à Superset de s’authentifier auprès du cluster Trino avec cette identité.
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=
Sélectionnez l’abonnement dans lequel vous allez installer Superset.
az account set --subscription $SUBSCRIPTION
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
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
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 attribué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 du 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 améliorer la 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
Ajoutez d’autres sections du fichier values.yaml si nécessaire. La documentation Superset recommande de modifier le mot de passe par défaut.
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
Connectez-vous à Superset et créez une connexion.
Remarque
Vous devez créer des connexions distinctes pour chaque catalogue Trino que vous souhaitez utiliser.
Connectez-vous à Superset à l’aide du transfert de port.
kubectl port-forward service/superset 8088:8088 --namespace default
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 : admin, mot de passe : admin.
Sélectionnez « connecter la base de données » dans le menu plus « + » sur le côté droit.
Sélectionnez Trino.
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. hostname mytrinocluster.00000000000000000000000000
.eastus.hdinsightaks.netNom 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.catalog /tpch La partie après la barre oblique correspond au 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
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 sur 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" } }
Sélectionnez « Connecter ».
Vous êtes maintenant prêt à créer des jeux de données et des graphiques.
Résolution des problèmes
Vérifiez que votre cluster Trino a été configuré pour permettre à l’identité managée attribué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). Assurez-vous que vous utilisez l’ID d’objet de l’identité, et non l’ID client.
Assurez-vous qu’il n’y a aucune erreur dans la configuration de connexion.
- Assurez-vous que « sécuriser extra » est rempli,
- Votre URL est correcte.
- 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 autoriser la connexion utilisateur à l’aide Microsoft Entra ID en effectuant les étapes générales suivantes. Ces étapes nécessitent une expérience intermédiaire ou supérieure avec Kubernetes.