Compartir a través de


Implementar Apache Superset™

Nota:

Retiraremos Azure HDInsight en AKS el 31 de enero de 2025. Antes del 31 de enero de 2025, deberá 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. Los clústeres restantes de la suscripción se detendrán y quitarán del host.

Solo el soporte técnico básico estará disponible hasta la fecha de retirada.

Importante

Esta funcionalidad actualmente está en su versión preliminar. En Términos de uso complementarios para las versiones preliminares de Microsoft Azure encontrará más términos legales que se aplican a las características de Azure que están en versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para más información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.

La visualización es esencial para explorar, presentar y compartir datos de forma eficaz. Apache Superset permite ejecutar consultas, visualizar y crear paneles a través de los 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 cómo conectarla al clúster de Tino 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.

Requisitos previos

Si usa Windows, utilice Ubuntu en WSL2 para ejecutar estas instrucciones en un entorno de shell de Bash de Linux en Windows. De no hacerlo así, deberá modificar los comandos para que funcionen en Windows.

Crear un clúster de Trino y asignar una identidad administrada

  1. Si aún 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 una identidad administrada asignada a un usuario o seleccione una existente.

  3. Modifique la configuración de clústeres de Trino para permitir que la identidad administrada creada en el paso 2 ejecute consultas. Más información sobre cómo administrar el acceso.

Instalación de herramientas locales

  1. Instale la CLI de Azure.

    a. Instale la CLI de Azure.

    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) en el que se puede instalar Apache Superset. Debe enlazar la identidad administrada que ha asociado al clúster para permitir que el Superset se autentique con el clúster de Trino con 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 vaya 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 la implementación de 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. La manera más sencilla de permitir que Superset hable con el clúster de Trino de forma segura consiste en configurar Superset para que utilice la identidad administrada de Azure. Este paso implica que el clúster usa la identidad que usted ha asignado sin la implementación manual ni el ciclo de secretos.

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

    Opcional: use Microsoft Azure Postgres en lugar de usar la versión de Postgres implementada 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 ofrecer una mayor fiabilidad.

    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. En caso necesario, agregue otras secciones de values.yaml. La 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 el reenvío de puertos.

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

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

    3. Seleccione «Conectar base de datos» en el menú «+» del lado derecho.

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

    4. Seleccione Trino.

    5. Escriba el URI de SQL Alchemy del clúster de Trino.

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

      Propiedad Ejemplo Descripción
      usuario trino@ El nombre que se indica antes de la arroba @ es el nombre de usuario utilizado para la conexión a Trino.
      hostname mytrinocluster.00000000000000000000000000
      .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 correspondiente en Azure Portal.
      catalog /tpch Después de la barra diagonal, se indica el nombre de catálogo predeterminado.
      Debe sustituir este catálogo por aquel que contenga 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 «Avanzado» y escriba la siguiente configuración en «Seguridad adicional». Sustituya el valor de client_id por el identificador de cliente GUID de su 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 cómo agregar MSI.

    7. Seleccione «Conectar».

Ya tiene todo listo para crear conjuntos de datos y gráficos.

Solucionar problemas

  • Compruebe que el clúster de Trino esté configurado para permitir que se conecte la identidad administrada asignada por el usuario del clúster de Superset. Puede comprobar este valor examinando el JSON de recurso del clúster de Trino (authorizationProfile/userIds). Asegúrese de utilizar 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 cumplimentar el apartado «Seguridad extra».
    2. La dirección URL es correcta.
    3. Use el catálogo tpch para comprobar el correcto funcionamiento de la conexión antes de utilizar su propio catálogo.

Pasos siguientes

Para exponer Superset a Internet, permita el inicio de sesión del usuario mediante Microsoft Entra ID; para ello, son necesarios los siguientes pasos generales. Estos pasos requieren una experiencia intermedia o avanzada con Kubernetes.