제퍼넷 로고

AWS Glue 데이터 카탈로그 열 수준 통계를 사용하여 쿼리 성능 향상 | 아마존 웹 서비스

시간

오늘 우리는 AWS 접착제 데이터 카탈로그 AWS Glue 테이블에 대한 열 수준 통계를 생성할 수 있습니다. 이러한 통계는 이제 비용 기반 최적화 도구(CBO)와 통합되었습니다. 아마존 아테나 아마존 적색편이 스펙트럼, 결과적으로 쿼리 성능이 향상되고 비용이 절감될 수 있습니다.

데이터 레이크는 방대한 양의 원시, 비정형 또는 반정형 데이터를 저렴한 비용으로 저장하도록 설계되었으며, 조직은 이러한 데이터 세트를 여러 부서와 팀에서 공유합니다. 이러한 대규모 데이터세트에 대한 쿼리는 방대한 양의 데이터를 읽고 여러 데이터세트에 대해 복잡한 조인 작업을 수행할 수 있습니다. 고객과 대화하면서 우리는 데이터 레이크 성능의 어려운 측면 중 하나가 이러한 분석 쿼리를 최적화하여 더 빠르게 실행하는 방법이라는 것을 알게 되었습니다.

데이터 레이크 성능 최적화는 다중 조인이 포함된 쿼리에 특히 중요하며 비용 기반 최적화 프로그램이 가장 큰 도움이 되는 부분입니다. CBO가 작동하려면 데이터 변경에 따라 열 통계를 수집하고 업데이트해야 합니다. AWS Glue 테이블의 Parquet, ORC, JSON, Amazon ION, CSV, XML과 같은 파일에 대해 고유 수, Null 수, 최대 및 최소와 같은 열 수준 통계를 생성하는 기능을 출시합니다. 이번 출시로 이제 고객은 Glue 테이블에 대한 통계가 수집되어 AWS Glue 카탈로그에 저장되고 향상된 쿼리 계획 및 실행을 위해 분석 서비스에 제공되는 통합된 엔드 투 엔드 환경을 갖게 되었습니다.

비용 기반 최적화 프로그램은 이러한 통계를 사용하여 쿼리 실행 계획을 개선하고 Amazon Athena 및 Amazon Redshift Spectrum에서 실행되는 쿼리 성능을 향상시킵니다. 예를 들어 CBO는 고유 값 수, Null 수와 같은 열 통계를 사용하여 행 예측을 향상할 수 있습니다. 행 예측은 쿼리 계획 단계 중 특정 단계에서 반환될 테이블의 행 수입니다. 행 예측이 정확할수록 쿼리 실행 단계는 더욱 효율적입니다. 이로 인해 쿼리 실행 속도가 빨라지고 잠재적으로 비용이 절감됩니다. CBO가 사용할 수 있는 특정 최적화에는 각 테이블과 열에 사용 가능한 통계를 기반으로 하는 조인 재정렬 및 ​​집계 푸시다운이 포함됩니다.

이용하시는 고객님께 데이터 메쉬AWS Lake 형성 권한이 없으면 다양한 데이터 생산자의 테이블이 중앙 집중식 거버넌스 계정에 분류됩니다. 중앙 집중식 카탈로그의 테이블에 대한 통계를 생성하고 해당 테이블을 소비자와 공유하면 소비자 계정의 해당 테이블에 대한 쿼리가 자동으로 쿼리 성능이 향상됩니다. 이 게시물에서는 샘플 테이블에 대한 열 통계를 생성하는 AWS Glue 데이터 카탈로그의 기능을 시연해 보겠습니다.

솔루션 개요

이 기능의 효율성을 입증하기 위해 Amazon Simple Storage Service(아마존 S3) 공개 버킷. Amazon Athena 및 Amazon Redshift Spectrum에서 쿼리를 실행하여 테이블에 대한 열 통계를 생성하기 전과 후의 쿼리 성능을 비교해 보겠습니다. 이 게시물에서 사용한 쿼리를 제공하고 있으며 다음 세부 정보에 설명된 워크플로에 따라 자체 쿼리를 시도해 보는 것이 좋습니다.

워크플로는 다음과 같은 상위 수준 단계로 구성됩니다.

  1. Amazon S3 버킷 목록 작성: AWS Glue Crawler를 활용하여 지정된 Amazon S3 버킷을 크롤링하고, 메타데이터를 추출하고, 이를 AWS Glue 데이터 카탈로그에 원활하게 저장합니다. Amazon Athena 및 Amazon Redshift Spectrum을 사용하여 이러한 테이블을 쿼리하겠습니다.
  2. 열 통계 생성: AWS Glue 데이터 카탈로그의 향상된 기능을 사용하여 크롤링된 데이터에 대한 포괄적인 열 통계를 생성함으로써 데이터 세트에 대한 귀중한 통찰력을 제공합니다.
  3. Amazon Athena 및 Amazon Redshift Spectrum을 사용한 쿼리: Amazon Athena 및 Amazon Redshift Spectrum을 활용하여 데이터 세트에 대한 쿼리를 실행함으로써 쿼리 성능에 대한 열 통계의 영향을 평가합니다.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

연습

솔루션을 구현하기 위해 다음 단계를 완료합니다.

  1. 리소스 설정 AWS 클라우드 포메이션.
  2. 퍼블릭 Amazon S3 버킷에서 AWS Glue Crawler를 실행하여 3TB TPC-DS 데이터 세트를 나열합니다.
  3. Amazon Athena 및 Amazon Redshift에서 쿼리를 실행하고 쿼리 기간을 기록해 둡니다.
  4. AWS Glue 데이터 카탈로그 테이블에 대한 통계 생성
  5. Amazon Athena 및 Amazon Redshift에서 쿼리를 실행하고 쿼리 기간을 이전 실행과 비교
  6. 선택 사항: AWS Lambda 및 Amazon EventBridge Scheduler를 사용하여 AWS Glue 열 통계 작업 예약

AWS CloudFormation으로 리소스 설정

이 게시물에는 AWS 클라우드 포메이션 빠른 설정을 위한 템플릿입니다. 필요에 맞게 검토하고 맞춤설정할 수 있습니다. 템플릿은 다음 리소스를 생성합니다.

  • Amazon Virtual Private Cloud(아마존 VPC), 퍼블릭 서브넷, 프라이빗 서브넷 및 라우팅 테이블.
  • Amazon Redshift Serverless 작업 그룹 및 네임스페이스.
  • 퍼블릭 Amazon S3 버킷을 크롤링하고 TPC-DS 데이터 세트용 Glue 데이터 카탈로그용 테이블을 생성하는 AWS Glue 크롤러
  • AWS Glue 카탈로그 데이터베이스 및 테이블
  • Athena 결과를 저장하기 위한 Amazon S3 버킷.
  • AWS 자격 증명 및 액세스 관리 (AWS IAM) 사용자 및 정책.
  • AWS Glue 열 통계를 예약하기 위한 AWS Lambda 및 Amazon Event Bridge 스케줄러

AWS CloudFormation 스택을 시작하려면 다음 단계를 완료하십시오.

주의 사항: AWS Glue 데이터 카탈로그 테이블은 퍼블릭 버킷을 사용하여 생성됩니다. s3://blogpost-sparkoneks-us-east-1/blog/BLOG_TPCDS-TEST-3T-partitioned/, 호스팅 us-east-1 지역. 이 AWS CloudFormation 템플릿을 다른 지역에 배포하려는 경우 Amazon Redshift에서 액세스할 수 있도록 데이터를 해당 지역에 복사하거나 배포된 지역 내에서 데이터를 공유해야 합니다.

  1. 에 로그인 AWS 관리 콘솔 AWS ID 및 액세스 관리(AWS IAM) 관리자.
  2. AWS CloudFormation 템플릿을 배포하려면 Launch Stack을 선택합니다.
  3. 왼쪽 메뉴에서 다음 보기.
  4. 다음 페이지에서 모든 옵션을 기본값으로 유지하거나 요구 사항에 따라 적절하게 변경하십시오. 다음 보기.
  5. 마지막 페이지에서 세부 정보를 검토하고 AWS CloudFormation이 IAM 리소스를 생성 할 수 있음을 인정합니다.
  6. 왼쪽 메뉴에서 만들기.

이 스택을 완료하는 데 약 10분이 걸릴 수 있으며 그 후에 AWS CloudFormation 콘솔에서 배포된 스택을 볼 수 있습니다.

AWS CloudFormation 스택에서 생성된 AWS Glue 크롤러 실행

크롤러를 실행하려면 다음 단계를 완료하세요.

  1. AWS Glue 콘솔에서 AWS Glue 콘솔, 탐색 창의 데이터 카탈로그에서 크롤러를 선택합니다.
  2. 두 개의 크롤러를 찾아 실행합니다. tpcdsdb-without-statstpcdsdb-with-stats. 완료하는 데 몇 분 정도 걸릴 수 있습니다.

크롤러가 성공적으로 완료되면 두 개의 동일한 데이터베이스가 생성됩니다. tpcdsdbnostatstpcdsdbwithstats. 테이블은 tpcdsdbnostats 통계가 없으며 이를 참조로 사용하겠습니다. 우리는 테이블에 대한 통계를 생성합니다. tpcdsdbwithstats. AWS Glue 콘솔에 두 개의 데이터베이스와 기본 테이블이 있는지 확인하십시오. tpcdsdbnostats 데이터베이스는 아래와 같습니다. 현재 이 테이블에는 통계가 생성되지 않습니다.

통계가 없는 테이블에서 Amazon Athena를 사용하여 제공된 쿼리 실행

통계 없이 테이블에 대해 Amazon Athena에서 쿼리를 실행하려면 다음 단계를 완료하십시오.

  1. 다음에서 Athena 쿼리를 다운로드하세요. 여기를 클릭해 문의해주세요.
  2. 아마존에서 Athena 콘솔, 데이터베이스의 테이블에 대해 한 번에 하나씩 제공된 쿼리를 선택하십시오. tpcdsdbnostats.
  3. 쿼리를 실행하고 메모해 두세요. 런타임 각 쿼리에 대해.

통계가 없는 테이블에서 Amazon Redshift Spectrum을 사용하여 제공된 쿼리 실행

Amazon Redshift에서 쿼리를 실행하려면 다음 단계를 완료하십시오.

  1. 다음에서 Amazon Redshift 쿼리를 다운로드하세요. 여기에서 지금 확인해 보세요..
  2. Redshift 쿼리 편집기 v2, 실행 통계가 없는 테이블에 대한 Redshift 쿼리 다운로드한 쿼리의 섹션입니다.
  3. 쿼리를 실행하고 각 쿼리의 쿼리 실행을 기록해 둡니다.

AWS Glue 카탈로그 테이블에 대한 통계 생성

AWS Glue 카탈로그 테이블에 대한 통계를 생성하려면 다음 단계를 완료하십시오.

  1. 로 이동 AWS Glue 콘솔 아래에서 데이터베이스를 선택합니다. 데이터 카탈로그.
  2. 를 클릭하십시오 tpcdsdbwithstats 데이터베이스를 사용하면 사용 가능한 모든 테이블이 나열됩니다.
  3. 다음 테이블 중 하나를 선택합니다(예: call_center).
  4. We Buy Orders 신청서를 클릭하세요. 열 통계 – 신규 탭하고 선택 통계를 생성합니다.
  5. 기본 옵션을 유지하세요. 아래에 열 선택 유지 테이블(모든 열) 이하 행 샘플링 옵션 유지 모든 행, 아래에 IAM 역할 선택 AWSGluestats-블로그 선택 통계를 생성합니다.

다음 그림과 같이 통계 생성 실행 상태를 볼 수 있습니다.

AWS Glue Catalog 테이블에 대한 통계를 생성한 후에는 해당 테이블에 대한 자세한 열 통계를 볼 수 있습니다.

2~5단계를 반복하여 다음과 같은 필요한 모든 테이블에 대한 통계를 생성합니다. catalog_sales, catalog_returns, warehouse, item, date_dim, store_sales, customer, customer_address, web_sales, time_dim, ship_mode, web_site, web_returns. 또는 "AWS Glue 통계 실행 예약” 섹션을 참조하여 모든 테이블에 대한 통계를 생성하세요. 완료되면 각 쿼리에 대한 쿼리 성능을 평가합니다.

통계 테이블에서 Athena 콘솔을 사용하여 제공된 쿼리 실행

  1. 아마존에서 아테나 콘솔, 실행 통계가 있는 테이블에 대한 Athena 쿼리 다운로드한 쿼리의 섹션입니다.
  2. 각 쿼리의 쿼리 실행을 실행하고 기록해 둡니다.

테이블에 대한 샘플 쿼리 실행에서 아래 표에 따라 쿼리 실행 시간을 관찰했습니다. 쿼리 성능이 13~55% 범위로 확실히 개선되었습니다.

Athena 쿼리 시간 개선

TPC-DS 3T 쿼리 글루 통계 없음(초) 글루 통계 포함(초) 성능 개량 (%)
쿼리 2 33.62 15.17 55%
쿼리 4 132.11 72.94 45%
쿼리 14 134.77 91.48 32%
쿼리 28 55.99 39.36 30%
쿼리 38 29.32 25.58 13%

통계 테이블에서 Amazon Redshift Spectrum을 사용하여 제공된 쿼리 실행

  1. 아마존에서 Redshift 쿼리 편집기 v2, 실행 통계가 있는 테이블에 대한 Redshift 쿼리 다운로드한 쿼리의 섹션입니다.
  2. 쿼리를 실행하고 각 쿼리의 쿼리 실행을 기록해 둡니다.

테이블에 대한 샘플 쿼리 실행에서 아래 표에 따라 쿼리 실행 시간을 관찰했습니다. 쿼리 성능이 13~89% 범위로 확실히 개선되었습니다.

Amazon Redshift Spectrum 쿼리 시간 개선

TPC-DS 3T 쿼리 글루 통계 없음(초) 글루 통계 포함(초) 성능 개량 (%)
쿼리 40 124.156 13.12 89%
쿼리 60 29.52 16.97 42%
쿼리 66 18.914 16.39 13%
쿼리 95 308.806 200 35%
쿼리 99 20.064 16 20%

AWS Glue 통계 실행 예약

게시물의 이 부분에서는 다음을 사용하여 AWS Glue 열 통계 실행을 예약하는 단계를 안내합니다. AWS 람다 그리고 아마존 이벤트 브리지 스케줄러. 이 프로세스를 간소화하기 위해 AWS Lambda 함수와 Amazon EventBridge 스케줄러가 CloudFormation 스택 배포의 일부로 생성되었습니다.

  1. AWS Lambda 함수 설정:

시작하려면 AWS Lambda 함수를 활용하여 AWS Glue 열 통계 작업 실행을 트리거합니다. AWS Lambda 함수는 다음을 호출합니다. start_column_statistics_task_run boto3(Python용 AWS SDK) 라이브러리를 통한 API입니다. 이는 열 통계 업데이트를 자동화하기 위한 기반을 설정합니다.

AWS Lambda 함수를 살펴보겠습니다.

    • 로 이동 AWS Glue Lambda 콘솔.
    • 선택 기능 그리고 GlueTableStatisticsFunctionv1.
    • AWS Lambda 함수를 보다 명확하게 이해하려면 다음의 코드를 검토하는 것이 좋습니다. 암호 섹션에서 환경 변수를 검사합니다. 구성.
  1. Amazon EventBridge 스케줄러 구성

다음 단계에는 Amazon을 사용하여 AWS Lambda 함수 호출을 예약하는 작업이 포함됩니다. EventBridge 스케줄러. 스케줄러는 매일 특정 시간(이 경우 오후 08시)에 AWS Lambda 함수를 트리거하도록 구성됩니다. 이렇게 하면 AWS Glue 열 통계 작업이 정기적이고 예측 가능한 방식으로 실행됩니다.

이제 일정을 업데이트하는 방법을 살펴보겠습니다.

청소

AWS 계정에 원치 않는 비용이 청구되지 않도록 하려면 AWS 리소스를 삭제하십시오.

  1. AWS CloudFormation 스택 생성에 사용된 AWS IAM 관리자로 AWS CloudFormation 콘솔에 로그인합니다.
  2. 생성한 AWS CloudFormation 스택을 삭제합니다.

결론

이번 포스팅에서는 어떻게 사용할 수 있는지 보여드렸습니다. AWS Glue 데이터 카탈로그 열 수준 통계를 생성하려면 AWS 접착제 테이블. 이러한 통계는 이제 비용 기반 최적화 프로그램과 통합되었습니다. 아마존 아테나 아마존 적색편이 스펙트럼, 결과적으로 쿼리 성능이 향상되고 잠재적인 비용 절감 효과가 있습니다. 인용하다 기술 문서 다양한 AWS 분석 서비스 전반에 걸쳐 Glue 카탈로그 통계를 지원합니다.

질문이나 제안이 있으면 의견 섹션에 제출하십시오.


저자에 관하여

산딥 아드완카르 AWS의 수석 기술 제품 관리자입니다. 캘리포니아 베이 지역에 기반을 두고 있는 그는 전 세계 고객과 협력하여 비즈니스 및 기술 요구 사항을 제품으로 변환하여 고객이 데이터를 관리, 보호 및 액세스하는 방법을 개선할 수 있도록 합니다.

나브니트 슈클라 분석에 중점을 둔 AWS 전문가 솔루션 아키텍트로 활동하고 있습니다. 그는 고객이 데이터에서 귀중한 통찰력을 발견하도록 지원하는 데 강한 열정을 가지고 있습니다. 그는 전문 지식을 통해 기업이 정보에 입각한 데이터 중심 선택에 도달할 수 있도록 지원하는 혁신적인 솔루션을 구축합니다. 특히 Navnit Shukla는 Data Wrangling on AWS라는 책의 뛰어난 저자입니다. 그는 다음을 통해 연락할 수 있습니다. 링크드인.

spot_img

VC 카페

라이프사이VC

최신 인텔리전스

spot_img