Dela via


Distribuera Apache Superset™

Viktig

Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer genom det här meddelandet.

Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.

Viktig

Den här funktionen är för närvarande i förhandsversion. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion, eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. För frågor eller funktionsförslag, vänligen skicka en begäran på AskHDInsight med detaljerna och följ oss för fler uppdateringar om Azure HDInsight Community.

Visualisering är viktigt för att effektivt utforska, presentera och dela data. Med Apache Superset kan du köra frågor, visualisera och skapa instrumentpaneler över dina data i ett flexibelt webbgränssnitt.

Den här artikeln beskriver hur du distribuerar en Apache Superset UI-instans i Azure och ansluter den till Trino-klustret med HDInsight på AKS för att fråga efter data och skapa instrumentpaneler.

Sammanfattning av stegen i den här artikeln:

  1. Förkunskapskrav.
  2. Skapa Kubernetes-kluster för Apache Superset.
  3. Distribuera Apache Superset.

Förutsättningar

Om du använder Windows använder du Ubuntu på WSL2 för att köra dessa instruktioner i en Bash Shell Linux-miljö i Windows. Annars måste du ändra kommandon så att de fungerar i Windows.

Skapa ett Trino-kluster och tilldela en hanterad identitet

  1. Om du inte redan har gjort det skapar du ett Trino-kluster med HDInsight på AKS.

  2. För att Apache Superset ska kunna anropa Trino måste den ha en hanterad identitet (MSI). Skapa eller välj en befintlig användartilldelad hanterad identitet.

  3. Ändra konfigurationen av Trino-klustret så att den hanterade identiteten som skapades i steg 2 kan köra frågor. Lär dig hur du hanterar åtkomst.

Installera lokala verktyg

  1. Konfigurera Azure CLI.

    a. Installera Azure CLI.

    b. Logga in på Azure CLI: az login.

    c. Installera förhandsversionstillägget för Azure CLI.

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

  3. Installera Helm.

Skapa kubernetes-kluster för Apache Superset

Det här steget skapar AKS-klustret (Azure Kubernetes Service) där du kan installera Apache Superset. Du måste binda den hanterade identitet som du har associerat till klustret för att Superset ska kunna autentisera sig mot Trino-klustret med den identiteten.

  1. Skapa följande variabler i bash för din 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. Välj den prenumeration där du ska installera Superset.

    az account set --subscription $SUBSCRIPTION
    
  3. Aktivera funktionen för poddidentitet i din aktuella prenumeration.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Skapa ett AKS-kluster för att distribuera 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
    

Distribuera Apache Superset

  1. Det enklaste sättet är att konfigurera Superset för att använda Azure Managed Identity för att låta Superset kommunicera med Trino-klustret på ett säkert sätt. Det här steget innebär att klustret använder den identitet som du har tilldelat det utan manuell implementering eller hantering av hemligheter.

    Du måste skapa en values.yaml-fil för Superset Helm-distributionen. Se exempelkod.

    Valfri: använd Microsoft Azure Postgres i stället för att använda Postgres som distribuerats i Kubernetes-klustret.

    Skapa en "Azure Database for PostgreSQL"-instans för att möjliggöra enklare underhåll, tillåta säkerhetskopieringar och ge bättre tillförlitlighet.

    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. Lägg till andra avsnitt i values.yaml om det behövs. Superset-dokumentation rekommenderar att du ändrar standardlösenordet.

  3. Distribuera Superset genom 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. Anslut till Superset och skapa anslutning.

    Notera

    Du bör skapa separata anslutningar för varje Trino-katalog som du vill använda.

    1. Anslut till Superset med portvidarebefordring.

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

    2. Öppna en webbläsare och gå till http://localhost:8088/. Om du inte har ändrat administratörslösenordet loggar du in med användarnamn: administratör, lösenord: administratör.

    3. Välj "anslut databas" från plusmenyn "+" till höger.

      Skärmbild som visar anslutning till databas.

    4. Välj Trino.

    5. Ange SQL Alchemy-URI:n för ditt Trino-kluster.

      Du måste ändra tre delar av den här anslutningssträngen:

      Egenskap Exempel Beskrivning
      användare trino@ Namnet före @-symbolen är användarnamnet som används för anslutning till Trino.
      värdnamn mytrinocluster.00000000000000000000000000
      .eastus.hdinsightaks.net
      Värdnamnet för ditt Trino-kluster.
      Du kan hämta den här informationen från sidan Översikt i klustret i Azure-portalen.
      katalog /tpch Efter snedstrecket är standardkatalognamnet.
      Du måste ändra den här katalogen till katalogen som innehåller de data som du vill visualisera.

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

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

      Skärmbild som visar anslutningssträng.

    6. Välj fliken Avancerat och ange följande konfiguration i "Ytterligare säkerhet". Ersätt värdet client_id med GUID-klient-ID:t för din hanterade identitet (det här värdet finns på översiktssidan för den hanterade identitetsresursen i Azure-portalen).

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

      Skärmbild som visar hur du lägger till MSI.

    7. Välj "Anslut".

Nu är du redo att skapa datauppsättningar och diagram.

Felsökning

  • Kontrollera att Trino-klustret har konfigurerats så att Superset-klustrets användartilldelade hanterade identitet kan ansluta. Du kan verifiera det här värdet genom att titta på resurs-JSON för ditt Trino-kluster (authorizationProfile/userIds). Kontrollera att du använder identitetens objekt-ID, inte klient-ID.

  • Kontrollera att det inte finns några misstag i anslutningskonfigurationen.

    1. Kontrollera att det "säkra extra" är ifyllt,
    2. Url:en är korrekt.
    3. Använd tpch-katalogen att testa med för att kontrollera att anslutningen fungerar innan du använder din egen katalog.

Nästa steg

Om du vill exponera Superset för internet och tillåta användarinloggning med Microsoft Entra-ID, behöver du utföra följande allmänna steg. De här stegen kräver en mellanliggande eller större erfarenhet av Kubernetes.