다음을 통해 공유


Apache Superset™ 배포

중요하다

AKS의 Azure HDInsight는 2025년 1월 31일에 사용 중지되었습니다. 이 공지 을 통해에 대해 자세히 알아보세요.

워크로드가 갑자기 종료되는 것을 방지하기 위해 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 워크로드를 마이그레이션해야 합니다.

중요하다

이 기능은 현재 미리 보기로 제공됩니다. Microsoft Azure 미리 보기의 추가 사용 약관에는 베타, 미리 보기 중이거나 아직 일반 제공으로 출시되지 않은 Azure 기능에 적용되는 추가적인 법적 조건이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 AKS 미리 보기 정보 azure HDInsight참조하세요. 질문이나 기능 제안이 있으신 경우, 자세한 내용을 포함하여 AskHDInsight에 요청을 제출해 주세요. 더 많은 업데이트를 받으시려면 Azure HDInsight Community를 팔로우해 주세요.

시각화는 데이터를 효과적으로 탐색하고, 제시하고, 공유하는 데 필수적입니다. Apache Superset 사용하면 유연한 웹 UI에서 데이터를 통해 쿼리를 실행하고, 시각화하고, 대시보드를 빌드할 수 있습니다.

이 문서에서는 Azure에서 Apache Superset UI 인스턴스를 배포하고 AKS의 HDInsight를 사용하여 Trino 클러스터에 연결하여 데이터를 쿼리하고 대시보드를 만드는 방법을 설명합니다.

이 문서에서 다루는 단계 요약:

  1. 전제 조건.
  2. Apache Superset을 위한 Kubernetes 클러스터 생성.
  3. Apache Superset배포합니다.

필수 구성 요소

Windows를 사용하는 경우 WSL2 Ubuntu를 사용하여 Windows 내의 bash 셸 Linux 환경에서 이러한 지침을 실행합니다. 그렇지 않으면 Windows에서 작동하도록 명령을 수정해야 합니다.

Trino 클러스터 만들기 및 관리 ID 할당

  1. 아직 생성하지 않았다면, AKS 의 HDInsight를 사용하여Trino 클러스터를 만드세요.

  2. Apache Superset이 Trino를 호출하려면 MSI(관리 ID)가 있어야 합니다. 기존 사용자 할당 관리 ID만들거나 선택합니다.

  3. 2단계에서 만든 관리 ID가 쿼리를 실행할 수 있도록 Trino 클러스터 구성을 수정합니다. 액세스관리하는 방법을 알아봅니다.

로컬 도구 설치

  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설치합니다.

Apache Superset용 kubernetes 클러스터 만들기

이 단계에서는 Apache Superset을 설치할 수 있는 AKS(Azure Kubernetes Service) 클러스터를 만듭니다. Superset이 해당 ID를 사용하여 Trino 클러스터로 인증할 수 있도록 클러스터에 연결한 관리 ID를 바인딩해야 합니다.

  1. Superset 설치를 위해 bash에서 다음 변수를 만듭니다.

    # ----- 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. Superset을 설치할 구독을 선택합니다.

    az account set --subscription $SUBSCRIPTION
    
  3. 현재 구독에서 Pod ID 기능을 사용하도록 설정합니다.

    az feature register --name EnablePodIdentityPreview --namespace Microsoft.ContainerService
    az provider register -n Microsoft.ContainerService
    
  4. Superset을 배포할 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. Superset이 Trino 클러스터와 안전하게 통신할 수 있도록 하려면 가장 쉬운 방법은 Azure 관리 ID를 사용하도록 Superset을 설정하는 것입니다. 이 단계는 클러스터가 수동으로 배포 또는 보안 비밀을 갱신하지 않고 할당한 ID를 사용한다는 것을 의미합니다.

    Superset Helm 배포에 대한 values.yaml 파일을 만들어야 합니다. 샘플 코드참조하세요.

    선택적: Kubernetes 클러스터 내에 배포된 Postgres를 사용하는 대신 Microsoft Azure Postgres를 사용합니다.

    "Azure Database for 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. 필요한 경우 values.yaml의 다른 섹션을 추가합니다. Superset 설명서 기본 암호를 변경하는 것이 좋습니다.

  3. 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
    
  4. Superset에 연결하고 연결을 만듭니다.

    메모

    사용하려는 각 Trino 카탈로그에 대해 별도의 연결을 만들어야 합니다.

    1. 포트 전달을 사용하여 Superset에 연결합니다.

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

    2. 웹 브라우저를 열고 http://localhost:8088/. 이동합니다. 관리자 암호를 변경하지 않은 경우 사용자 이름( admin, password: admin)을 사용하여 로그인합니다.

    3. 오른쪽에 있는 더하기 '+' 메뉴에서 "데이터베이스 연결"을 선택합니다.

      연결 데이터베이스를 보여 주는 스크린샷

    4. Trino선택합니다.

    5. Trino 클러스터의 SQL Alchemy URI를 입력합니다.

      이 연결 문자열의 세 부분을 수정해야 합니다.

      재산 본보기 묘사
      사용자 trino@ @ 기호 앞의 이름은 Trino 연결에 사용되는 사용자 이름입니다.
      호스트 이름 mytrinocluster.00000000000000000000000000000000000
      .eastus.hdinsightaks.net
      Trino 클러스터의 호스트 이름입니다.
      Azure Portal에서 클러스터의 "개요" 페이지에서 이 정보를 가져올 수 있습니다.
      카탈로그 /tpch 슬래시 뒤의 기본 카탈로그 이름입니다.
      이 카탈로그를 시각화하려는 데이터가 있는 카탈로그로 변경해야 합니다.

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

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

      연결 문자열을 보여 주는 스크린샷

    6. "고급" 탭을 선택하고 "추가 보안"에 다음 구성을 입력합니다. client_id 값을 관리 ID의 GUID 클라이언트 ID로 바꿉니다(이 값은 Azure Portal의 관리 ID 리소스 개요 페이지에서 찾을 수 있습니다).

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

      MSI 추가를 보여주는 스크린샷

    7. "연결"을 선택합니다.

이제 데이터 세트 및 차트를 만들 준비가 되었습니다.

문제 해결

  • Superset 클러스터의 사용자 할당 관리 ID가 연결할 수 있도록 Trino 클러스터가 구성되었는지 확인합니다. Trino 클러스터의 리소스 JSON(authorizationProfile/userIds)을 확인하여 이 값을 확인할 수 있습니다. 클라이언트 ID가 아닌 ID의 개체 ID를 사용하고 있는지 확인합니다.

  • 연결 구성에 실수가 없는지 확인합니다.

    1. "보안 추가"가 채워져 있는지 확인합니다.
    2. URL이 올바릅니다.
    3. tpch 카탈로그를 사용하여 테스트하여 고유한 카탈로그를 사용하기 전에 연결이 작동하는지 확인합니다.

다음 단계

인터넷에 Superset을 노출하려면 다음 일반 단계를 수행해야 하는 Microsoft Entra ID를 사용하여 사용자 로그인을 허용합니다. 이러한 단계를 수행하려면 Kubernetes에 대한 중간 이상의 경험이 필요합니다.