Развертывание Apache Superset™
Важный
Azure HDInsight на AKS прекращена 31 января 2025 г. Узнайте больше с данным объявлением.
Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.
Важный
Эта функция сейчас доступна в предварительной версии. Дополнительные условия использования для предварительных версий Microsoft Azure включают дополнительные юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следите за обновлениями на Azure HDInsight Community.
Визуализация необходима для эффективного изучения, представления и совместного использования данных. Apache Superset позволяет выполнять запросы, визуализировать и создавать панели мониторинга по данным в гибком веб-интерфейсе.
В этой статье описывается, как развернуть экземпляр пользовательского интерфейса Apache Superset в Azure и подключить его к кластеру Trino с HDInsight в AKS для запроса данных и создания панелей мониторинга.
Сводка действий, описанных в этой статье:
- предварительные требования.
- Создание кластера Kubernetes для Apache Superset.
- Развернуть Apache Superset.
Необходимые условия
При использовании Windows используйте Ubuntu в WSL2 для выполнения этих инструкций в среде оболочки Bash в Windows. В противном случае необходимо изменить команды для работы в Windows.
Создайте кластер Trino и назначьте управляемое удостоверение
Если вы еще не сделали этого, создайте кластер Trino с использованием HDInsight на AKS.
Чтобы Apache Superset мог вызывать Trino, ему необходимо управляемое удостоверение (MSI). Создайте или выберите существующее управляемое удостоверение, назначаемое пользователем .
Измените конфигурацию кластера Trino, чтобы разрешить управляемому удостоверению, созданному на шаге 2, выполнять запросы. Узнайте, как управлять доступом.
Установка локальных средств
Настройка 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
Установите Kubernetes.
Установите Helm.
Создание кластера Kubernetes для Apache Superset
На этом шаге создается кластер службы Azure Kubernetes (AKS), где можно установить Apache Superset. Необходимо привязать управляемое удостоверение, которое вы связали с кластером, чтобы позволить Superset проходить аутентификацию в кластере Trino с использованием этого удостоверения.
Создайте следующие переменные в 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=
Выберите подписку, в которой вы собираетесь установить Superset.
az account set --subscription $SUBSCRIPTION
Включите функцию идентификации pod в текущей подписке.
az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService az provider register -n Microsoft.ContainerService
Создайте кластер AKS для развертывания 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
Развертывание Apache Superset
Чтобы разрешить Superset безопасно взаимодействовать с кластером 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
При необходимости добавьте в values.yaml другие разделы. документация Superset рекомендует сменить пароль по умолчанию.
Разверните Superset с помощью 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
Подключитесь к Superset и создайте соединение.
Заметка
Необходимо создать отдельные подключения для каждого каталога Trino, который вы хотите использовать.
Подключитесь к Superset с помощью перенаправления портов.
kubectl port-forward service/superset 8088:8088 --namespace default
Откройте веб-браузер и перейдите к http://localhost:8088/. Если пароль администратора не изменен, войдите с помощью имени пользователя: администратора, пароля: администратора.
Выберите "Подключить базу данных" в меню "+" в правой части.
Выберите Trino.
Введите URI SQLAlchemy для вашего кластера Trino.
Необходимо изменить три части этой строки подключения:
Свойство Пример Описание пользователь трино@ Имя перед символом @— это имя пользователя, используемое для подключения к Trino. имя узла 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
Перейдите на вкладку "Дополнительно" и введите следующую конфигурацию в разделе "Дополнительная безопасность". Замените значение client_id идентификатором клиента GUID для управляемого удостоверения (это значение можно найти на странице обзора ресурса управляемого удостоверения на портале Azure).
{ "auth_method": "azure_msi", "auth_params": { "scope": "https://clusteraccess.hdinsightaks.net/.default", "client_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }
Выберите "Подключиться".
Теперь вы готовы создавать наборы данных и диаграммы.
Устранение неполадок
Убедитесь, что кластер Trino настроен так, чтобы разрешить управляемой идентификации, назначенной пользователю кластера Superset, подключаться. Это значение можно проверить, просмотрев JSON ресурса кластера Trino (authorizationProfile/userIds). Убедитесь, что вы используете ID объекта идентичности, а не ID клиента.
Убедитесь, что в конфигурации подключения нет ошибок.
- Убедитесь, что "безопасный дополнительный" заполнен,
- Ваш URL-адрес правильный.
- Используйте каталог
tpch
для проверки работы подключения перед использованием собственного каталога.
Дальнейшие действия
Чтобы опубликовать Superset в интернете, разрешите вход пользователей с помощью Microsoft Entra ID, необходимо выполнить следующие общие действия. Для этих действий требуется промежуточный или более широкий опыт работы с Kubernetes.