部署 Apache Superset™
注意
AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。
在淘汰日期之前,只有基本支援可用。
重要
此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。
視覺效果對於有效地探索、呈現及共用資料至關重要。 Apache Superset 可讓您在彈性 Web UI 中對您的資料執行查詢、視覺化及建置儀表板。
本文會說明如何在 Azure 中部署 Apache Superset UI 執行個體,並在 AKS 上使用 HDInsight 將其連線到 Trino 叢集,以查詢資料並建立儀表板。
本文所涵蓋的步驟之摘要:
必要條件
如果使用 Windows,請使用Ubuntu on WSL2 在 Windows 內的 Bash 殼層 Linux 環境中執行這些指示。 否則,您必須修改命令以在 Windows 中運作。
建立 Trio 叢集並指派受控識別
如果您尚未這麼做,請 使用 AKS 上的 HDInsight 建立 Trino 叢集。
若要讓 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。
為 Apache Superset 建立 Kubernetes 叢集
此步驟會建立 Azure Kubernetes Service (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 受控識別。 此步驟表示叢集會使用您指派給它的身分識別,而不需手動部署或迴圈秘密。
您必須為 Superset Helm 部署建立 values.yaml 檔案。 請參閲 範例程式碼。
選擇性: 使用 Microsoft Azure Postgres,而不是使用部署在 Kubernetes 叢集中的 Postgres。
建立「適用於 PostgreSQL 的 Azure 資料庫」執行個體,以方便維護、允許備份,並提供更好的可靠性。
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 文件 建議變更預設密碼。
使用 Helm 部署 Superset。
# 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/. 如果您未變更系統管理員密碼,請使用使用者名稱登入: admin、password: admin。
從右側的加號『+』選單中選取 [連線資料庫]。
選取 [Trino]。
輸入 Trino 叢集的 SQL Alchemy URI。
您必須變更此連接字串的三個部份:
屬性 範例 描述 使用者 trino@ @ 符號之前的名稱是用來連線至 Trino 的用戶名稱。 hostname mytrinocluster.00000000000000000000000000
.eastus.hdinsightaks.netTrino 叢集的主機名稱。
您可以從 Azure 入口網站中叢集的 [概觀] 頁面取得此資訊。catalog /tpch 斜線之後,是預設目錄名稱。
您必須將此目錄變更為具有您想要可視覺化之資料的目錄。trino://$USER@$TRINO_CLUSTER_HOST_NAME.hdinsightaks.net:443/$DEFAULT_CATALOG
範例:
trino://trino@mytrinocluster.00000000000000000000000000.westus3.hdinsightaks.net:443/tpch
選取 [進階] 索引標籤,然後在 [其他安全性] 中輸入下列設定。以受控識別的 GUID 用戶端識別碼取代 client_id 值 (您可以在 Azure 入口網站的受控識別資源概觀頁面找到此值)。
{ "auth_method": "azure_msi", "auth_params": { "scope": "https://clusteraccess.hdinsightaks.net/.default", "client_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }
選取 [連線]。
現在,您已準備好建立資料集和圖表。
疑難排解
確認您的 Trino 叢集已設定為允許 Superset 叢集的使用者獲指派受控識別以進行連線。 您可以查看 Trino 叢集的資源 JSON 來確認此值(authorizationProfile/userIds)。 請確定您使用身分識別的物件識別碼,而不是用戶端識別碼。
請確定連線設定中沒有任何錯誤。
- 請確定已填寫「安全額外項目」,
- 您的 URL 不正確。
- 在使用您自己的目錄之前,使用
tpch
目錄來測試以確認您的連線是否正常運作。
後續步驟
若要將 Superset 公開至網際網路,允許使用者使用 Microsoft Entra ID 登入,您需要完成下列一般步驟。 這些步驟需要具有中級或更高的 Kubernetes 經驗。