데이터 수집에 초점을 맞추면, 데이터 파이프라인 중 가장 업스트림에 있는 '진입점'은 아마 가장 중요할 것이다. '진입점'은 '외부 세계의 데이터가 파이프라인에 들어오는 초기 접촉 지접'으로 정의할 수 있으며, 진입점의 데이터는 외부 세계의 전형적인 노이즈와 불규칙성을 모두 포함하기 때문에 원시적이다. 데이터 수집 소스는 크게 애플리케이션 로그 데이터, API 응답, 센서 데이터로 나누어 살펴 볼 수 있다.
진입점을 통과한 데이터가 거쳐야 하는 다음 단계는 데이터 정제 단계이다. 높은 데이터 품질을 달성하는 데 가장 큰 장애물 중 하나는 데이터 정제이며, 이는 사용 가능한 데이터셋에서 부정확하거나 대표적이지 않은 데이터를 제거하는 것이다. 데이터 정제의 중요성은 머신러닝에서 대두되고 있으며, 어떻게 올바르게 데이터를 정제할 것인가 결정하는 데에는 많은 노력이 든다.
데이터 정제는 노이즈를 제거하는 오류값 제거, L1, L2 등의 정규화, 데이터 보간법 등을 활용한 데이터 재구성, 부동소주점을 정수로, 혹은 문자를 문자열로 변환하는 유형 변환 등이 있다.
데이터를 처리는 크게 배치 처리와 실시간 처리로 나눌 수 있다. 배치 처리는 일정 기간 동안 데이터를 수집하여 대량의 데이터를 별개의 패킷으로 배치하는 반면, 실시간 처리는 배치 처리보다 프로세스는 길지만 데이터를 거의 즉시 실행한다. 책에서 말하는 대표적인 예는 각각 신용 카드 거래 처리와 실시간 승차 공유앱이 있다.
배치 처리와 실시간 처리의 주요 차이점은 배치당 처리되는 데이터의 양과 처리 속도이다. 파이프라인에서 데이터의 품질 상태는 배치 스트리밍 시스템에서 더 높은 경향이 있지만, 데이터를 실시간 스트리밍할 때 데이터 품질의 중요성은 훨씬 커진다. 단위테스트, 기능 테스트, 통합 테스트와 같은 방법으로는 실시간 데이터 품질을 다루기엔 한계가 있다. 이 책에서는 아마존 키네시스 및 아파치 카프카를 실행하여 실시간 처리 시스템의 품질 관리하는 방법을 제시한다.
데이터 처리가 끝났으면, 데이터 변환을 통하여 데이터를 이해해야 한다. 첫번째 운영 데이터 변환 레이어를 데이터 정규화 단계라고 하며, 이 단계에서는 몇 단계 고려해야 할 점이 있다. (자세한 것은 책에...)
데이터 정규화가 끝났으면, 분석에 수행되는 분석 데이터로 변환해야 한다. 분석 데이터는 운영 데이터와 다르기 때문에 데이터 변환시 주의해야 할 점들이 몇 가지가 있다. 예를 들면, 소스 데이터를 필터링, 집계 및 요약, 중복 제거 또는 정제 및 통합을 한다거나 데이터 필드나 업계 또는 정부 규정을 충족하기 위해 암호화를 하는 것들이다.
마지막으론 데이터 테스트이다. 데이터 테스트는 데이터 파이프라인에 들어가기 전에 데이터 품질 문제를 발견하는 가장 중요한 단계로 NULL 값이 있는지, 데이터 용량은 적절한지, 데이터 분포가 허용되는 분포인지 등이 있다. 이 책에서는 데이터 품질 테스트를 위하여 단위 테스트, 파이프라인 상태에 대한 가시성 메트링, 경고 등에서 자유 사용되는 툴들의 사용방법을 제시한다.
'공부하는삶 > DataOps' 카테고리의 다른 글
[TIL] 데이터 품질의 비밀 1-2장 (0) | 2024.05.21 |
---|