Implementar Apache Superset™
Observação
Desativaremos o Microsoft Azure HDInsight no AKS em 31 de janeiro de 2025. Para evitar o encerramento abrupto das suas cargas de trabalho, você precisará migrá-las para o Microsoft Fabric ou para um produto equivalente do Azure antes de 31 de janeiro de 2025. Os clusters restantes em sua assinatura serão interrompidos e removidos do host.
Somente o suporte básico estará disponível até a data de desativação.
Importante
Esse recurso está atualmente na visualização. Os Termos de uso complementares para versões prévias do Microsoft Azure 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, confira Informações sobre a versão prévia do Azure HDInsight no AKS. Caso tenha perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para ver mais atualizações sobre a Comunidade do Azure HDInsight.
A visualização é essencial para explorar, apresentar e compartilhar dados com eficiência. O Apache Superset permite executar consultas, visualizar e criar painéis nos seus dados em uma interface do usuário da Web flexível.
Este artigo descreve como implantar uma instância da interface do usuário do Apache Superset no Azure e conectá-la ao cluster de Trino com HDInsight no AKS para consultar dados e criar painéis.
Resumo das etapas abordadas neste artigo:
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, precisará modificar comandos para trabalhar no Windows.
Criar um cluster de Trino e atribuir uma Identidade gerenciada
Se você ainda não fez isso, crie um Cluster de Trino com HDInsight no AKS.
Para o Apache Superset chamar o Trino, ele precisa ter uma MSI (identidade gerenciada). Crie ou escolha uma identidade gerenciada atribuída pelo usuário existente.
Modifique a configuração do cluster Trino para permitir que a identidade gerenciada criada na etapa 2 faça consultas. Saiba como gerenciar o acesso.
Instalar ferramentas locais
Configurar CLI do Azure.
a. Instale a CLI do Azure.
b. Fazer logon na CLI do Azure:
az login
.c. Instale a extensão de versão prévia 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
Instale o Kubernetes.
Instale o Helm.
Criar cluster do Kubernetes para o 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 vincular a identidade gerenciada associada ao cluster para permitir que o Superset se autentique no cluster Trino com essa identidade.
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=
Selecione a assinatura na qual você instalará o Superset.
az account set --subscription $SUBSCRIPTION
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
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 o Apache Superset
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 atribuída sem uma implantação manual ou um ciclo 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 do 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
Adicione outras seções de values.yaml, se necessário. A documentação do Superset recomenda alterar a senha padrão.
Implantar o 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
Conecte o Superset e crie uma conexão.
Observação
Você deve criar conexões separadas para cada catálogo do Trino que deseja usar.
Conecte o Superset usando o encaminhamento de porta.
kubectl port-forward service/superset 8088:8088 --namespace default
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: admin, senha: admin.
Selecione "conectar banco de dados" no menu mais '+' à direita.
Selecione Trino.
Insira a URI do SQL Alchemy de seu cluster de Trino.
Você precisa modificar três partes dessa cadeia de conexão:
Propriedade Exemplo Descrição usuário trino@ O nome antes do símbolo @ é o nome de usuário usado para a conexão com o Trino. hostname mytrinocluster.00000000000000000000000000
.eastus.hdinsightaks.netO nome de host do cluster Trino.
Você pode obter essas informações na página "Visão geral" do cluster no portal do Azure.catálogo /tpch Após a 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
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" } }
Selecione "Conectar".
Agora, você está pronto para criar conjuntos de dados e gráficos.
Solução de problemas
Verifique se o cluster do Trino foi configurado para permitir que a identidade gerenciada atribuída pelo usuário do cluster do Superset se conecte. Você pode verificar esse valor examinando o JSON do recurso do cluster do Trino (authorizationProfile/userIds). Verifique se está usando a ID do objeto da identidade, não a ID do cliente.
Verifique se não há erros na configuração da conexão.
- Verifique se "extra seguro" está preenchido,
- A URL está correta.
- Use o catálogo de
tpch
para testar e verificar se sua conexão está funcionando antes de usar seu próprio catálogo.
Próximas etapas
Para expor o Superset na Internet, permita o logon do usuário usando o Microsoft Entra ID que você precisa para realizar as etapas gerais a seguir. Essas etapas exigem uma experiência intermediária ou maior com o Kubernetes.