Compartir a través de


Implementación de Apache Superset™

Importante

Azure HDInsight en AKS se retiró el 31 de enero de 2025. Aprenda más sobre con este anuncio.

Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.

Importante

Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte información sobre la versión preliminar de Azure HDInsight en AKS. Para preguntas o sugerencias de características, envíe una solicitud en AskHDInsight con los detalles, y síganos para obtener más actualizaciones en Azure HDInsight Community.

La visualización es esencial para explorar, presentar y compartir datos de forma eficaz. Apache Superset permite ejecutar consultas, visualizar y crear paneles sobre tus datos en una interfaz de usuario web flexible.

En este artículo se describe cómo implementar una instancia de interfaz de usuario de Apache Superset en Azure y conectarla al clúster de Trino con HDInsight en AKS para consultar datos y crear paneles.

Resumen de los pasos descritos en este artículo:

  1. Requisitos previos.
  2. Creación de un clúster de Kubernetes para apache Superset.
  3. Implementación de Apache Superset.

Prerrequisitos

Si usa Windows, use Ubuntu en WSL2 para ejecutar estas instrucciones en un entorno Linux con shell Bash en Windows. De lo contrario, debe modificar los comandos para que funcionen en Windows.

Creación de un clúster de Trino y asignación de una identidad administrada

  1. Si todavía no lo ha hecho, cree un clúster de Trino con HDInsight en AKS.

  2. Para que Apache Superset llame a Trino, debe tener una identidad administrada (MSI). Cree o elija una identidad administrada asignada a un usuario existente .

  3. Modifique la configuración del clúster de Trino para permitir que la identidad administrada creada en el paso 2 ejecute consultas. Aprenda a administrar el acceso.

Instalación de herramientas locales

  1. Configuración de la CLI de Azure.

    un. Instale Azure CLI.

    b. Inicie sesión en la CLI de Azure: az login.

    c. Instale la extensión de versión preliminar de la CLI de 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.

Creación de un clúster de Kubernetes para Apache Superset

En este paso se crea el clúster de Azure Kubernetes Service (AKS), donde puede instalar Apache Superset. Debe enlazar la identidad administrada que ha asociado al clúster para permitir que Superset se autentique con el clúster de Trino usando esa identidad.

  1. Cree las siguientes variables en Bash para la instalación de 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. Seleccione la suscripción donde va a instalar Superset.

    az account set --subscription $SUBSCRIPTION
    
  3. Habilite la característica de identidad de pod en la suscripción actual.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Cree un clúster de AKS para implementar 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
    

Implementación de Apache Superset

  1. Para permitir que Superset hable con el clúster de Trino de forma segura, la manera más sencilla es configurar Superset para usar la identidad administrada de Azure. Este paso significa que el clúster utiliza la identidad que le ha asignado sin necesidad de despliegue manual ni actualización de secretos.

    Debe crear un archivo llamado values.yaml para la implementación de Superset con Helm. Consulte el código de ejemplo .

    opcional: use Microsoft Azure Postgres en lugar de usar Postgres implementado dentro del clúster de Kubernetes.

    Cree una instancia de "Azure Database for PostgreSQL" para permitir un mantenimiento más sencillo, permitir copias de seguridad y proporcionar una mejor confiabilidad.

    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. Agregue otras secciones de values.yaml si es necesario. Documentación de Superset recomienda cambiar la contraseña predeterminada.

  3. Implemente Superset con 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. Conéctese a Superset y cree una conexión.

    Nota

    Debe crear conexiones independientes para cada catálogo de Trino que quiera usar.

    1. Conéctese a Superset mediante reenvío de puertos.

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

    2. Abra un explorador web y vaya a http://localhost:8088/. Si no ha cambiado la contraseña del administrador, inicie sesión con el nombre de usuario: admin, password: admin.

    3. Seleccione "Conectar base de datos" en el menú más "+" del lado derecho.

      Captura de pantalla que muestra la base de datos de conexión.

    4. Seleccione Trino.

    5. Introduzca el URI de SQL Alchemy de su clúster de Trino.

      Debe modificar tres partes de esta cadena de conexión:

      Propiedad Ejemplo Descripción
      usuario trino@ El nombre antes del símbolo @ es el nombre de usuario usado para la conexión a Trino.
      nombre del host mytrinocluster.000000000000000000000000000000000
      .eastus.hdinsightaks.net
      Nombre de host del clúster de Trino.
      Puede obtener esta información en la página "Información general" del clúster en Azure Portal.
      catálogo /tpch Después de la barra diagonal, es el nombre de catálogo predeterminado.
      Debe cambiar este catálogo al catálogo que tiene los datos que desea visualizar.

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

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

      Captura de pantalla que muestra la cadena de conexión.

    6. Seleccione la pestaña "Avanzadas" y escriba la siguiente configuración en "Seguridad adicional". Reemplace el valor de client_id por el identificador de cliente GUID de la identidad administrada (este valor se puede encontrar en la página de información general del recurso de identidad administrada en Azure Portal).

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

      Captura de pantalla que muestra la adición de MSI.

    7. Seleccione "Conectar".

Ahora, está listo para crear conjuntos de datos y gráficos.

Solución de problemas

  • Compruebe que el clúster de Trino se ha configurado para permitir que la identidad administrada asignada por el usuario del clúster de Superset se conecte. Puede comprobar este valor examinando el JSON de recurso del clúster de Trino (authorizationProfile/userIds). Asegúrese de que usa el identificador de objeto de la identidad, no el identificador de cliente.

  • Asegúrese de que no haya errores en la configuración de conexión.

    1. Asegúrese de que el "seguro adicional" esté cumplimentado,
    2. La dirección URL es correcta.
    3. Utilice el catálogo tpch para comprobar que su conexión funciona antes de usar su propio catálogo.

Pasos siguientes

Para exponer Superset a Internet y permitir el inicio de sesión del usuario mediante Microsoft Entra ID, debe seguir los siguientes pasos generales. Estos pasos requieren una experiencia intermedia o mayor con Kubernetes.