Поделиться через


Развертывание Apache Superset™

Внимание

Эта функция в настоящее время доступна для предварительного ознакомления. Дополнительные условия использования для предварительных версий Microsoft Azure включают более юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в статье Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следуйте за нами для получения дополнительных обновлений в сообществе Azure HDInsight.

Визуализация необходима для эффективного изучения, представления и совместного использования данных. Apache Superset позволяет выполнять запросы, визуализировать и создавать панели мониторинга по данным в гибком веб-интерфейсе.

В этой статье описывается, как развернуть экземпляр пользовательского интерфейса Apache Superset в Azure и подключить его к кластеру Trino с HDInsight в AKS для запроса данных и создания панелей мониторинга.

Сводка действий, описанных в этой статье:

  1. Предварительные требования.
  2. Создайте кластер Kubernetes для Apache Superset.
  3. Развертывание Apache Superset.

Необходимые компоненты

При использовании Windows используйте Ubuntu в WSL2 для выполнения этих инструкций в среде оболочки Bash в Windows. В противном случае необходимо изменить команды для работы в Windows.

Создание кластера Trino и назначение управляемого удостоверения

  1. Если вы еще не сделали этого, создайте кластер Trino с HDInsight в AKS.

  2. Для вызова Trino Superset необходимо иметь управляемое удостоверение (MSI). Создайте или выберите существующее управляемое удостоверение, назначаемое пользователем.

  3. Измените конфигурацию кластера Trino, чтобы разрешить управляемому удостоверению, созданному на шаге 2, выполнять запросы. Узнайте, как управлять доступом.

Установка локальных средств

  1. Настройка Azure CLI.

    a. Установите Azure CLI.

    b. Войдите в Azure CLI: az login

    c. Установите расширение предварительной версии 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. Установите Kubernetes.

  3. Установите Helm.

Создание кластера Kubernetes для Apache Superset

На этом этапе создается кластер Служба Azure Kubernetes (AKS), где можно установить Apache Superset. Необходимо привязать управляемое удостоверение, связанное с кластером, чтобы разрешить суперсети проходить проверку подлинности в кластере Trino с помощью этого удостоверения.

  1. Создайте следующие переменные в Bash для установки 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. Выберите подписку, в которой вы собираетесь установить Супермножество.

    az account set --subscription $SUBSCRIPTION
    
  3. Включите функцию удостоверений pod в текущей подписке.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Создайте кластер AKS для развертывания супермножества.

    # 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

  1. Чтобы разрешить суперсети безопасно взаимодействовать с кластером Trino, проще всего настроить superset для использования управляемого удостоверения Azure. Этот шаг означает, что кластер использует удостоверение, которое вы назначили без ручного развертывания или велоспорта секретов.

    Необходимо создать файл values.yaml для развертывания Superset Helm. См. пример кода.

    Необязательно. Используйте Microsoft Azure Postgres вместо использования Postgres, развернутого в кластере Kubernetes.

    Создайте экземпляр "База данных Azure для PostgreSQL", чтобы упростить обслуживание, разрешить резервные копии и повысить надежность.

    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. При необходимости добавьте другие разделы значения.yaml. Документация по суперустановкам рекомендует изменить пароль по умолчанию.

  3. Развертывание суперсети с помощью 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. Подключение в суперустановку и создайте подключение.

    Примечание.

    Необходимо создать отдельные подключения для каждого каталога Trino, который вы хотите использовать.

    1. Подключение в супермножество с помощью перенаправления портов.

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

    2. Откройте веб-браузер и перейдите в раздел http://localhost:8088/. Если пароль администратора не изменен, войдите с помощью имени пользователя: администратора, пароля: администратора.

    3. Выберите "Подключить базу данных" в меню "+" в правой части.

      Снимок экрана: подключение базы данных.

    4. Выберите Trino.

    5. Введите URI Алхимии SQL кластера Trino.

      Необходимо изменить три части этого строка подключения:

      Свойство Пример Description
      Пользователь трино@ Имя перед символом @— это имя пользователя, используемое для подключения к Trino.
      hostname mytrinocluster.000000000000000000000000000000
      .eastus.hdinsightaks.net
      Имя узла кластера Trino.
      Эти сведения можно получить на странице "Обзор" кластера в портал Azure.
      сценариев /tpch После косой черты используется имя каталога по умолчанию.
      Необходимо изменить этот каталог на каталог с данными, которые нужно визуализировать.

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

      Пример: trino://trino@mytrinocluster.00000000000000000000000000.westus3.hdinsightaks.net:443/tpch

      Снимок экрана: строка подключения.

    6. Перейдите на вкладку "Дополнительно" и введите следующую конфигурацию в разделе "Дополнительная безопасность". Замените значение client_id идентификатором клиента GUID для управляемого удостоверения (это значение можно найти на странице обзора ресурса управляемого удостоверения в портал Azure).

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

      Снимок экрана: добавление MSI.

    7. Выберите "Подключение".

Теперь вы готовы создавать наборы данных и диаграммы.

Устранение неполадок

  • Убедитесь, что кластер Trino настроен, чтобы разрешить пользователю, назначаемом пользователем кластера Superset, управляемому удостоверению. Это значение можно проверить, просмотрев JSON ресурса кластера Trino (authorizationProfile/userIds). Убедитесь, что вы используете идентификатор объекта удостоверения, а не идентификатор клиента.

  • Убедитесь, что в конфигурации подключения нет ошибок.

    1. Убедитесь, что "безопасный дополнительный" заполнен,
    2. Ваш URL-адрес правильный.
    3. tpch Используйте каталог для проверки работы подключения перед использованием собственного каталога.

Next Steps

Чтобы предоставить суперустановку в Интернете, разрешите вход пользователя с помощью идентификатора Microsoft Entra, необходимо выполнить следующие общие действия. Для этих действий требуется промежуточный или более широкий опыт работы с Kubernetes.