Profiling Big Datasets With Apache Spark and Deequ - DZone
dzone.com
대규모 데이터 세트의 품질을 유지하는 데 어려움을 겪었거나 분석에 사용된 데이터 속성의 신뢰성을 보장하기 어려웠던 적이 있으신가요? 그렇다면 Deequ와 Spark를 통합하는 것이 여러분이 찾고 있는 해결책이 될 수 있습니다.
[ Apache Spark ]
https://spark.apache.org/
등장배경
MapReduce 형태의 클러스터 컴퓨팅 패러다임의 한계를 극복하고자 등장
MapReduce는 Disk로부터 데이터를 읽은 후, Map을 통해 흩어져 있는 데이터를 Key-Value 형태로 연관성 있는 데이터끼리 묶은 후에, Reduce를 하여 중복된 데이터를 제거하고, 원하는 데이터로 가공하여 다시 Disk에 저장. 하지만 이러한 파일 기반의 Disk I/O는 성능이 좋지 못했고, In-memory의 연산을 통해 처리 성능을 향상시키고자 Spark가 등장
개념
오픈소스이며, 범용적인 목적을 지닌 분산 클러스터 컴퓨팅 프레임워크
Fault Tolerance & Data Parallelism을 가지고 클러스터들을 프로그래밍할 수 있게
RDD, Data Frame, Data Set의 3가지 API 제공
In-memory 연산을 통해 디스크 기반의 Hadoop에 비해 성능을 약 100배 향상
구성
Cluster Manager: Cluster 관리, Hadoop의 YARN/Apache Mesos
Distributed Storage System: 데이터 분산 저장하는 Distributed Storage System, HDFS(Hadoop Distributed File Syste), MapR-FS(MapR File System), Cassandra, OpenStack Swift, Amazon S3, Kudu, custom solution 등
특징
대규모 데이터 세트를 빠르게 처리하기 때문에 데이터 분석, 특히, 데이터 프로파일에 매우 중요한 도구
SQL,스트리밍, 머신러닝 및 그래프 처리를 위한 기본 제공 모듈이 있는 대규모 데이터 처리용 통합 분석 엔진
Spark는 클라우드의 Apache Hadoop, Apache Mesos, Kubernetes에서 자체적으로 실행될 수 있으며 다양한 데이터 소스에 대해 실행
최첨단 DAG(Directed Acyclic Graph) 스케줄러, 쿼리 최적화 도구, 물리적 실행 엔진을 사용하여 일괄 처리 데이터와 스트리밍 데이터 모두에 대해 고성능을 달성
Scala, Python, R, SQL 셸에서 대화형으로 Spark를 사용하여 애플리케이션을 빠르게 작성 가능
SQL, DataFrame, 머신러닝용 MLlib, GraphX, Spark Streaming을 비롯한 다양한 라이브러리를 지원
[ Deequ ]
https://github.com/awslabs/deequ
https://aws.amazon.com/ko/blogs/big-data/test-data-quality-at-scale-with-deequ/
개념
Amazon 에서 개발 및 사용되는 오픈 소스 도구로 Apache Spark 을 기반으로 구축된 라이브러리
Data Quality 제약 조건을 정의, 추가, 편집
주요 구성 컴포넌트
Metric Computation: data quality metric 계산, 계산된 원시 data quality metric 에 직접 접근 가능
Constraint Verification: 사용자는 확인할 data quality 제약 조건 집합을 정의, 제약 조건 검증 결과가 포함된 data quality report를 생성
Constraint Suggestion: 사용자 지정 data quality 제약 조건을 정의하거나 유용한 제약 조건을 추론하기위해 데이터를 프로파일링하는 자동화된 제약 조건 제안
특징
데이터 프로파일링을 위한 강력한 솔루션을 제공하여 정확한 분석에 필수적인 누락된 값이나 불일치 같은 문제를 식별하고 수정할 수 있게
데이터셋의 제약조건에 따른 data quality metric 을 정기적으로 계산하여, 성공할 경우 데이터셋을 소비자에게 게시하고, 오류가 발생하면 데이터셋 게시가 중지
일반적으로 Spark 에서 다룰 수 있는 데이터셋(분산 파일 시스템 또는 데이터 웨어하우스) 에 대한 Data quality 측정 가능
spark 을 사용하여 소스를 읽고 최적화된 집계 쿼리 세트를 통해 지표를 계산
Deequ를 사용하면 모든 고객 기록이 완전한지, 이메일 주소가 유효한 형식을 따르고 있는지, 중복 항목이 없는지 확인하기 위한 검사를 쉽게 설정
[ Apache Spark와 Deequ의 통합 ]
Spark의 확장 가능한 데이터 처리 프레임워크를 활용하여 이러한 품질 검사를 방대한 데이터 세트에 효율적으로 적용합니다. 이 조합은 단순히 문제를 표시하는 데 그치지 않고 수정 프로세스를 안내하는 실행 가능한 인사이트를 제공합니다.
예를 들어, 데이터 세트에서 불완전한 레코드가 많이 발견되면 데이터 수집의 결함이나 데이터 입력 오류 등 원인을 조사하고 이를 수정하여 데이터의 전반적인 품질을 향상시킬 수 있습니다.
데이터의 잠재력을 최대한 활용하고 싶다면 Spark와 Deequ의 강력한 기능을 활용하는 것이 좋습니다. 이 도구 세트를 사용하면 데이터의 품질을 보호하고 의사 결정 프로세스를 획기적으로 개선할 수 있으며, 데이터 기반 인사이트를 강력하고 안정적으로 확보할 수 있습니다.
보다 상세한 내용은 참고자료와 원문을 참고해주세요.
[ 참고 ]
https://mangkyu.tistory.com/128
https://velog.io/@srk/Deequ-Data-Quality-%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
source: https://dzone.com/articles/profiling-big-datasets-with-apache-spark-amp-deequ?utm_source=www.bigdatanewsweekly.com&utm_medium=referral&utm_campaign=deploying-ml-ai-systems-to-production
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 7월 4일 오전 6:21
‘탤런트’를 인재라고 생각하지 말고 그냥 TV드라마 탤런트로 생각해 보자. 주연이든 조연이든 지나가는 사람1,2든…모두 탤런트다. 탤런트만 있으면 드라마가 완성되는가? 그렇지 않다.
... 더 보기기
... 더 보기뤼튼의 누적 투자 유치액은 약 1300억원으로 분석됐다. 뤼튼에 따르면 거대언어모델(LLM)·반도체가 아닌 AI 서비스 플랫폼 분야 스타트업이 누적 투자액 1000억원을 넘은 것은 처음이다.
... 더 보기