빅데이터 테스팅 튜토리얼: 테스트란 무엇이며, 전략은 무엇이고, 어떻게 테스트하는가

⚡ 스마트 요약

빅 데이터 테스트는 데이터 스테이징 검증, MapReduce 검증 및 출력 검증을 아키텍처 및 성능 검사와 결합하여 분산 Hadoop 클러스터 전반에 걸쳐 빅 데이터 애플리케이션이 테라바이트 규모의 데이터를 정확하고 신속하며 안전하게 처리하는지 확인합니다.

  • 🔘 핵심 초점: 제품의 개별 기능이 아닌 클러스터 전체의 데이터 처리가 검증됩니다.
  • ☑️ XNUMX단계: 데이터 스테이징, MapReduce 및 출력 유효성 검사는 모든 Hadoop 테스트 주기에서 필수적입니다.
  • 데이터 품질이 최우선입니다. 적용 전 테스트에서 적합성, 정확성, 중복성, 일관성, 유효성 및 완전성을 확인합니다.
  • 🧪 Archi건축 양식이 중요합니다: 성능 및 장애 조치 서비스는 클러스터가 노드 장애 발생 시에도 처리량 손실 없이 유지됨을 확인시켜 줍니다.
  • 🛠️ 튜닝 매개변수: 저장소 레이아웃, 커밋 로그, 동시성, 캐싱, 타임아웃 및 JVM 설정이 측정됩니다.
  • ⚠️ 알려진 문제점: 자동화 기술 부족, 가상 머신 지연 시간 및 방대한 데이터 세트는 빅 데이터 테스트를 복잡하게 만듭니다.

빅데이터 테스트 전략, 하둡 테스트 단계 및 성능 테스트를 다루는 빅데이터 테스트 튜토리얼입니다.

빅데이터 테스트란 무엇인가요?

빅데이터 테스트는 빅데이터 애플리케이션의 모든 기능이 예상대로 작동하는지 확인하기 위한 테스트 프로세스입니다. 빅데이터 테스트의 목표는 성능과 보안을 유지하면서 빅데이터 시스템이 원활하고 오류 없이 작동하는지 확인하는 것입니다.

빅 데이터는 기존 컴퓨팅 기술로는 처리할 수 없는 대규모 데이터 세트의 모음입니다. 이러한 데이터 세트를 처리하기 위해서는 다양한 도구, 기술 및 프레임워크가 필요합니다. 빅 데이터는 양, 다양성 및 속도 측면에서 놀라운 수준의 데이터 생성, 저장, 검색 및 분석과 관련이 있습니다. 더 자세한 내용은 다음을 참조하십시오. 빅데이터, 하둡 MapReduce 테스트를 시작하기 전에.

빅 데이터 테스트 전략이란 무엇입니까?

빅데이터 애플리케이션 테스트는 소프트웨어 제품의 개별 기능을 테스트하는 것보다는 데이터 처리 과정을 검증하는 데 더 중점을 둡니다. 빅데이터 테스트에서 성능 테스트와 기능 테스트는 핵심적인 요소입니다.

빅데이터 테스트 전략에서 QA 엔지니어는 일반적인 클러스터 및 기타 지원 구성 요소를 사용하여 테라바이트 규모의 데이터 처리가 성공적으로 이루어지는지 검증합니다. 처리 속도가 매우 빠르기 때문에 높은 수준의 테스트 기술이 요구됩니다. 처리 유형은 크게 세 가지로 나눌 수 있습니다.

  • 일괄 처리: 저장된 데이터는 정해진 일정에 따라 처리되므로, 테스트는 작업 완료 및 정확성을 목표로 합니다.
  • 실시간 처리: 기록은 도착 즉시 처리되므로 테스트는 지연 시간과 데이터 손실을 대상으로 합니다.
  • 대화형 처리: 분석가는 직접 쿼리를 수행하므로 테스트는 임시 쿼리 응답 시간을 목표로 합니다.

아래 도표는 전략을 요약한 것입니다.

QA 엔지니어가 검증한 데이터 처리 유형을 보여주는 빅데이터 테스트 전략 다이어그램

이와 더불어 데이터 품질은 하둡 테스트에서 중요한 요소입니다. 애플리케이션 테스트 전에 데이터 품질을 확인하는 것은 필수적이며, 데이터베이스 테스트의 일부로 간주되어야 합니다. 데이터 품질 검사에는 적합성, 정확성, 중복성, 일관성, 유효성, 데이터 완전성 등 다양한 특성 확인이 포함됩니다. 이 하둡 테스트 튜토리얼에서는 하둡 애플리케이션을 테스트하는 방법을 알아보겠습니다.

하둡 애플리케이션 테스트 방법

다음 그림은 빅데이터 애플리케이션 테스트 단계를 개략적으로 보여줍니다.

하둡 클러스터에서 빅데이터 애플리케이션 테스트의 주요 단계

빅데이터 테스트, 또는 하둡 테스트는 크게 세 단계로 나눌 수 있습니다.

1단계: 데이터 스테이징 검증

이 빅데이터 테스트 튜토리얼의 첫 번째 단계는 하둡 사전 단계라고 하며, 프로세스 검증을 포함합니다.

  • 관계형 데이터베이스 관리 시스템(RDBMS), 웹로그, 소셜 미디어 등 다양한 소스의 데이터는 시스템에 정확한 데이터가 입력되는지 확인하기 위해 유효성 검사를 거쳐야 합니다.
  • 원본 데이터와 Hadoop 시스템에 푸시된 데이터를 비교하여 일치하는지 확인
  • 올바른 데이터가 있는지 확인하십시오.trac테드와 로드가 올바른 위치에 장착되었습니다. HDFS 위치

같은 도구 탈 렌드 또한 Datameer는 데이터 스테이징 유효성 검사에 사용할 수 있습니다.

2단계: "MapReduce" 검증

두 번째 단계는 "MapReduce" 검증입니다. 이 단계에서 빅데이터 테스터는 모든 노드에서 비즈니스 로직 유효성 검사를 수행하고, 여러 노드에서 실행한 후 다시 한번 유효성을 검증하여 다음 사항을 확인합니다.

  • MapReduce 프로세스가 정상적으로 작동합니다.
  • 데이터 집계 또는 분리 규칙이 데이터에 구현됩니다.
  • 키 값 쌍이 생성됩니다.
  • MapReduce 프로세스 후 데이터 유효성 검사

3단계: 출력 검증 단계

Hadoop 테스트의 마지막 또는 세 번째 단계는 출력 유효성 검사 프로세스입니다. 출력 데이터 파일이 생성되어 요구 사항에 따라 EDW(엔터프라이즈 데이터 웨어하우스) 또는 기타 시스템으로 이동할 준비가 됩니다.

3단계 활동은 다음과 같습니다.

  • 변환 규칙이 올바르게 적용되었는지 확인하려면
  • 데이터 무결성을 확인하고 대상 시스템에 데이터가 성공적으로 로드되었는지 확인하려면
  • 대상 데이터와 HDFS 파일 시스템 데이터를 비교하여 데이터 손상이 없는지 확인하려면

Archi강의 테스트

이제 관심은 데이터 자체에서 데이터를 저장하는 클러스터로 옮겨갑니다.

하둡은 매우 방대한 양의 데이터를 처리하며, 자원 소모가 매우 큽니다. 따라서 빅데이터 프로젝트의 성공을 위해서는 아키텍처 테스트가 필수적입니다. 잘못 설계된 시스템은 성능 저하를 초래하고, 요구 사항을 충족하지 못할 수 있습니다. 최소한, 성능 장애 조치 테스트 서비스는 하둡 환경에서 실행되어야 합니다.

성능 테스트에는 작업 완료 시간, 메모리 사용률, 데이터 처리량 및 유사한 시스템 지표 테스트가 포함됩니다. 장애 조치 테스트 서비스의 목적은 데이터 노드 장애 발생 시 데이터 처리가 원활하게 이루어지는지 확인하는 것입니다.

성능 시험

빅데이터 성능 테스트는 크게 세 가지 영역을 다룹니다.

  • 데이터 수집 및 처리량: 이 단계에서 빅데이터 테스터는 시스템이 다양한 데이터 소스에서 데이터를 얼마나 빠르게 처리할 수 있는지 검증합니다. 테스트에는 주어진 시간 내에 큐가 처리할 수 있는 메시지 수를 파악하는 작업이 포함됩니다. 또한 기본 데이터 저장소에 데이터를 삽입하는 속도, 예를 들어 삽입률 등도 테스트에 포함됩니다. MongoDB Cassandra 데이터 베이스.
  • 데이터 처리: 이는 쿼리 또는 MapReduce 작업의 실행 속도를 검증하는 것을 포함합니다. 또한 기본 데이터 저장소에 데이터 세트가 채워진 상태에서 데이터 처리를 독립적으로 테스트하는 것도 포함됩니다. 예를 들어, 기본 HDFS에서 MapReduce 작업을 실행하는 것입니다.
  • 하위 구성 요소 성능: 이러한 시스템은 여러 구성 요소로 이루어져 있으며, 각 구성 요소를 개별적으로 테스트하는 것이 필수적입니다. 예를 들어 메시지 인덱싱 및 소비 속도, MapReduce 작업, 쿼리 성능, 검색 등을 테스트해야 합니다.

성능 테스트 접근 방식

빅데이터 애플리케이션의 성능 테스트는 방대한 양의 정형 및 비정형 데이터를 테스트하는 것을 포함하며, 이러한 대규모 데이터를 테스트하기 위해서는 특정한 테스트 접근 방식이 필요합니다.

아래 워크플로는 성능 테스트가 진행되는 순서를 보여줍니다.

빅데이터 클러스터 설정부터 최적 구성까지 성능 테스트 접근 방식 워크플로

성능 테스트는 다음 순서대로 실행됩니다.

  1. 이 과정은 성능 테스트를 위해 빅데이터 클러스터를 설정하는 것으로 시작됩니다.
  2. 해당 워크로드 식별 및 설계
  3. 개별 클라이언트를 준비합니다(맞춤 스크립트가 생성됩니다).
  4. 테스트를 실행하고 결과를 분석합니다(목표가 달성되지 않으면 구성 요소를 조정하고 다시 실행합니다).
  5. 최적 구성

성능 테스트를 위한 매개변수

성능 테스트를 위해 검증해야 할 다양한 매개변수는 다음과 같습니다.

  • 정보 저장소: 데이터가 서로 다른 노드에 저장되는 방식
  • 커밋 로그: 커밋 로그가 허용되는 최대 크기
  • 동시성: 쓰기 및 읽기 작업을 수행할 수 있는 스레드 수는 몇 개입니까?
  • 캐싱 : "행 캐시"와 "키 캐시" 캐시 설정을 조정하세요.
  • 시간 초과: 연결 시간 초과, 쿼리 시간 초과 등의 값입니다.
  • JVM 매개변수: 힙 크기, GC 수집 알고리즘 등
  • MapReduce 성능: 정렬, 병합 등
  • 메시지 큐: 메시지 전송 속도, 크기 등

테스트 환경 요구 사항

테스트 환경 요구 사항은 테스트하려는 애플리케이션 유형에 따라 다릅니다. 빅데이터 소프트웨어 테스트의 경우 테스트 환경은 다음과 같은 요소를 포함해야 합니다.

  • 대용량 데이터를 저장하고 처리할 수 있는 충분한 공간이 있어야 합니다.
  • 분산 노드와 데이터가 있는 클러스터가 있어야 합니다.
  • 빅데이터 성능을 테스트하려면 성능을 높게 유지하기 위해 최소한의 CPU 및 메모리 사용률이 있어야 합니다.

빅데이터 테스트 vs. 기존 데이터베이스 테스트

아래 표는 두 학문의 속성을 속성별로 비교합니다.

등록 기존 데이터베이스 테스트 빅데이터 테스트
Data 테스터는 구조화된 데이터를 다룹니다. 테스터는 구조화된 데이터와 구조화되지 않은 데이터 모두에서 작동합니다.
테스트 접근법 테스트 접근 방식이 잘 정의되어 있고 시간 테스트를 거쳤습니다. 테스트 접근 방식에는 집중적인 R&D 노력이 필요합니다.
테스트 전략 테스터는 수동으로 수행하는 "샘플링" 전략 또는 자동화 도구를 사용하는 "전면 검증" 전략 중에서 선택할 수 있습니다. 빅데이터에서 "샘플링" 전략을 세우는 것은 어려운 과제입니다.
인프라 파일 크기가 제한되어 있으므로 특별한 테스트 환경이 필요하지 않습니다. 데이터 크기와 파일(HDFS)이 크기 때문에 특별한 테스트 환경이 필요합니다.
검증 도구 테스터는 엑셀 기반 매크로 또는 UI 기반 자동화 도구를 사용합니다. 특정 도구가 정해져 있지 않으며, MapReduce와 같은 프로그래밍 도구부터 HiveQl까지 범위가 매우 넓습니다.
테스트 도구 테스트 도구는 기본적인 작동 지식만으로도 사용할 수 있으며 교육 시간이 짧습니다. 테스트 도구를 작동하려면 특정 기술과 교육이 필요합니다. 또한, 이러한 도구들은 아직 초기 단계이며 시간이 지남에 따라 새로운 기능이 추가될 수 있습니다.

빅데이터 시나리오에서 사용되는 도구

아래 표는 클러스터 계층별로 일반적인 도구들을 그룹화한 것입니다.

빅데이터 Cluster 빅 데이터 도구
NoSQL : CouchDB, 데이터베이스 MongoDB, Cassandra, Redis, ZooKeeper, HBase
맵리듀스: 하둡, 하이브, 피그, 캐스케이딩, 오지, 카프카, S4, 맵R, 독감
스토리지 : S3, HDFS(하둡 분산 파일 시스템)
서버 : 탄력있는, Heroku, Google 앱 엔진, EC2
처리 : 알, 야후! 파이프, 기계식 터크, BigSheets, Datameer

빅 데이터 테스트의 과제

거의 모든 빅데이터 프로젝트에서 세 가지 실질적인 장애물이 반복적으로 발생합니다.

  • 자동화 : 자동화 테스트 빅데이터 분석에는 기술적 전문 지식을 갖춘 사람이 필요합니다. 또한 자동화 도구는 테스트 중에 발생하는 예상치 못한 문제를 처리할 수 있도록 설계되지 않았습니다.
  • 가상화: 이는 테스트의 필수 단계 중 하나입니다. 가상 머신 지연 시간은 실시간 빅데이터 성능 테스트에서 타이밍 문제를 야기합니다. 또한, 빅데이터에서 이미지를 관리하는 것은 번거로운 일입니다.
  • 대규모 데이터 세트: 볼륨에는 세 가지 압력이 따릅니다.
    • 더 많은 데이터를 검증하고 더 빠르게 검증해야 함
    • 테스트 작업을 자동화해야 함
    • 다양한 플랫폼에서 테스트할 수 있어야 합니다.

성능 테스트 과제

  • 다양한 기술 세트: 각 하위 구성 요소는 서로 다른 기술에 속하며 개별적으로 테스트해야 합니다.
  • 특정 도구를 사용할 수 없음: 단일 도구로는 엔드투엔드 테스트를 수행할 수 없습니다. 예를 들어, NoSQL은 메시지 큐에 적합하지 않을 수 있습니다.
  • 테스트 스크립팅: 테스트 시나리오와 테스트 케이스를 설계하려면 높은 수준의 스크립팅 능력이 필요합니다.
  • 테스트 환경: 데이터 크기가 크기 때문에 특별한 테스트 환경이 필요합니다.
  • 모니터링 솔루션: 전체 환경을 모니터링할 수 있는 솔루션은 제한적입니다.
  • 진단 솔루션: 성능 저하의 원인이 되는 병목 현상을 심층적으로 분석하려면 맞춤형 솔루션이 필요합니다.

자주 묻는 질문

데이터 품질 검사는 애플리케이션 테스트를 시작하기 전에 데이터베이스 테스트의 일환으로 진행됩니다. 테스터는 데이터의 적합성, 정확성, 중복성, 일관성, 유효성 및 완전성을 검증하고, null 값, 인코딩 문제 및 열 이동 여부를 확인합니다.

AI는 개인 정보를 노출하지 않고 실제 운영 환경과 유사한 합성 테스트 데이터를 생성하고, 고정 규칙으로 놓친 파이프라인 이상 징후를 표시하며, 실행할 유효성 검사 항목의 우선순위를 지정합니다. 하지만 비즈니스 로직에 대한 사람의 검토는 여전히 필수적입니다.

Copilot 및 유사한 에이전트형 도우미는 상용구 코드 작성 속도를 향상시킵니다: HiveQL 비교 쿼리, PySpark 어설션 및 조정 스크립트. 생성된 코드는 먼저 검증된 정상 데이터 세트를 대상으로 실행하십시오. 그럴듯한 쿼리가 잘못된 열을 검증할 수 있기 때문입니다.

스키마 유효성 검사는 HDFS 또는 NoSQL 저장소에 도달하기 전에 들어오는 레코드가 예상되는 필드, 데이터 유형 및 null 허용 여부를 가지고 있는지 확인합니다. 데이터 수집 단계에서 스키마 변경을 감지하는 비용은 사후 검증보다 훨씬 적습니다. trac나중에 출력이 손상될 수 있습니다.

팀은 프로덕션 환경에서 추출한 마스킹된 하위 집합, null 값이나 이상치와 같은 예외적인 경우를 강조하는 생성된 레코드, 그리고 재생된 과거 스트림을 결합합니다. 샘플링만으로는 위험할 수 있는데, 드문 레코드가 찾아내야 할 오류를 발생시키기 때문입니다.

ETL 테스트는 정의된 도구와 예측 가능한 볼륨을 사용하여 정형화된 데이터를 데이터 웨어하우스에 로드하는 것을 검증합니다. 빅 데이터 테스트는 분산 클러스터에서 정형 및 비정형 데이터를 모두 다루며, 검증은 MapReduce 또는 HiveQL을 사용하여 수행됩니다.

메시지 크기에 따른 수집 속도를 측정하고, 백로그를 주입하여 큐가 복구되는지 확인하고, 중간에 노드를 종료하여 데이터 손실이 없는지 확인합니다. 소스 이벤트의 특정 기간과 싱크 이벤트를 비교합니다.

SQL과 HiveQL, MapReduce를 위한 단일 언어 또는 Spark HDFS 및 NoSQL 저장소에 대한 실무 지식과 테스트 환경 스크립팅 능력을 갖춘 인재를 찾습니다. 단일한 엔드투엔드 도구가 존재하지 않기 때문에 분석적 사고력이 더욱 중요합니다.

이 게시물을 요약하면 다음과 같습니다.