Delen via


Apache Superset™ implementeren

Belangrijk

Azure HDInsight op AKS is op 31 januari 2025 buiten gebruik gesteld. Kom meer te weten uit deze aankondiging .

U moet uw workloads migreren naar Microsoft Fabric- of een gelijkwaardig Azure-product om plotselinge beëindiging van uw workloads te voorkomen.

Belangrijk

Deze functie is momenteel beschikbaar als preview-versie. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews meer juridische voorwaarden bevatten die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet in algemene beschikbaarheid zijn vrijgegeven. Zie Azure HDInsight in AKS preview-informatievoor meer informatie over deze specifieke preview. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight- met de details en volgt u ons voor meer updates over Azure HDInsight Community-.

Visualisatie is essentieel voor het effectief verkennen, presenteren en delen van gegevens. Apache Superset- kunt u query's uitvoeren, visualiseren en dashboards bouwen voor uw gegevens in een flexibele webinterface.

In dit artikel wordt beschreven hoe u een Apache Superset UI-instantie in Azure implementeert en verbindt met een Trino-cluster met HDInsight in AKS om gegevens op te vragen en dashboards te maken.

Overzicht van de stappen die in dit artikel worden behandeld:

  1. vereisten.
  2. Kubernetes-cluster maken voor Apache Superset.
  3. Apache Superset implementeren.

Voorwaarden

Als u Windows gebruikt, gebruikt u Ubuntu op WSL2 om deze instructies uit te voeren in een Linux-omgeving met een bash-shell in Windows. Anders moet u opdrachten wijzigen om in Windows te kunnen werken.

Een Trino-cluster maken en een beheerde identiteit toewijzen

  1. Als u dat nog niet hebt gedaan, maakt u een Trino-cluster met HDInsight op AKS.

  2. Als u Trino wilt aanroepen met Apache Superset, moet deze een beheerde identiteit (MSI) hebben. Maak een nieuwe, of selecteer een bestaande, door de gebruiker toegewezen beheerde identiteit .

  3. Wijzig uw Trino-clusterconfiguratie zodat de beheerde identiteit die in stap 2 is gemaakt, query's kan uitvoeren. Meer informatie over het beheren van toegang.

Lokale hulpprogramma's installeren

  1. Azure CLI instellen.

    een. Installeer Azure CLI.

    b. Meld u aan bij de Azure CLI: az login.

    c. Installeer de Preview-extensie van 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. Installeer Kubernetes.

  3. Installeer Helm.

Kubernetes-cluster maken voor Apache Superset

Met deze stap maakt u het AKS-cluster (Azure Kubernetes Service) waar u Apache Superset kunt installeren. U moet de beheerde identiteit die u aan het cluster hebt gekoppeld binden, zodat Superset zich kan authenticeren met het Trino-cluster met die identiteit.

  1. Maak de volgende variabelen in bash voor uw Superset-installatie.

    # ----- 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. Selecteer het abonnement waar u Superset gaat installeren.

    az account set --subscription $SUBSCRIPTION
    
  3. Schakel de podidentiteitsfunctie in voor uw huidige abonnement.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Maak een AKS-cluster om Superset te implementeren.

    # 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
    

Apache Superset implementeren

  1. Om Superset veilig met trino-clusters te laten communiceren, is het de eenvoudigste manier om Superset in te stellen voor het gebruik van azure Managed Identity. Deze stap betekent dat uw cluster gebruikmaakt van de identiteit die u eraan hebt toegewezen zonder handmatige implementatie of cyclus van geheimen.

    U moet een values.yaml-bestand maken voor de Implementatie van Superset Helm. Raadpleeg voorbeeldcode .

    Optionele: gebruik Microsoft Azure Postgres in plaats van postgres te gebruiken dat is geïmplementeerd in het Kubernetes-cluster.

    Maak een Azure Database for PostgreSQL-instantie voor eenvoudiger onderhoud, om back-ups mogelijk te maken en betere betrouwbaarheid te bieden.

    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. Voeg indien nodig andere secties van de values.yaml toe. De Superset-documentatie raadt aan om het standaardwachtwoord te wijzigen.

  3. Superset implementeren met gebruik van 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. Maak verbinding met Superset en creëer een connectie.

    Notitie

    U moet afzonderlijke verbindingen maken voor elke Trino-catalogus die u wilt gebruiken.

    1. Maak verbinding met Superset met behulp van port forwarding.

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

    2. Open een webbrowser en ga naar http://localhost:8088/. Als u het beheerderswachtwoord niet hebt gewijzigd, meldt u zich aan met de gebruikersnaam: beheerder, wachtwoord: beheerder.

    3. Selecteer 'Database verbinden' in het plusmenu '+' aan de rechterkant.

      schermopname van de verbindingsdatabase.

    4. Selecteer Trino-.

    5. Voer de SQL Alchemy-URI van uw Trino-cluster in.

      U moet drie delen van deze verbindingsreeks wijzigen:

      Eigendom Voorbeeld Beschrijving
      gebruiker trino@ De naam vóór het @-symbool is de gebruikersnaam die wordt gebruikt voor verbinding met Trino.
      hostnaam mytrinocluster.00000000000000000000000000000
      .eastus.hdinsightaks.net
      De hostnaam van uw Trino-cluster.
      U kunt deze informatie ophalen op de pagina Overzicht van uw cluster in Azure Portal.
      catalogus /tpch Na de slash is de standaardcatalogusnaam.
      U moet deze catalogus wijzigen in de catalogus met de gegevens die u wilt visualiseren.

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

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

      schermopname van de verbindingsreeks.

    6. Selecteer het tabblad Geavanceerd en voer de volgende configuratie in 'Extra beveiliging' in. Vervang de client_id-waarde door de GUID-client-id voor uw beheerde identiteit (deze waarde vindt u op de overzichtspagina van uw beheerde identiteit in Azure Portal).

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

      Schermopname van het toevoegen van MSI.

    7. Selecteer Verbinding maken.

U kunt nu gegevenssets en grafieken maken.

Probleemoplossing

  • Controleer of uw Trino-cluster is geconfigureerd om de door de gebruiker toegewezen beheerde identiteit van het Superset-cluster verbinding te laten maken. U kunt deze waarde controleren door te kijken naar de resource-JSON van uw Trino-cluster (authorizationProfile/userIds). Zorg ervoor dat u de object-id van de identiteit gebruikt, niet de client-id.

  • Zorg ervoor dat er geen fouten zijn in de verbindingsconfiguratie.

    1. Zorg ervoor dat de 'veilige aanvulling' wordt ingevuld.
    2. Uw URL is juist.
    3. Gebruik de tpch-catalogus om mee te testen om te controleren of uw verbinding werkt voordat u uw eigen catalogus gebruikt.

Volgende stappen

Als u Superset beschikbaar wilt maken op internet, staat u gebruikersaanmelding toe met behulp van Microsoft Entra ID. U moet de volgende algemene stappen uitvoeren. Voor deze stappen is een tussenliggende of grotere ervaring met Kubernetes vereist.