🎯 Goal
- 데이터 파이프라인의 필요성을 설명할 수 있다.
⛳ Process
공부하면서 또는 프로젝트를 진행하면서 오다가다 '데이터 파이프라인'이라는 단어를 자주 보았으나 정확하게 무엇인지는 몰랐다. 단순히 데이터 처리 과정을 말한다고 생각했다.
실제로 비슷하게 정의하고 있는데 데이터 파이프라인은 필요한 데이터를 추출하고, 정제하고, 변환하고, 분석하고, 저장하고, 전달하는 과정을 포함하는 시스템이라고 한다. 당연하게도 데이터를 어디서 수집하고, 어떤 목적으로 수집하는지에 따라 구성이 달라진다.
데이터 수집 방식
- 벌크(bulk): 이미 존재하는 데이터를 정리해 추출하는 방법이다. DB나 파일 서버 등에서 정기적으로 데이터를 수집할 때 사용하는 방식이다.
- 스트리밍(streaming): 차례대로 생성되는 데이터를 끊임없이 연속적으로 보내는 방법이다. 모바일 앱이나 임베디드 장비 등에서 데이터를 수집하는 데 사용하는 방식이다.
데이터 처리 방식
- 스트림 처리: 스트리밍형으로 수집된 데이터를 처리하는 방식으로 실시간 데이터 분석에 적합하다.
- 배치 처리: 대량의 데이터를 저장하고 처리하는 방식으로, 장기적 데이터 분석에 적합하다.
분산 처리
- Hadoop, Spark 등의 프레임워크가 있다.
- 대규모의 데이터 셋을 효율적으로 처리하기 위해 사용된다.
- 하나의 대형 컴퓨터를 사용해서 데이터를 처리&저장하는 대신 분산 처리 프레임워크를 통해 상용 하드웨어를 함께 클러스터링하여 대량의 데이터 셋을 병렬로 분석할 수 있다.
저장소
- 분산 스토리지: 여러 컴퓨터와 디스크로 구성된 스토리지 시스템으로, 데이터가 수집되면 분산 스토리지 시스템 내 여러 곳에 나뉘어 저장된다. 대표적인 예시가
객체 스토리지인데, 폴더와 같이 한 덩어리로 모인 데이터에 이름을 부여해 파일을 저장하는 방식이다. 아마존의 S3가 이 방식을 따른다고 하며, NoSQL 데이터 베이슬르 분산 스토리지로 사용하기도 한다.
데이터 레이크
- S3, HDFS
- 모든 데이터를 그대로 저장하고 나중에 필요한 것만 꺼내서 사용하는 스토리지이다.
데이터 웨어하우스
- BigQuery 등
- 대량의 데이터를 분석하기 좋게 체계적으로 보관해놓은 데이터 창고이다.
- 데이터 레이크는 가공되지 않은 데이터를 모아 놓는 곳이다.
주요 특징
- 주체 지향: 업무 중심이 아닌 주제 중심으로 데이터를 조직화 한다. (고객 거래처, 상품, 활동 등)
- 통합: 데이터를 활용하기 좋은 형태로 변환하기 위해 표준화 기준으로 설정, 적용해 데이터를 통합해야 한다.
- 시계열: 시간 별로 데이터 버전들을 저장한다. (데이터를 시간에 따라 수시로 갱신하거나 변경 X)
- 비휘발성: 데이터 웨어하우스의 데이터로 수행할 수 있는 작업은 데이터 로딩, 데이터 액세스 뿐이다. (데이터의 변경, 삭제는 이뤄지지 않음)
Workflow 관리시스템
- Airflow, Oozie, Dagster, Argo 등
- 여러가지 태스크(데이터셋 생성, 모델 학습 등)를 일련의 그래프로 연결하고 스케줄링, 모니터링 등 파이프라인을 관리할 수 있다.
정리
결과적으로 데이터 파이프라인은 데이터를 수집해서 활용할 수 있게끔 변환&저장하는 과정을 말한다고 할 수 있다. 공부하면서 데이터 레이크에 저장해두고 나중에 가공을 해서 데이터 마트에 저장하는 방법과 ETL(추출, 가공, 저장) 과정을 거쳐 데이터 웨어하우스에 저장한 뒤에 필요한 데이터를 추출해서 데이터 마트에 저장해서 사용하는 방법이 존재함을 알 수 있었다. 상황에 따라 활용할 수 있는 방식이 다를 수 있음을 확인할 수 있었다.
📖 Learning Point
- ADsP 자격증 공부를 하면서 해당 개념들을 봤지만 기억에 남지는 않았는데, 데이터 처리 과정에서 사용되는 용도와 중요성을 알고나니 기억해야겠다는 생각이 들었다.
Reference
데이터 파이프라인 개념 정리
데이터 파이프라인 구축 - 이론
데이터 파이프라인이란 무엇인가요?