ETL 테스트 튜토리얼
ETL 테스트란 무엇입니까?
ETL 테스트는 비즈니스 전환 후 원본에서 대상으로 로드된 데이터가 정확한지 확인하기 위해 수행됩니다. 또한 소스와 대상 사이에 사용되는 다양한 중간 단계에서 데이터를 검증하는 작업도 포함됩니다. ETL은 추출-변환-로드를 나타냅니다.
데이터 웨어하우스 테스트
데이터 웨어하우스 테스트 회사의 데이터 프레임워크를 준수하기 위해 데이터 웨어하우스 내부의 데이터에 대한 무결성, 신뢰성, 정확성 및 일관성을 테스트하는 테스트 방법입니다. 데이터 웨어하우스 테스트의 주요 목적은 데이터 웨어하우스 내부의 통합 데이터가 회사에서 의사 결정을 내릴 수 있을 만큼 신뢰할 수 있는지 확인하는 것입니다.
ETL이란 무엇입니까?
ETL은 Extract-Transform-Load의 약자로 소스 시스템에서 데이터 웨어하우스로 데이터를 로드하는 과정을 말합니다. 데이터는 OLTP 데이터베이스에서 추출되어 데이터 웨어하우스 스키마와 일치하도록 변환되고 데이터 웨어하우스 데이터베이스에 로드됩니다. 많은 데이터 웨어하우스에는 텍스트 파일, 레거시 시스템, 스프레드시트 등 OLTP가 아닌 시스템의 데이터도 통합되어 있습니다.
어떻게 작동하는지 보자
예를 들어 영업, 마케팅, 물류 등 다양한 부서로 구성된 소매점이 있습니다. 각 부서는 고객 정보를 독립적으로 처리하며 해당 데이터를 저장하는 방식도 상당히 다릅니다. 영업부에서는 고객 이름으로, 마케팅 부서에서는 고객 ID로 저장해 두었습니다.
이제 고객의 구매 이력을 확인하고 다양한 마케팅 캠페인에 따라 어떤 제품을 구매했는지 알고 싶어한다면, 매우 지루할 것입니다.
해결책은 데이터웨어 하우스 ETL을 사용하여 다양한 소스의 정보를 균일한 구조로 저장합니다. ETL은 서로 다른 데이터 세트를 통합된 구조로 변환할 수 있습니다.Later BI 도구를 사용하여 이 데이터에서 의미 있는 통찰력과 보고서를 도출하세요.
이 ETL 테스트 튜토리얼의 다음 다이어그램은 ETL 테스트 프로세스 흐름과 다양한 ETL 테스트 개념의 로드맵을 제공합니다.
- 발췌
- 관련 데이터 추출
- 변환
- 데이터를 DW(Data Warehouse) 형식으로 변환
- 빌드 키 – 키는 엔터티를 고유하게 식별하는 하나 이상의 데이터 속성입니다. 다양한 키 유형 기본키, 대체키, 외래키, 복합키, 대리키가 있습니다. 데이터웨어하우스는 이러한 키를 소유하며 다른 주체가 이를 할당하는 것을 절대 허용하지 않습니다.
- 데이터 정리 : 데이터가 추출된 후 데이터 정리 및 일치의 다음 단계로 이동합니다. 정리는 데이터의 누락뿐만 아니라 오류를 식별하고 수정하는 작업도 수행합니다. 준수란 호환되지 않는 데이터 간의 충돌을 해결하여 엔터프라이즈 데이터 웨어하우스에서 사용할 수 있음을 의미합니다. 이 외에도 소스 시스템의 문제를 진단하고 데이터 품질을 향상시키는 데 사용되는 메타데이터를 생성합니다.
- 하중
- DW(Data Warehouse)에 데이터 로드
- 집계 구축 – 집계를 만드는 것은 사용 가능한 데이터를 요약하고 저장하는 것입니다. 사실 테이블 최종 사용자 쿼리의 성능을 향상시키기 위해.
ETL 테스트 프로세스
다른 테스트 프로세스와 유사하게 ETL도 다른 단계를 거칩니다. ETL 테스트 프로세스의 여러 단계는 다음과 같습니다.
ETL 테스트는 XNUMX단계로 수행됩니다.
- 데이터 소스 및 요구 사항 식별
- 데이터 수집
- 비즈니스 로직 및 차원 모델링 구현
- 데이터 구축 및 채우기
- 보고서 작성
ETL 테스트 유형
테스트 유형 | 테스트 프로세스 |
---|---|
생산 검증 테스트 | "테이블 밸런싱" 또는 "프로덕션 조정" 이러한 유형의 ETL 테스트는 데이터가 프로덕션 시스템으로 이동되는 동안 데이터에 대해 수행됩니다. 비즈니스 결정을 지원하려면 프로덕션 시스템의 데이터가 올바른 순서로 되어 있어야 합니다. 정보학 데이터 검증 옵션은 생산 시스템이 데이터로 인해 손상되지 않도록 ETL 테스트 자동화 및 관리 기능을 제공합니다. |
소스 대상 Target 테스트(검증 테스트) | 이러한 유형의 테스트는 변환된 데이터 값이 예상 데이터 값인지 검증하기 위해 수행됩니다. |
어플리케이션 Upgrades | 이러한 유형의 ETL 테스트는 자동으로 생성될 수 있으므로 테스트 개발 시간이 크게 절약됩니다. 이러한 유형의 테스트는 이전 애플리케이션이나 저장소에서 추출된 데이터가 저장소나 새 애플리케이션의 데이터와 정확히 동일한지 확인합니다. |
메타데이터 테스트 | 메타데이터 테스트에는 데이터 유형 확인, 데이터 길이 확인 및 인덱스/제약 조건 확인 테스트가 포함됩니다. |
데이터 완전성 테스트 | 예상되는 모든 데이터가 소스에서 타겟에 로드되는지 확인하기 위해 데이터 완전성 테스트가 수행됩니다. 실행할 수 있는 테스트 중 일부는 단순 변환 또는 변환이 없는 열의 소스와 대상 간의 개수, 집계 및 실제 데이터를 비교하고 검증하는 것입니다. |
데이터 정확성 테스트 | 이 테스트는 데이터가 예상대로 정확하게 로드되고 변환되는지 확인하기 위해 수행됩니다. |
데이터 변환 테스트 | 많은 경우 하나의 소스를 작성하는 것만으로는 달성할 수 없기 때문에 데이터 변환 테스트가 수행됩니다. SQL 쿼리하고 출력을 대상과 비교합니다. 변환 규칙을 확인하려면 각 행에 대해 여러 SQL 쿼리를 실행해야 할 수도 있습니다. |
데이터 품질 테스트 | 데이터 품질 테스트에는 구문 및 참조 테스트가 포함됩니다. 비즈니스 프로세스 중 날짜 또는 주문 번호로 인한 오류를 방지하기 위해 데이터 품질 테스트가 수행됩니다.
구문 테스트: 잘못된 문자, 문자 패턴, 잘못된 대문자 또는 소문자 순서 등을 기반으로 더티 데이터를 보고합니다. 참조 테스트: 데이터 모델에 따라 데이터를 확인합니다. 예: 고객 ID 데이터 품질 테스트에는 숫자 확인, 날짜 확인, 정밀도 확인, 데이터 확인, Null 확인 등이 포함됩니다. |
증분 ETL 테스트 | 이 테스트는 새 데이터를 추가하여 이전 데이터와 새 데이터의 데이터 무결성을 확인하기 위해 수행됩니다. 증분 테스트는 증분 ETL 프로세스 중에 삽입 및 업데이트가 예상대로 처리되고 있는지 확인합니다. |
GUI/내비게이션 테스트 | 이 테스트는 프런트 엔드 보고서의 탐색 또는 GUI 측면을 확인하기 위해 수행됩니다. |
ETL 테스트 케이스를 만드는 방법
ETL 테스트는 정보 관리 산업의 다양한 도구와 데이터베이스에 적용할 수 있는 개념입니다. ETL 테스트의 목적은 비즈니스 변환 후 소스에서 대상으로 로드된 데이터가 정확한지 확인하는 것입니다. 또한 소스와 대상 사이에 사용되는 다양한 중간 단계에서 데이터를 검증하는 작업도 포함됩니다.
ETL 테스트를 수행하는 동안 ETL 테스터가 항상 사용하는 두 가지 문서는
- ETL 매핑 시트:ETL 매핑 시트에는 참조 테이블의 모든 열과 해당 조회를 포함하여 원본 및 대상 테이블의 모든 정보가 포함됩니다. ETL 테스트에는 ETL의 모든 단계에서 데이터를 검증하기 위해 여러 조인이 포함된 대규모 쿼리 작성이 포함될 수 있으므로 ETL 테스터는 SQL 쿼리에 익숙해야 합니다. ETL 매핑 시트는 데이터 확인을 위한 쿼리를 작성하는 동안 중요한 도움을 제공합니다.
- 소스의 DB 스키마, Target: 매핑 시트의 세부 사항을 확인하기 위해 편리하게 보관해야 합니다.
ETL 테스트 시나리오 및 테스트 사례
테스트 시나리오 | 테스트 케이스 |
---|---|
매핑 문서 유효성 검사 | 해당 ETL 정보가 제공되는지 매핑 문서를 확인합니다. 변경 로그는 모든 매핑 문서에서 유지되어야 합니다. |
검증 |
|
제약조건 검증 | 예상대로 특정 테이블에 대한 제약 조건이 정의되었는지 확인하세요. |
데이터 일관성 문제 |
|
완전성 문제 |
|
정확성 문제 |
|
변환 | 변환 |
데이터 품질 |
|
Null 검증 | 특정 열에 "Not Null"이 지정된 Null 값을 확인합니다. |
중복 확인 |
|
날짜 검증 | 날짜 값은 ETL 개발에서 많은 영역을 사용합니다.
|
완전한 데이터 검증 |
|
데이터 청결성 | 불필요한 열은 준비 영역에 로드하기 전에 삭제해야 합니다. |
ETL 버그 유형
버그 유형 | 상품 설명 |
---|---|
사용자 인터페이스 버그/외관 버그 |
|
BVA(경계값 분석) 관련 버그 |
|
ECP(동등 클래스 파티셔닝) 관련 버그 |
|
입출력 버그 |
|
계산 버그 |
|
로드 조건 버그 |
|
경쟁 조건 버그 |
|
버전 관리 버그 |
|
하드웨어 버그 |
|
도움말 소스 버그 |
|
데이터베이스 테스트와 ETL 테스트의 차이점
ETL 테스트 | 데이터베이스 테스트 |
---|---|
데이터가 예상대로 이동되었는지 확인합니다. | 주요 목표는 데이터가 데이터 모델에 정의된 규칙/표준을 따르는지 확인하는 것입니다. |
소스와 대상의 개수가 일치하는지 확인합니다.
변환된 데이터가 예상대로인지 확인합니다. |
고아 레코드가 없고 외래-기본 키 관계가 유지되는지 확인 |
ETL 중에 외래 기본 키 관계가 유지되는지 확인합니다. | 중복 테이블이 없고 데이터베이스가 최적으로 정규화되었는지 확인합니다. |
로드된 데이터의 중복 여부를 확인합니다. | 필요한 열에 데이터가 누락되었는지 확인 |
ETL 테스터의 책임
ETL 테스터의 주요 책임은 세 가지 범주로 분류됩니다.
- 스테이지 테이블/SFS 또는 MFS
- 비즈니스 혁신 로직 적용
- Target 변환 적용 후 스테이지 파일 또는 테이블에서 테이블을 로드합니다.
ETL 테스터의 책임 중 일부는 다음과 같습니다.
- ETL 소프트웨어 테스트
- ETL 데이터웨어하우스의 테스트 구성요소
- 백엔드 데이터 기반 테스트 실행
- 생성, 설계 및 실행 테스트 케이스, 테스트 계획 및 테스트 하니스
- 문제를 식별하고 잠재적인 문제에 대한 솔루션을 제공합니다.
- 요구사항 및 설계 사양 승인
- 데이터 전송 및 테스트 플랫 파일
- 카운트 테스트와 같은 다양한 시나리오에 대한 SQL 쿼리 작성3
ETL의 성능 테스트
ETL의 성능 테스트 ETL 시스템이 여러 사용자 및 트랜잭션의 로드를 처리할 수 있는지 확인하는 테스트 기술입니다. ETL의 주요 목표 성능 시험 성능 병목 현상을 식별하고 제거하여 세션 성능을 최적화하고 개선하는 것입니다. 소스 및 대상 데이터베이스, 매핑, 세션 및 시스템에 성능 병목 현상이 있을 수 있습니다.
성능 테스트/조정에 사용되는 최고의 도구 중 하나는 Informatica입니다.
ETL 테스트 자동화
ETL 테스트의 일반적인 방법론은 SQL 스크립팅을 사용하거나 데이터를 "감시"하는 것입니다. ETL 테스트에 대한 이러한 접근 방식은 시간이 많이 걸리고 오류가 발생하기 쉬우며 완전한 결과를 거의 제공하지 않습니다. 테스트 범위. 속도를 높이고, 적용 범위를 개선하고, 비용을 절감하고, 결함 생산 및 개발 환경에서 ETL 테스트의 탐지 비율이 높아지면서 자동화가 시대의 요구 사항이 되었습니다. 그러한 도구 중 하나가 Informatica입니다.
ETL 테스트를 위한 최고의 사례
- 데이터가 올바르게 변환되었는지 확인하세요.
- 데이터 손실 및 잘림 없이 예상 데이터를 데이터 웨어하우스에 로드해야 합니다.
- ETL 애플리케이션이 적절하게 거부하고 기본값으로 대체하며 유효하지 않은 데이터를 보고하는지 확인합니다.
- 확장성과 성능을 확인하기 위해 규정된 예상 시간 내에 데이터 웨어하우스에 데이터가 로드되도록 보장해야 합니다.
- 모든 메소드에는 가시성에 관계없이 적절한 단위 테스트가 있어야 합니다.
- 효율성을 측정하려면 모든 단위 테스트에 적절한 적용 범위 기술을 사용해야 합니다.
- 테스트 케이스당 하나의 어설션을 위해 노력합니다.
- 만들기 단위 테스트 예외를 대상으로 하는
체크 아웃 – ETL 테스트 인터뷰 질문 및 답변