Share via


쿼리 로깅

Important

이 기능은 현지 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 보충 사용 약관에는 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 약관이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보를 참조하세요. 질문이나 기능 제안이 있는 경우 AskHDInsight에서 세부 정보와 함께 요청을 제출하고 Azure HDInsight 커뮤니티에서 더 많은 업데이트를 확인하세요.

Trino는 쿼리 수명 주기 이벤트를 수신하는 데 사용할 수 있는 사용자 지정 이벤트 수신기를 지원합니다. 자체 이벤트 수신기를 빌드하거나 Azure Blob Storage에 이벤트를 기록하는 AKS의 HDInsight에서 제공하는 기본 제공 플러그 인을 사용할 수 있습니다.

다음 두 가지 방법으로 기본 제공 쿼리 로깅을 사용하도록 설정할 수 있습니다.

  • 하이브 카탈로그를 사용하도록 설정하면 Trino 클러스터 만들기 중에 기본 제공된 쿼리 로깅을 사용하도록 설정할 수 있습니다.

  • ARM 템플릿을 사용하여 클러스터에서 기본 제공 쿼리 로깅을 사용하도록 설정할 수 있습니다.

이 문서에서는 ARM 템플릿을 사용하여 클러스터에 쿼리 로깅을 추가하는 방법을 다룹니다.

필수 조건

쿼리 로깅 사용

Trino 클러스터에서 기본 제공된 쿼리 로깅 플러그 인을 사용하도록 설정하려면 클러스터 ARM 템플릿에서 다음 속성을 사용하여 clusterProfile.trinoProfile.userTelemetrySpec 섹션을 추가/업데이트합니다.

속성 설명
path 다양한 쿼리 로그를 캡처하기 위해 루트로 사용되는 디렉터리에 대한 정규화된 경로입니다.
hivecatalogName 이 카탈로그는 스토리지 계정에 작성된 파일에 외부 테이블을 탑재하는 데 사용됩니다. 이 카탈로그는 클러스터에 추가되어야 합니다(하이브 카탈로그 추가).
hivecatalogSchema 쿼리 로깅 플러그 인은 이 스키마를 사용하여 로그에 대한 외부 테이블을 탑재하고, 플러그 인이 아직 존재하지 않는 경우 이 스키마를 만듭니다. 기본값 - trinologs
partitionRetentionInDays 쿼리 로깅 플러그 인은 지정된 구성보다 오래된 로그 테이블의 파티션을 정리합니다. 기본값 - 365

다음 예에서는 Trino 클러스터에서 쿼리 로깅이 사용하도록 설정되는 방법을 보여 줍니다. ARM 템플릿의 [*].properties.clusterProfile 아래에 이 샘플 json을 추가합니다.

       "trinoProfile": { 
          "userTelemetrySpec": { 
          "storage": { 
              "path": "https://querylogstorageaccount.blob.core.windows.net/logs/trinoquerylogs", 
              "hivecatalogName": "hive", 
              "hivecatalogSchema": "trinologs", 
              "partitionRetentionInDays": 365 
          } 
          }
      }   

클러스터의 변경 내용을 반영하도록 업데이트된 ARM 템플릿을 배포합니다. ARM 템플릿을 배포하는 방법을 알아봅니다.

참고 항목

  • 플러그 인은 클러스터에 연결된 사용자 할당 관리 ID(MSI)를 사용하여 스토리지에 대해 인증합니다. 플러그 인이 스토리지 계정에 로그를 쓸 수 있도록 MSI에 ContributorStorage Blob Data Owner 액세스 권한을 추가하세요.
    사용자 할당 MSI 이름은 클러스터 리소스 JSON의 msiResourceId 속성에 나열됩니다. 역할 할당 방법을 알아봅니다.

  • PartitionRetentionInDays는 탑재된 테이블에서 메타데이터 파티션만 제거할 뿐 데이터는 삭제하지 않습니다. 더 이상 필요하지 않은 경우 요구 사항에 따라 데이터를 정리하세요.

메타데이터 관리

사용자가 hiveCatalogName 속성에 카탈로그 이름을 지정하면 플러그 인은 스토리지 계정에 작성된 로그 파일을 Trino를 통해 쿼리할 수 있는 외부 테이블 및 뷰로 탑재합니다.

플러그 인은 수명 주기 이벤트(QueryCompletedEvent, QueryCreatedEventSplitCompletedEVent)를 쿼리하는 데 사용할 수 있는 세 개의 테이블과 세 개의 뷰를 만듭니다. 이러한 테이블 및 뷰는 사용자 입력으로 제공된 카탈로그 및 스키마 아래에 만들어집니다.

테이블 이름:

  • querycompleted: Trino가 실행한 QueryCompleted 이벤트를 포함합니다.
  • querycreated: Trino가 실행한 QueryCreatedEvents를 포함합니다.
  • splitcompleted: Trino가 실행한 SplitCompletedEvents를 포함합니다.

뷰 이름:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

참고 항목

사용자는 기본 스키마 변경 내용에 영향을 받지 않고 설명된 테이블을 고려하므로 뷰를 사용하는 것이 좋습니다.

테이블 보관

플러그 인은 사용자가 로그의 path 또는 외부 위치를 변경하기로 결정한 시나리오에서(N-1)번째 테이블 보관을 지원합니다. 그런 일이 발생하면 플러그 인은 이전 경로를 가리키는 테이블의 이름을 <table_name>_archived로 바꾸며, 만들어진 뷰는 이 시나리오에서 현재 테이블과 보관된 테이블의 결과를 통합합니다.

사용자 지정 플러그 인 만들기

또한 사용자 지정 이벤트 수신기 플러그 인을 작성하고, 문서의 지침을 따르고, 플러그 인 배포 단계에 따라 사용자 지정 플러그 인을 배포할 수 있습니다.