Compartilhar via


Implantar o Apache Superset™

Importante

O Azure HDInsight no AKS se aposentou em 31 de janeiro de 2025. Saiba mais com este comunicado.

Você precisa migrar suas cargas de trabalho para microsoft fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.

Importante

Esse recurso está atualmente em versão prévia. Os termos de uso complementares para o Microsoft Azure Previews incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, consulte Azure HDInsight em informações de visualização do AKS. Para obter perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações sobre da Comunidade do Azure HDInsight.

A visualização é essencial para explorar, apresentar e compartilhar dados com eficiência. Apache Superset permite executar consultas, visualizar e criar painéis sobre seus dados em uma interface do usuário da Web flexível.

Este artigo descreve como implantar uma instância de interface do usuário do Apache Superset no Azure e conectá-la ao cluster Trino com o HDInsight no AKS para consultar dados e criar painéis.

Resumo das etapas abordadas neste artigo:

  1. Pré-requisitos.
  2. Criar cluster do Kubernetes para o Apache Superset.
  3. implantar o Apache Superset.

Pré-requisitos

Se estiver usando o Windows, use Ubuntu no WSL2 para executar essas instruções em um ambiente Linux do shell bash no Windows. Caso contrário, você precisará modificar comandos para funcionar no Windows.

Criar um cluster Trino e atribuir uma Identidade Gerenciada

  1. Caso ainda não tenha feito isso, crie um cluster Trino com o HDInsight em AKS.

  2. Para o Apache Superset chamar o Trino, ele precisa ter uma MSI (identidade gerenciada). Criar ou escolher uma identidade gerenciada atribuída pelo usuário existente .

  3. Modifique a configuração do cluster Trino para permitir que a identidade gerenciada criada na etapa 2 execute consultas. Saiba como gerenciar o acesso.

Instalar ferramentas locais

  1. Configurar a CLI do Azure.

    um. Instale CLI do Azure.

    b. Faça logon na CLI do Azure: az login.

    c. Instale a extensão de visualização da CLI do 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. Instale Kubernetes.

  3. Instale Helm.

Criar cluster Kubernetes para Apache Superset

Esta etapa cria o cluster do AKS (Serviço de Kubernetes do Azure), no qual você pode instalar o Apache Superset. Você precisa associar a identidade gerenciada associada ao cluster para permitir que o Superset se autentique com o cluster Trino com essa identidade.

  1. Crie as variáveis a seguir no bash para a instalação do 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. Selecione a assinatura na qual você vai instalar o Superset.

    az account set --subscription $SUBSCRIPTION
    
  3. Habilite o recurso de identidade do pod em sua assinatura atual.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Crie um cluster do AKS para implantar o 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
    

Implantar Apache Superset

  1. Para permitir que o Superset fale com o cluster Trino com segurança, a maneira mais fácil é configurar o Superset para usar a Identidade Gerenciada do Azure. Essa etapa significa que o cluster usa a identidade que você atribuiu sem necessidade de implantação manual ou renovação de segredos.

    Você precisa criar um arquivo values.yaml para a implantação do Helm do Superset. Consulte o código de exemplo .

    opcional: use o Microsoft Azure Postgres em vez de usar o Postgres implantado dentro do cluster Kubernetes.

    Crie uma instância do "Banco de Dados do Azure para PostgreSQL" para permitir uma manutenção mais fácil, permitir backups e fornecer melhor confiabilidade.

    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. Adicione outras seções dos valores.yaml, se necessário. A documentação do Superset recomenda mudar a senha padrão.

  3. Implantar Superset usando o 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. Conecte-se ao Superset e crie uma conexão.

    Nota

    Você deve criar conexões separadas para cada catálogo do Trino que deseja usar.

    1. Conecte-se ao Superset usando o encaminhamento de portas.

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

    2. Abra um navegador da Web e vá para http://localhost:8088/. Se você não alterou a senha de administrador, faça logon usando o nome de usuário: administrador, senha: administrador.

    3. Selecione "conectar banco de dados" no menu mais '+' no lado direito.

      Captura de tela mostrando conectar ao banco de dados.

    4. Selecione Trino.

    5. Insira o URI do SQL Alchemy do cluster Trino.

      Você precisa modificar três partes dessa cadeia de conexão:

      Propriedade Exemplo Descrição
      utilizador trino@ O nome antes do símbolo @ é o nome de usuário usado para conexão com o Trino.
      nome do host mytrinocluster.0000000000000000000000000000000
      .eastus.hdinsightaks.net
      O hostname do cluster Trino.
      Você pode obter essas informações na página "Visão geral" do cluster no portal do Azure.
      catálogo /tpch Depois da barra, vem o nome do catálogo padrão.
      Você precisa alterar esse catálogo para o catálogo que tem os dados que deseja visualizar.

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

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

      Captura de tela mostrando a cadeia de conexão.

    6. Selecione a guia "Avançado" e insira a seguinte configuração em "Segurança Adicional". Substitua o valor client_id pela ID do cliente GUID para sua identidade gerenciada (esse valor pode ser encontrado na página de visão geral do recurso de identidade gerenciada no portal do Azure).

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

      Captura de tela mostrando a adição de MSI.

    7. Selecione "Conectar".

Agora, você está pronto para criar conjuntos de dados e gráficos.

Solucionando problemas

  • Verifique se o cluster Trino foi configurado para permitir que a identidade gerenciada atribuída pelo usuário do cluster Superset se conecte. Você pode verificar esse valor examinando o JSON do recurso do cluster Trino (authorizationProfile/userIds). Verifique se você está usando a ID do objeto da identidade, não a ID do cliente.

  • Verifique se não há erros na configuração de conexão.

    1. Verifique se o "extra de segurança" está preenchido.
    2. Sua URL está correta.
    3. Use o catálogo de tpch para testar para verificar se sua conexão está funcionando antes de usar seu próprio catálogo.

Próximas etapas

Para expor o Superset à Internet, permita o logon do usuário usando a ID do Microsoft Entra que você precisa para realizar as etapas gerais a seguir. Essas etapas exigem uma experiência intermediária ou maior com o Kubernetes.