쿼리 로깅
중요하다
AKS의 Azure HDInsight는 2025년 1월 31일에 사용 중지되었습니다. 에 대한 이 공지를 더 알아보세요.
워크로드가 갑자기 종료되는 것을 방지하기 위해 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 워크로드를 마이그레이션해야 합니다.
중요하다
이 기능은 현재 미리 보기로 제공됩니다. Microsoft Azure 미리 보기용 보충 사용 약관에는 베타 버전, 미리 보기 또는 아직 일반 공급으로 출시되지 않은 Azure 기능에 적용되는 더 많은 법적 조건이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight를 AKS 미리 보기 정보에서 참조하세요. 질문이나 기능 제안이 있으면, 세부 사항과 함께 AskHDInsight에 요청을 제출하고, 더 많은 업데이트를 위해 Azure HDInsight Community를 팔로우해 주세요.
Trino는 쿼리 수명 주기 이벤트를 수신 대기하는 데 사용할 수 있는 사용자 지정 이벤트 수신기 지원합니다. 사용자 고유의 이벤트 수신기를 작성하거나 AKS의 HDInsight에서 제공하는 기본 제공 플러그 인을 사용하여 Azure Blob Storage에 이벤트를 기록할 수 있습니다.
다음 두 가지 방법으로 기본 제공 쿼리 로깅을 사용하도록 설정할 수 있습니다.
hive 카탈로그를 사용하도록 설정하여 Trino 클러스터 만들기 동안 기본 제공 쿼리 로깅을 사용하도록 설정할 수 있습니다.
ARM 템플릿을 사용하여 클러스터에서 기본 제공 쿼리 로깅을 사용하도록 설정할 수 있습니다.
이 문서에서는 ARM 템플릿을 사용하여 클러스터에 쿼리 로깅을 추가하는 방법을 설명합니다.
필수 구성 요소
- AKS에서 HDInsight를 사용하는 운영 Trino 클러스터입니다.
- 클러스터에 대한 ARM 템플릿 만듭니다.
- 클러스터 ARM 템플릿 샘플 전체를 검토합니다.
- ARM 템플릿 작성 및 배포대한 숙지
쿼리 로깅 활성화
Trino 클러스터에서 기본 제공 쿼리 로깅 플러그 인을 사용하도록 설정하려면 클러스터 ARM 템플릿에서 다음 속성으로 clusterProfile.trinoProfile.userTelemetrySpec
섹션을 추가/업데이트합니다.
재산 | 묘사 |
---|---|
path |
다른 쿼리 로그를 캡처하기 위해 루트로 사용되는 디렉터리에 대한 정규화된 경로입니다. |
hivecatalogName |
이 카탈로그는 스토리지 계정으로 작성된 파일에 외부 테이블을 탑재하는 데 사용됩니다. 이 카탈로그는 귀하의 클러스터에 추가해야 하며, Hive 카탈로그를 추가하십시오. |
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 템플릿 을배포하는 방법을 배우십시오.
메모
플러그 인은 클러스터에 연결된 MSI(사용자 할당 관리 ID)를 사용하여 스토리지에 대해 인증합니다. 플러그 인이 스토리지 계정에 로그를 쓸 수 있도록 MSI에 대한
Contributor
및Storage Blob Data Owner
액세스를 추가하세요.
사용자 할당 MSI 이름은 클러스터의 리소스 JSON에 있는msiResourceId
속성에 나열됩니다. 역할을 할당하는 방법을 알아봅니다.PartitionRetentionInDays는 탑재된 테이블에서 메타데이터 파티션만 제거하며 데이터를 삭제하지 않습니다. 더 이상 필요하지 않은 경우 요구 사항에 따라 데이터를 정리하세요.
메타데이터 관리
사용자가 hiveCatalogName
속성에 카탈로그 이름을 지정하는 경우 플러그 인은 스토리지 계정에 기록된 로그 파일을 외부 테이블 및 뷰로 탑재하며 Trino를 통해 쿼리할 수 있습니다.
플러그 인은 세 개의 테이블과 세 개의 뷰를 만듭니다. 이 뷰는 수명 주기 이벤트(QueryCompletedEvent
, QueryCreatedEvent
및 SplitCompletedEVent
)를 쿼리하는 데 사용할 수 있습니다. 사용자 입력으로 제공된 카탈로그 및 스키마 아래에 이 테이블 & 뷰가 생성됩니다.
테이블 이름:
-
querycompleted
: Trino에서 발생한QueryCompleted
이벤트를 포함합니다. -
querycreated
: Trino에서 발사한QueryCreatedEvents
를 포함합니다. -
splitcompleted
: Trino에서 발생한SplitCompletedEvents
을 포함하고 있습니다.
보기 이름:
vquerycompleted
vquerycreated
vsplitcompleted
메모
사용자는 기본 스키마 변경에 영향을 받지 않으며 설명된 테이블을 고려할 수 있도록 보기를 사용하는 것이 좋습니다.
테이블 아카이브
플러그 인은 사용자가 로그의 path
또는 외부 위치를 변경하기로 결정하는 시나리오에서 보관(N-1) 테이블을 지원합니다.
이 경우 플러그 인은 <table_name>_archived이전 경로를 가리키는 테이블의 이름을 바꿉니다. 생성된 뷰는 이 시나리오에서 현재 테이블과 보관된 테이블의 결과를 통합합니다.
사용자 지정 플러그 인 만들기
사용자 지정 이벤트 수신기 플러그 인을 작성하고, 문서지침을 따르고, 플러그 인 배포 단계에 따라 사용자 지정 플러그 인을 배포할 수도 있습니다.