제퍼넷 로고

ETL 파이프라인에 대한 AWS Glue 데이터 품질 성능 측정 | 아마존 웹 서비스

시간

최근 몇 년 동안 데이터 레이크는 주류 아키텍처가 되었으며, 데이터 품질 검증은 데이터의 재사용성과 일관성을 향상시키는 중요한 요소입니다. AWS Glue 데이터 품질 데이터 검증에 필요한 노력을 며칠에서 몇 시간으로 줄이고 데이터 검증을 실행하는 데 필요한 리소스에 대한 컴퓨팅 권장 사항, 통계 및 통찰력을 제공합니다.

AWS Glue 데이터 품질은 다음을 기반으로 합니다. 디쿠는 데이터 품질 지표를 계산하고 데이터 품질 제약 조건과 데이터 분포의 변경 사항을 확인하기 위해 Amazon에서 개발 및 사용하는 오픈 소스 도구입니다. 따라서 알고리즘을 구현하는 대신 데이터가 어떻게 보이는지 설명하는 데 집중할 수 있습니다.

이 게시물에서는 사전 정의된 테스트 데이터 세트에 대해 점점 더 복잡해지는 데이터 품질 규칙 세트를 실행한 벤치마크 결과를 제공합니다. 결과의 일부로 AWS Glue 데이터 품질이 ETL(추출, 변환 및 로드) 작업의 런타임, DPU(데이터 처리 단위)로 측정된 리소스에 대한 정보를 제공하는 방법, 비용을 추적하는 방법을 보여줍니다. AWS Cost Explorer에서 사용자 지정 비용 보고를 정의하여 ETL 파이프라인용 AWS Glue 데이터 품질을 실행할 수 있습니다.

솔루션 개요

AWS Glue 데이터 품질이 입력 데이터 세트에 따라 자동으로 확장되는 방식을 탐색하기 위해 테스트 데이터 세트를 정의하는 것부터 시작합니다.

데이터세트 세부정보

테스트 데이터세트에는 Parquet 형식으로 저장된 104개의 열과 1만 개의 행이 포함되어 있습니다. 당신은 할 수 있습니다 데이터 세트 다운로드 또는 다음에 제공된 Python 스크립트를 사용하여 로컬로 다시 생성합니다. 저장소. 생성기 스크립트를 실행하려면 다음을 설치해야 합니다. 판다의태 Python 환경의 패키지:

pip install pandas mimesis

데이터 세트 스키마는 내장된 AWS Glue 데이터 품질 조합을 사용하기에 충분한 속성을 갖기 위해 숫자, 범주 및 문자열 변수의 조합입니다. 규칙 유형. 이 스키마는 상품 티커, 거래량, 가격 예측 등 금융 시장 데이터에서 발견되는 가장 일반적인 속성 중 일부를 복제합니다.

데이터 품질 규칙 세트

벤치마크 구조를 정의하기 위해 내장된 AWS Glue 데이터 품질 규칙 유형 중 일부를 분류합니다. 범주는 규칙이 행 수준 검사(간단한 규칙), 행별 분석(중간 규칙) 또는 데이터 유형 검사가 필요하지 않은 열 확인을 수행하는지 여부를 고려하여 결국 행 값을 다른 데이터 소스(복잡한 규칙)와 비교합니다. ). 다음 표에는 이러한 규칙이 요약되어 있습니다.

간단한 규칙 중간 규칙 복잡한 규칙
열 개수 고유값개수 열값
열데이터 유형 완료됨 완전성
열존재 합계 참조 무결성
열 이름 일치 패턴 표준 편차 열 상관관계
행 개수 Mean 행 개수 일치
열 길이 . .

우리는 데이터 품질 규칙 세트를 실행하는 8가지 AWS Glue ETL 작업을 정의합니다. 각 작업에는 이와 관련된 데이터 품질 규칙 수가 다릅니다. 각 직업에는 연관된 사용자 정의 비용 할당 태그 나중에 AWS Cost Explorer에서 데이터 품질 비용 보고서를 생성하는 데 사용됩니다.

다음 표에서는 각 규칙 세트에 대한 일반 텍스트 정의를 제공합니다.

직업 이름 간단한 규칙 중간 규칙 복잡한 규칙 규칙 수 꼬리표 정의
규칙 세트-0 0 0 0 0 dqjob:rs0 -
규칙 세트-1 0 0 1 1 dqjob:rs1 (링크)
규칙 세트-5 3 1 1 5 dqjob:rs5 (링크)
규칙 세트-10 6 2 2 10 dqjob:rs10 (링크)
규칙 세트-50 30 10 10 50 dqjob:rs50 (링크)
규칙 세트-100 50 30 20 100 dqjob:rs100 (링크)
규칙 세트-200 100 60 40 200 dqjob:rs200 (링크)
규칙 세트-400 200 120 80 400 dqjob:rs400 (링크)

데이터 품질 규칙 세트가 포함된 AWS Glue ETL 작업 생성

우리는 테스트 데이터 세트아마존 단순 스토리지 서비스 (Amazon S3) 및 AWS Glue 데이터 품질에서 참조 무결성 규칙을 평가하는 데 사용할 두 개의 추가 CSV 파일(isocodes.csvexchanges.csv)가 AWS Glue 데이터 카탈로그에 추가된 후입니다. 다음 단계를 완료하세요.

  1. Amazon S3 콘솔에서 계정에 새 S3 버킷을 생성하고 테스트 데이터 세트.
  2. S3 버킷에 다음과 같은 폴더를 만듭니다. isocodes 그리고 업로드 isocodes.csv 파일.
  3. exchange라는 S3 버킷에 또 다른 폴더를 생성하고 exchanges.csv 파일.
  4. AWS Glue 콘솔에서 각 폴더에 하나씩 두 개의 AWS Glue 크롤러를 실행하여 AWS Glue 데이터 카탈로그(data_quality_catalog). 지침은 다음을 참조하세요. AWS Glue 크롤러 추가.

AWS Glue 크롤러는 두 개의 테이블(exchangesisocodes)를 AWS Glue 데이터 카탈로그의 일부로 포함합니다.

AWS Glue 데이터 카탈로그

이제 우리는 AWS 자격 증명 및 액세스 관리 (나는) 역할 런타임 시 ETL 작업에 의해 가정됩니다.

  1. IAM 콘솔에서 다음과 같은 새 IAM 역할을 생성합니다. AWSGlueDataQualityPerformanceRole
  2. 럭셔리 신뢰할 수 있는 항목 유형, 고르다 AWS 서비스.
  3. 럭셔리 서비스 또는 사용 사례선택한다. 아교.
  4. 왼쪽 메뉴에서 다음 보기.

AWS IAM 신뢰 엔터티 선택

  1. 럭셔리 권한 정책, 입력 AWSGlueServiceRole
  2. 왼쪽 메뉴에서 다음 보기.
    AWS IAM 권한 정책 추가
  3. 새 인라인 정책을 생성하고 연결합니다(AWSGlueDataQualityBucketPolicy) 다음 내용으로 구성됩니다. 자리 표시자를 이전에 생성한 S3 버킷 이름으로 바꿉니다.
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": [
            "arn:aws:s3:::<your_Amazon_S3_bucket_name>/*"
          ]
        }
      ]
    }

다음으로 AWS Glue ETL 작업 중 하나를 생성합니다. ruleset-5.

  1. AWS Glue 콘솔의 ETL 작업 탐색 창에서 비주얼 ETL.
  2. . 직업 만들기 섹션 선택 비주얼 ETL.x
    AWS Glue Studio에서 사용 가능한 작업 개요
  3. 시각적 편집기에서 데이터 소스 – S3 버킷 소스 노드:
    1. 럭셔리 S3 URL, 테스트 데이터세트가 포함된 S3 폴더를 입력하세요.
    2. 럭셔리 데이터 형식선택한다. 나무 마루로.

    AWS Glue Studio의 Amazon S3 데이터 소스 개요

  4. 새로운 액션 노드를 생성하고, 변환: 평가-데이터-카탈로그:
  5. 럭셔리 노드 부모에서 생성한 노드를 선택합니다.
  6. 추가 규칙 세트-5 정의 아래에 규칙 세트 편집기.
    규칙 세트-5의 데이터 품질 규칙
  7. 끝과 아래로 스크롤 성능 구성, 활성화 데이터 캐쉬.

캐시 데이터 옵션 활성화

  1. $XNUMX Million 미만 직업 세부 정보에 대한 IAM 역할선택한다. AWSGlueDataQualityPerformanceRole.
    이전에 생성된 AWS IAM 역할 선택
  2. . 태그 섹션, 정의 dqjob 태그로 rs5.

이 태그는 데이터 품질 ETL 작업마다 다릅니다. AWS Cost Explorer에서 이를 사용하여 ETL 작업 비용을 검토합니다.

ruleset-5 작업에 대한 dqjob 태그 정의

  1. 왼쪽 메뉴에서 찜하기.
  2. 나머지 규칙 세트에 대해 이 단계를 반복하여 모든 ETL 작업을 정의합니다.

AWS Glue Studio에 정의된 작업 개요

AWS Glue ETL 작업 실행

ETL 작업을 실행하려면 다음 단계를 완료하세요.

  1. AWS Glue 콘솔에서 비주얼 ETL 아래에 ETL 작업 탐색 창에서
  2. ETL 작업을 선택하고 작업 실행.
  3. 모든 ETL 작업에 대해 반복합니다.

AWS Glue 작업 하나를 선택하고 오른쪽 상단에서 작업 실행을 선택합니다.

ETL 작업이 완료되면 작업 실행 모니터링 페이지에 작업 세부정보가 표시됩니다. 다음 스크린샷에 표시된 것처럼 DPU 시간 각 ETL 작업에 대해 열이 제공됩니다.

AWS Glue 작업 모니터링 개요

성능 검토

다음 표에는 동일한 테스트 데이터 세트에 대해 104개의 서로 다른 데이터 품질 규칙 세트를 실행하는 데 따른 기간, DPU 시간 및 예상 비용이 요약되어 있습니다. 모든 규칙 세트는 앞에서 설명한 전체 테스트 데이터 세트(1개 열, XNUMX만 행)를 사용하여 실행되었습니다.

ETL 작업 이름 규칙 수 꼬리표 지속 시간(초) DPU 시간 # DPU 수 비용 ($)
규칙 세트-400 400 dqjob:rs400 445.7 1.24 10 $0.54
규칙 세트-200 200 dqjob:rs200 235.7 0.65 10 $0.29
규칙 세트-100 100 dqjob:rs100 186.5 0.52 10 $0.23
규칙 세트-50 50 dqjob:rs50 155.2 0.43 10 $0.19
규칙 세트-10 10 dqjob:rs10 152.2 0.42 10 $0.18
규칙 세트-5 5 dqjob:rs5 150.3 0.42 10 $0.18
규칙 세트-1 1 dqjob:rs1 150.1 0.42 10 $0.18
규칙 세트-0 0 dqjob:rs0 53.2 0.15 10 $0.06

빈 규칙 세트를 평가하는 데 드는 비용은 3에 가깝지만, AWS Glue 데이터 품질 작업과 연결된 IAM 역할을 검증하고 Amazon S100의 테스트 데이터 세트에 대한 읽기 권한을 확인하는 빠른 테스트로 사용할 수 있기 때문에 포함되었습니다. 데이터 품질 작업 비용은 XNUMX개 이상의 규칙이 포함된 규칙 세트를 평가한 후에만 증가하기 시작하며 해당 숫자 이하에서는 일정하게 유지됩니다.

벤치마크에서 가장 큰 규칙 세트(400개 규칙)에 대해 데이터 품질을 실행하는 데 드는 비용이 여전히 0.50달러를 약간 넘는다는 것을 확인할 수 있습니다.

AWS Cost Explorer의 데이터 품질 비용 분석

AWS Cost Explorer에서 데이터 품질 ETL 작업 태그를 보려면 다음을 수행해야 합니다. 사용자 정의 비용 할당 태그 활성화 먼저.

사용자 정의 태그를 생성하고 리소스에 적용한 후 활성화를 위해 태그 키가 비용 할당 태그 페이지에 표시되는 데 최대 24시간이 걸릴 수 있습니다. 그런 다음 태그 키가 활성화되는 데 최대 24시간이 걸릴 수 있습니다.

  1. AWS에서 비용 탐색기 콘솔, 선택 비용 탐색기 저장된 보고서 탐색 창에서
  2. 왼쪽 메뉴에서 새 보고서 만들기.
    새로운 AWS Cost Explorer 보고서 생성
  3. 선택 비용 및 사용량 보고서 유형으로
  4. 왼쪽 메뉴에서 보고서 작성.
    새로운 AWS Cost Explorer 보고서 생성 확인
  5. 럭셔리 날짜 범위에서 날짜 범위를 입력하세요.
  6. 럭셔리 입상¸ 선택 매일.
  7. 럭셔리 외형 치수선택한다. 꼬리표, 다음을 선택하십시오. dqjob 꼬리표.
    AWS Cost Explorer에서 보고서 매개변수 선택
  8. $XNUMX Million 미만 적용된 필터을 선택하십시오 dqjob 태그와 데이터 품질 규칙 세트(rs0, rs1, rs5, rs10, rs50, rs100, rs200 및 rs400)에 사용되는 XNUMX개의 태그입니다.
    데이터 품질 AWS Glue 작업에 태그를 지정하는 데 사용되는 8개의 태그를 선택하세요.
  9. 왼쪽 메뉴에서 신청.

비용 및 사용량 보고서가 업데이트됩니다. X축에는 데이터 품질 규칙 세트 태그가 카테고리로 표시됩니다. 그만큼 비용 및 사용량 AWS Cost Explorer의 그래프는 ETL 작업별로 집계된 최신 데이터 품질 ETL 작업 실행의 총 월간 비용을 새로 고치고 표시합니다.

AWS Cost Explorer 보고서에는 데이터 품질 AWS Glue Studio 작업 실행과 관련된 비용이 표시됩니다.

정리

인프라를 정리하고 추가 비용을 피하려면 다음 단계를 완료하십시오.

  1. 테스트 데이터세트를 저장하기 위해 처음 생성된 S3 버킷을 비웁니다.
  2. AWS Glue에서 생성한 ETL 작업을 삭제합니다.
  3. 삭제 AWSGlueDataQualityPerformanceRole IAM 역할.
  4. AWS Cost Explorer에서 생성된 사용자 지정 보고서를 삭제합니다.

결론

AWS Glue 데이터 품질은 데이터 품질 검증을 ETL 파이프라인의 일부로 통합하고 증가하는 데이터 볼륨을 수용할 수 있도록 자동으로 확장하는 효율적인 방법을 제공합니다. 기본 제공 데이터 품질 규칙 유형은 데이터 품질 검사를 사용자 정의하고 획일적인 논리를 구현하는 대신 데이터가 어떻게 표시되어야 하는지에 집중할 수 있는 다양한 옵션을 제공합니다.

이 벤치마크 분석에서는 일반 크기의 AWS Glue 데이터 품질 규칙 세트에 오버헤드가 거의 또는 전혀 없는 반면, 복잡한 경우에는 비용이 선형적으로 증가한다는 사실을 보여주었습니다. 또한 빠른 보고를 위해 AWS Glue 데이터 품질 작업에 태그를 지정하여 AWS Cost Explorer에서 비용 정보를 사용할 수 있는 방법도 검토했습니다.

AWS Glue 데이터 품질은 일반적으로 이용 가능한 AWS Glue를 사용할 수 있는 모든 AWS 리전에서. AWS Glue 데이터 품질 및 AWS Glue 데이터 카탈로그에 대해 자세히 알아보십시오. AWS Glue 데이터 카탈로그에서 AWS Glue 데이터 품질 시작하기.


저자에 관하여


루벤 아폰소 프랑코스
루벤 아폰소 AWS의 글로벌 금융 서비스 솔루션 아키텍트입니다. 그는 자동화 및 최적화에 대한 열정을 갖고 분석 및 AI/ML 문제에 대한 작업을 즐깁니다. 일하지 않을 때 그는 바르셀로나 주변의 사람이 많이 모이는 숨겨진 장소를 찾는 것을 즐깁니다.


칼얀 쿠마르 닐람푸디(KK)
칼얀 쿠마르 닐람푸디(KK)
AWS의 전문 파트너 솔루션 아키텍트(데이터 분석 및 생성 AI)입니다. 그는 기술 고문으로 활동하며 다양한 AWS 파트너와 협력하여 데이터 분석 및 AI/ML 워크로드에 대한 사례를 설계, 구현 및 구축합니다. 직장 밖에서 그는 배드민턴 애호가이자 요리 모험가로서 현지 요리를 탐구하고 파트너와 함께 새로운 맛과 경험을 발견하기 위해 여행합니다.

곤잘로 헤레 로스
곤잘로 헤레 로스
AWS Glue 팀의 수석 빅 데이터 설계자입니다.

spot_img

최신 인텔리전스

spot_img