아파치 아이스버그 워크로드 모니터링 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아파치 아이스버그 워크로드 모니터링

Iceberg 워크로드를 모니터링하려면 메타데이터 테이블을 분석하거나 메트릭 리포터를 사용하는 두 가지 옵션이 있습니다. 지표 리포터는 Iceberg 버전 1.2에 도입되었으며 REST 및 JDBC 카탈로그에서만 사용할 수 있습니다.

를 사용하는 AWS Glue Data Catalog경우 Iceberg가 공개하는 메타데이터 테이블 위에 모니터링을 설정하여 Iceberg 테이블의 상태를 파악할 수 있습니다.

모니터링은 성능 관리 및 문제 해결에 매우 중요합니다. 예를 들어 Iceberg 테이블의 파티션이 일정 비율의 작은 파일에 도달하면 워크로드가 압축 작업을 시작하여 파일을 더 큰 파일로 통합할 수 있습니다. 이렇게 하면 쿼리 속도가 허용 수준 이상으로 느려지는 것을 방지할 수 있습니다.

테이블 수준 모니터링

다음 화면은 Amazon에서 만든 테이블 모니터링 대시보드를 보여줍니다 QuickSight. 이 대시보드는 Spark SQL을 사용하여 Iceberg 메타데이터 테이블을 쿼리하고 활성 파일 수 및 총 스토리지와 같은 세부 지표를 캡처합니다. 그런 다음 이 정보는 운영 목적으로 AWS Glue 테이블에 저장됩니다. 마지막으로, 다음 그림과 같이 Amazon Athena를 사용하여 QuickSight 대시보드를 생성합니다. 이 정보는 시스템의 특정 문제를 식별하고 해결하는 데 도움이 됩니다.

QuickSight 아이스버그 테이블 모니터링을 위한 대시보드

예제 QuickSight 대시보드는 Iceberg 테이블에 대한 다음과 같은 핵심 성과 지표 (KPI) 를 수집합니다.

KPI

설명

Query

파일 개수

Iceberg 테이블의 파일 수 (모든 스냅샷의 경우)

select count(*) from <catalog.database.table_name>.all_files

활성 파일 수

Iceberg 테이블의 마지막 스냅샷에 있는 활성 파일 수

select count(*) from <catalog.database.table_name>.files

평균 파일 크기

Iceberg 테이블에 있는 모든 파일의 평균 파일 크기 (메가바이트)

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

평균 활성 파일 크기

Iceberg 테이블에 있는 활성 파일의 평균 파일 크기 (메가바이트)

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

작은 파일의 비율

활성 파일 중 크기가 100MB 미만인 파일의 비율

select cast(sum(case when file_size_in_bytes < 100000000 then 1 else 0 end)*100/count(*) as decimal(10,2)) from <catalog.database.table_name>.files

총 스토리지 크기

분리된 파일과 Amazon S3 객체 버전을 제외한 테이블에 있는 모든 파일의 총 크기 (활성화된 경우)

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

총 활성 스토리지 크기

지정된 테이블의 현재 스냅샷에 있는 모든 파일의 총 크기

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

데이터베이스 수준 모니터링

다음 예는 Iceberg 테이블 컬렉션의 데이터베이스 수준 KPI에 대한 개요를 제공하기 QuickSight 위해 생성된 모니터링 대시보드를 보여줍니다.

QuickSight Iceberg에 대한 데이터베이스 수준 모니터링을 위한 대시보드

이 대시보드는 다음과 같은 KPI를 수집합니다.

KPI

설명

Query

파일 개수

Iceberg 데이터베이스의 파일 수 (모든 스냅샷의 경우)

이 대시보드는 이전 섹션에 제공된 테이블 수준의 쿼리를 사용하고 결과를 통합합니다.

활성 파일 수

Iceberg 데이터베이스의 활성 파일 수 (Iceberg 테이블의 마지막 스냅샷 기준)

평균 파일 크기

Iceberg 데이터베이스에 있는 모든 파일의 평균 파일 크기 (메가바이트)

평균 활성 파일 크기

Iceberg 데이터베이스의 모든 활성 파일에 대한 평균 파일 크기 (메가바이트)

작은 파일의 비율

Iceberg 데이터베이스에서 100MB 미만의 활성 파일 비율

총 스토리지 크기

데이터베이스에 있는 모든 파일의 총 크기 (분리된 파일 및 Amazon S3 객체 버전 제외) (활성화된 경우)

총 활성 스토리지 크기

데이터베이스에 있는 모든 테이블의 현재 스냅샷에 있는 모든 파일의 총 크기

예방 유지 관리

이전 섹션에서 설명한 모니터링 기능을 설정하면 사후 대응이 아닌 예방 차원에서 테이블 유지 관리에 접근할 수 있습니다. 예를 들어, 테이블 수준 및 데이터베이스 수준 지표를 사용하여 다음과 같은 작업을 예약할 수 있습니다.

  • 테이블이 N개의 작은 파일에 도달하면 빈 패킹 압축을 사용하여 작은 파일을 그룹화할 수 있습니다.

  • 테이블이 지정된 파티션에서 N개의 삭제 파일에 도달하면 빈 패킹 압축을 사용하여 삭제 파일을 병합할 수 있습니다.

  • 총 스토리지가 활성 스토리지보다 X배 많으면 스냅샷을 제거하여 이미 압축된 작은 파일을 제거합니다.