제퍼넷 로고

Amazon EMR 및 Apache Griffin을 사용하여 대규모 데이터 검증 자동화 | 아마존 웹 서비스

시간

많은 기업이 온프레미스 데이터 스토어를 AWS 클라우드로 마이그레이션하고 있습니다. 데이터 마이그레이션 중에 핵심 요구 사항은 소스에서 대상으로 이동된 모든 데이터의 유효성을 검사하는 것입니다. 이 데이터 검증은 중요한 단계이며 올바르게 수행되지 않으면 전체 프로젝트가 실패할 수 있습니다. 그러나 원본과 대상 간의 데이터를 비교하여 마이그레이션 정확성을 확인하기 위한 맞춤형 솔루션을 개발하는 데는 종종 시간이 많이 걸릴 수 있습니다.

이 게시물에서는 다음을 사용하는 구성 기반 도구를 사용하여 마이그레이션 후 대규모 데이터 세트를 검증하는 단계별 프로세스를 안내합니다. 아마존 EMR Apache Griffin 오픈 소스 라이브러리. Griffin은 일괄 모드와 스트리밍 모드를 모두 지원하는 빅데이터용 오픈소스 데이터 품질 솔루션입니다.

조직이 페타바이트 규모의 데이터를 처리하는 오늘날의 데이터 중심 환경에서는 자동화된 데이터 검증 프레임워크의 필요성이 점점 더 중요해지고 있습니다. 수동 검증 프로세스는 시간이 많이 걸릴 뿐만 아니라 특히 방대한 양의 데이터를 처리할 때 오류가 발생하기 쉽습니다. 자동화된 데이터 검증 프레임워크는 대규모 데이터 세트를 효율적으로 비교하고, 불일치를 식별하고, 규모에 따른 데이터 정확성을 보장함으로써 간소화된 솔루션을 제공합니다. 이러한 프레임워크를 통해 조직은 귀중한 시간과 리소스를 절약하는 동시에 데이터 무결성에 대한 확신을 유지할 수 있으므로 정보에 입각한 의사 결정이 가능하고 전반적인 운영 효율성이 향상됩니다.

다음은 이 프레임워크의 뛰어난 기능입니다.

  • 구성 기반 프레임워크를 활용합니다.
  • 원활한 통합을 위한 플러그 앤 플레이 기능 제공
  • 차이를 식별하기 위해 개수 비교를 수행합니다.
  • 강력한 데이터 검증 절차 구현
  • 체계적인 점검을 통한 데이터 품질 보장
  • 심층 분석을 위해 일치하지 않는 기록이 포함된 파일에 대한 액세스를 제공합니다.
  • 통찰력과 추적 목적을 위한 포괄적인 보고서를 생성합니다.

솔루션 개요

이 솔루션은 다음 서비스를 사용합니다.

  • 아마존 단순 스토리지 서비스 (Amazon S3) 또는 Hadoop 분산 파일 시스템(HDFS)을 소스 및 대상으로 사용합니다.
  • 아마존 EMR PySpark 스크립트를 실행합니다. 우리는 Griffin 위에 Python 래퍼를 사용하여 HDFS 또는 Amazon S3를 통해 생성된 Hadoop 테이블 간의 데이터를 검증합니다.
  • AWS 접착제 Griffin 작업의 결과를 저장하는 기술 테이블을 카탈로그화합니다.
  • 아마존 아테나 결과를 확인하기 위해 출력 테이블을 쿼리합니다.

소스 테이블과 타겟 테이블 각각의 개수를 저장하는 테이블을 사용하고, 소스와 타겟 사이의 레코드 차이를 보여주는 파일도 생성합니다.

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

건축_다이어그램

묘사된 아키텍처와 일반적인 데이터 레이크 사용 사례에서 데이터는 Amazon S3에 상주하거나 다음과 같은 복제 도구를 사용하여 온프레미스에서 Amazon S3로 마이그레이션됩니다. AWS 데이터싱크 or AWS 데이터베이스 마이그레이션 서비스 (AWS DMS). 이 솔루션은 Hive Metastore 및 AWS Glue 데이터 카탈로그와 원활하게 상호 작용하도록 설계되었지만 이 게시물에서는 데이터 카탈로그를 예로 사용합니다.

이 프레임워크는 Amazon EMR 내에서 작동하며 정의된 빈도에 따라 매일 예약된 작업을 자동으로 실행합니다. Amazon S3에서 보고서를 생성하고 게시한 후 Athena를 통해 액세스할 수 있습니다. 이 프레임워크의 주목할만한 기능은 일치하지 않는 전체 레코드가 포함된 파일을 Amazon S3에 생성하여 추가 분석을 용이하게 하는 것 외에도 개수 불일치 및 데이터 불일치를 감지하는 기능입니다.

이 예에서는 온프레미스 데이터베이스에 있는 세 개의 테이블을 사용하여 소스와 대상 간의 유효성을 검사합니다. balance_sheet, covidsurvery_financial_report.

사전 조건

시작하기 전에 다음 전제 조건이 있는지 확인하십시오.

솔루션 배포

쉽게 시작할 수 있도록 솔루션을 자동으로 구성하고 배포하는 CloudFormation 템플릿을 만들었습니다. 다음 단계를 완료하세요.

  1. AWS 계정에 S3 버킷을 생성합니다. bdb-3070-griffin-datavalidation-blog-${AWS::AccountId}-${AWS::Region} (AWS 계정 ID 및 AWS 리전 제공)
  2. 다음의 압축을 푼다 파일 로컬 시스템에.
  3. 로컬 시스템에 파일의 압축을 푼 후 다음을 변경하세요. 귀하의 계정에서 생성한 계정(bdb-3070-griffin-datavalidation-blog-${AWS::AccountId}-${AWS::Region}) 다음 파일에:
    1. bootstrap-bdb-3070-datavalidation.sh
    2. Validation_Metrics_Athena_tables.hql
    3. datavalidation/totalcount/totalcount_input.txt
    4. datavalidation/accuracy/accuracy_input.txt
  4. 로컬 폴더의 모든 폴더와 파일을 S3 버킷에 업로드합니다.
    aws s3 cp . s3://<bucket_name>/ --recursive

  5. 다음을 실행하십시오 CloudFormation 템플릿 귀하의 계정에.

CloudFormation 템플릿은 다음과 같은 데이터베이스를 생성합니다. griffin_datavalidation_blog 그리고 AWS Glue 크롤러는 griffin_data_validation_blog .zip 파일의 데이터 폴더 위에 있습니다.

  1. 왼쪽 메뉴에서 다음 보기.
    Cloudformation_template_1
  2. 왼쪽 메뉴에서 다음 보기 또.
  3. 검토 페이지, 선택 AWS CloudFormation이 사용자 지정 이름으로 IAM 리소스를 생성 할 수 있음을 인정합니다.
  4. 왼쪽 메뉴에서 스택 생성.

여러분의 시간과 재능으로 스택 출력보기 를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. AWS 관리 콘솔 또는 다음 AWS CLI 명령을 사용하여:

aws cloudformation describe-stacks --stack-name <stack-name> --region us-east-1 --query Stacks[0].Outputs

  1. AWS Glue 크롤러를 실행하고 데이터 카탈로그에 6개의 테이블이 생성되었는지 확인합니다.
  2. 다음을 실행하십시오 CloudFormation 템플릿 귀하의 계정에.

이 템플릿은 Griffin 관련 JAR 및 아티팩트를 복사하기 위한 부트스트랩 스크립트를 사용하여 EMR 클러스터를 생성합니다. 또한 세 가지 EMR 단계를 실행합니다.

  • 두 개의 Athena 테이블과 두 개의 Athena 뷰를 생성하여 Griffin 프레임워크에서 생성된 유효성 검사 매트릭스를 확인하세요.
  • 세 테이블 모두에 대해 개수 검증을 실행하여 소스 테이블과 대상 테이블을 비교합니다.
  • 세 테이블 모두에 대해 레코드 수준 및 열 수준 유효성 검사를 실행하여 원본 테이블과 대상 테이블을 비교합니다.
  1. 럭셔리 서브넷 ID, 서브넷 ID를 입력하세요.
  2. 왼쪽 메뉴에서 다음 보기.
    Cloudformation_template_2
  3. 왼쪽 메뉴에서 다음 보기 또.
  4. 검토 페이지, 선택 AWS CloudFormation이 사용자 지정 이름으로 IAM 리소스를 생성 할 수 있음을 인정합니다.
  5. 왼쪽 메뉴에서 스택 생성.

콘솔에서 또는 다음 AWS CLI 명령을 사용하여 스택 출력을 볼 수 있습니다.

aws cloudformation describe-stacks --stack-name <stack-name> --region us-east-1 --query Stacks[0].Outputs

배포가 완료되는 데 약 5분 정도 걸립니다. 스택이 완료되면 다음이 표시됩니다. EMRCluster 리소스가 시작되어 귀하의 계정에서 사용 가능합니다.

EMR 클러스터가 시작되면 클러스터 후 시작의 일부로 다음 단계를 실행합니다.

  • 부트스트랩 작업 – 이 프레임워크에 대한 Griffin JAR 파일과 디렉터리를 설치합니다. 또한 다음 단계에서 사용할 샘플 데이터 파일을 다운로드합니다.
  • Athena_Table_Creation – 결과 보고서를 읽기 위해 Athena에 테이블을 생성합니다.
  • 개수_검증 – 작업을 실행하여 Data Catalog 테이블의 원본 데이터와 대상 데이터 간의 데이터 수를 비교하고 결과를 S3 버킷에 저장합니다. 이 결과는 Athena 테이블을 통해 읽혀집니다.
  • 정확성 – 작업을 실행하여 Data Catalog 테이블의 원본 데이터와 대상 데이터 간의 데이터 행을 비교하고 결과를 S3 버킷에 저장합니다. 이 결과는 Athena 테이블을 통해 읽혀집니다.

Athena_table

EMR 단계가 완료되면 테이블 비교가 완료되고 Athena에서 자동으로 볼 수 있습니다. 검증을 위해 수동 개입이 필요하지 않습니다.

Python Griffin을 사용하여 데이터 유효성 검사

EMR 클러스터가 준비되고 모든 작업이 완료되면 개수 검증 및 데이터 검증이 완료되었음을 의미합니다. 결과는 Amazon S3에 저장되었으며 그 위에 Athena 테이블이 이미 생성되어 있습니다. 다음 스크린샷과 같이 Athena 테이블을 쿼리하여 결과를 볼 수 있습니다.

다음 스크린샷은 모든 테이블의 개수 결과를 보여줍니다.

요약_표

다음 스크린샷은 모든 테이블의 데이터 정확도 결과를 보여줍니다.

상세_보기

다음 스크린샷은 일치하지 않는 레코드가 있는 각 테이블에 대해 생성된 파일을 보여줍니다. 작업에서 직접 각 테이블에 대한 개별 폴더가 생성됩니다.

불일치_기록

모든 테이블 폴더에는 작업이 실행되는 각 날짜에 대한 디렉터리가 포함되어 있습니다.

S3_path_mismatched

해당 특정 날짜 내에 다음 이름의 파일이 __missRecords 일치하지 않는 레코드가 포함되어 있습니다.

S3_path_mismatched_2

다음 스크린 샷은 __missRecords 파일.

__missRecords

정리

추가 비용이 발생하지 않도록 하려면 솔루션을 완료한 후 다음 단계를 완료하여 리소스를 정리하세요.

  1. AWS Glue 데이터베이스 삭제 griffin_datavalidation_blog 그리고 데이터베이스를 삭제하세요 griffin_datavalidation_blog 종속.
  2. 버킷에서 생성한 접두사 및 객체를 삭제합니다. bdb-3070-griffin-datavalidation-blog-${AWS::AccountId}-${AWS::Region}.
  3. 추가 리소스를 제거하는 CloudFormation 스택을 삭제합니다.

결론

이 게시물에서는 Python Griffin을 사용하여 마이그레이션 후 데이터 검증 프로세스를 가속화하는 방법을 보여주었습니다. Python Griffin은 코드를 작성하지 않고도 개수, 행 및 열 수준 유효성 검사를 계산하여 일치하지 않는 레코드를 식별하는 데 도움이 됩니다.

데이터 품질 사용 사례에 대한 자세한 내용은 다음을 참조하세요. AWS Glue 데이터 카탈로그에서 AWS Glue 데이터 품질 시작하기AWS Glue 데이터 품질.


저자에 관하여

디팔 마하잔 Amazon Web Services의 수석 컨설턴트로 활동하며 매우 안전하고 확장 가능하며 안정적이고 비용 효율적인 클라우드 애플리케이션을 개발하는 데 있어 글로벌 고객에게 전문적인 지침을 제공합니다. 금융, 통신, 소매, 의료 등 다양한 분야의 소프트웨어 개발, 아키텍처 및 분석에 대한 풍부한 경험을 바탕으로 그는 자신의 역할에 귀중한 통찰력을 제공합니다. 전문적인 영역 외에도 Dipal은 자신의 희망 목록에 있는 14개국 중 30개국을 이미 방문한 경험이 있어 새로운 목적지를 탐험하는 것을 즐깁니다.

아킬 AWS Professional Services의 수석 컨설턴트입니다. 그는 고객이 확장 가능한 데이터 분석 솔루션을 설계 및 구축하고 데이터 파이프라인과 데이터 웨어하우스를 AWS로 마이그레이션하도록 돕습니다. 여가 시간에는 여행, 게임, 영화 감상을 좋아합니다.

라메쉬 라구파티 AWS에서 WWCO ProServe의 선임 데이터 설계자입니다. 그는 AWS 고객과 협력하여 AWS 클라우드의 데이터 웨어하우스 및 데이터 레이크를 설계, 배포 및 마이그레이션합니다. 일을 하지 않는 동안 Ramesh는 여행, 가족과 시간 보내기, 요가를 즐깁니다.

spot_img

최신 인텔리전스

spot_img