Condividi tramite


Distribuire Apache Superset™

Importante

Azure HDInsight su AKS è stato ritirato il 31 gennaio 2025. Scopri di più tramite questo annuncio.

È necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare la chiusura brusca dei carichi di lavoro.

Importante

Questa funzionalità è attualmente in anteprima. Le condizioni supplementari per l'utilizzo per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure in versione beta, in anteprima o altrimenti non ancora rilasciate nella disponibilità generale. Per informazioni su questa anteprima specifica, vedere informazioni sull'anteprima di Azure HDInsight su AKS. Per domande o suggerimenti sulle funzionalità, si prega di inviare una richiesta su AskHDInsight con i dettagli e seguirci per altri aggiornamenti sulla Community di Azure HDInsight.

La visualizzazione è essenziale per esplorare, presentare e condividere i dati in modo efficace. Apache Superset consente di eseguire query, visualizzare e compilare dashboard sui dati in un'interfaccia utente Web flessibile.

Questo articolo descrive come distribuire un'istanza dell'interfaccia utente di Apache Superset in Azure e connetterla al cluster Trino con HDInsight nel servizio Azure Kubernetes per eseguire query sui dati e creare dashboard.

Riepilogo dei passaggi illustrati in questo articolo:

  1. Prerequisiti.
  2. Creare un cluster Kubernetes per Apache Superset.
  3. Distribuire Apache Superset.

Prerequisiti

Se si usa Windows, utilizzare Ubuntu su WSL2 per eseguire queste istruzioni in un ambiente Linux su Windows con shell bash. In caso contrario, è necessario modificare i comandi per funzionare in Windows.

Creare un cluster Trino e assegnare un'identità gestita

  1. Se non l'hai già fatto, crea un cluster Trino con HDInsight su AKS.

  2. Affinché Apache Superset chiami Trino, deve avere un'identità gestita (MSI). Creare o selezionare un'identità gestita esistente assegnata dall'utente .

  3. Modificare la configurazione del cluster Trino per consentire all'identità gestita creata nel passaggio 2 di eseguire query. Informazioni su come gestire l'accesso.

Installare gli strumenti locali

  1. Configurare Azure CLI (interfaccia a riga di comando).

    un. Installare 'interfaccia della riga di comando di Azure.

    b. Accedi alla CLI di Azure: az login.

    c. Installare l'estensione di anteprima dell'interfaccia della riga di comando di Azure.

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

  3. Installare Helm.

Creare il cluster Kubernetes per Apache Superset

Questo passaggio crea il cluster del servizio Azure Kubernetes in cui è possibile installare Apache Superset. È necessario collegare l'identità gestita che hai associato al cluster per consentire a Superset di autenticarsi con il cluster Trino usando tale identità.

  1. Creare le variabili seguenti in bash per l'installazione di 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. Selezionare la sottoscrizione in cui si intende installare Superset.

    az account set --subscription $SUBSCRIPTION
    
  3. Abilitare la funzionalità di identità pod nella sottoscrizione corrente.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Creare un cluster AKS per distribuire 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
    

Distribuire Apache Superset

  1. Per consentire a Superset di comunicare con il cluster Trino in modo sicuro, il modo più semplice consiste nel configurare Superset per usare l'identità gestita di Azure. Il passaggio significa che il cluster utilizza l'identità assegnata senza necessità di distribuzione manuale o rotazione dei segreti.

    Devi creare un file values.yaml per la distribuzione di Helm Superset. Fare riferimento al codice di esempio .

    facoltativo: usare Microsoft Azure Postgres anziché usare Postgres distribuito all'interno del cluster Kubernetes.

    Creare un'istanza di "Database di Azure per PostgreSQL" per semplificare la manutenzione, consentire i backup e garantire una maggiore affidabilità.

    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. Aggiungere altre sezioni del file values.yaml, se necessario. documentazione di Superset consiglia di modificare la password predefinita.

  3. Distribuire Superset usando 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. Connettersi a Superset e creare la connessione.

    Nota

    È consigliabile creare connessioni separate per ogni catalogo Trino che si vuole usare.

    1. Connettersi a Superset usando il port forwarding.

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

    2. Aprire un Web browser e passare a http://localhost:8088/. Se la password dell'amministratore non è stata modificata, accedere usando nome utente: amministratore, password: amministratore.

    3. Selezionare "Connect database" (Connetti database) dal menu più "+" sul lato destro.

      Screenshot che mostra la connessione al database.

    4. Selezionare Trino.

    5. Immettere l'URI di Sql Alchemy del cluster Trino.

      È necessario modificare tre parti di questa stringa di connessione:

      Proprietà Esempio Descrizione
      utente trino@ Il nome prima del simbolo @ è il nome utente usato per la connessione a Trino.
      hostname mytrinocluster.0000000000000000000000000000
      .eastus.hdinsightaks.net
      Nome host del cluster Trino.
      È possibile ottenere queste informazioni dalla pagina "Panoramica" del cluster nel portale di Azure.
      catalogo /tpch Dopo la barra è il nome predefinito del catalogo.
      È necessario modificare questo catalogo nel catalogo con i dati da visualizzare.

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

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

      Screenshot che mostra la stringa di connessione.

    6. Selezionare la scheda "Avanzate" e immettere la configurazione seguente in "Sicurezza aggiuntiva". Sostituire il valore client_id con l'ID client GUID per l'identità gestita. Questo valore è disponibile nella pagina di panoramica delle risorse di identità gestite nel portale di Azure.

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

      Screenshot che mostra l'aggiunta di MSI.

    7. Selezionare "Connetti".

A questo momento, è possibile creare set di dati e grafici.

Risoluzione dei problemi

  • Verificare che il cluster Trino sia stato configurato per consentire la connessione all'identità gestita assegnata dall'utente del cluster Superset. È possibile verificare questo valore esaminando il codice JSON della risorsa del cluster Trino (authorizationProfile/userIds). Assicurarsi di usare l'ID oggetto dell'identità, non l'ID client.

  • Assicurarsi che non ci siano errori nella configurazione della connessione.

    1. Assicurati che il campo "extra sicuro" sia compilato.
    2. L'URL è corretto.
    3. Usare il catalogo tpch per eseguire un test e verificare che la connessione funzioni prima di usare il proprio catalogo.

Passaggi successivi

Per esporre Superset a Internet, consentire l'accesso utente usando Microsoft Entra ID è necessario eseguire i passaggi generali seguenti. Questi passaggi richiedono un'esperienza intermedia o superiore con Kubernetes.