본문 바로가기

STUDY

데이터 파이프라인(Data pipeline)이란

데이터 파이프라인 이란

- 언제든지 필요한 데이터를 가져와 꺼내 쓸 수 있도록 데이터를 계속 쌓아두는 파이프를 만드는 것

- 데이터를 생성해서 저장하기까지의 일련의 과정

- 소규모 서비스에서는 SAAS(GA 등) 형태의 분석툴로 충분하지만 큰 규모에선 데이터 엔지니어가 직접 데이터 환경을 구축하는게 굿

 

데이터 파이프라인 종류

- 일괄 파이프라인 (batch processing)

     ex) 스케쥴러

- 스트리밍 파이프라인

- 실시간 파이프라인

- 클라우드 파이프라인

 

데이터 파이프라인이 구축

데이터 생성

- 서비스 데이터 : 상품정보, 고객정보, 결제정보 등 데이터 파이프라인을 따로 거치지 않음 

- 로그 데이터 : 유자가 서비스를 이용하면서 클릭, 스크롤, 머무르기 같은 이벤트 등 서비스를 운영하면서 생기는 모든 행위를 기록으로

                        남긴 데이터

- 3rd party 데이터

- 데이터가 저장되는 서비스에 따라 데이터 형식이 달라짐

        ex) google analytics(GA)나 Amplitude 같이 SAAS 형태로 제공되는 분석 툴의 경우

              그곳에서 요구하는 형식에 맞게 코드를 새로 짜야함

 

데이터 수집

- 유저 행동 데이터가 SAAS 분석 툴 또는 회사 데이터 수집 서버로 전송됨

- SAAS 를 활용하면 트래픽에 관계없이 안전하게 데이터를 저장 & 시각화 해줌 그러나 커스터마징 불편하고 Ad Block 같은 광고 차단

   프로그램을 사용하면 데이터 전송 실패할 수 있음

- 수집된 데이터들은 곧바로 데이터베이스(DB) 혹은 데이터 웨어하우스(DW)에 저장되지 않고 수집 서버를 거치게 됨

- 수집 서버를 거쳐 데이터베이스에 저장시키거나 데이터를 가공하는 서버로 전달함

- 예시 툴 : AWS의 Kinesis, Apache의 Kafka 등

 

데이터 가공 후 저장 

- 다양한 데이터 소스의 비정형 데이터를 정형데이터로 변환하여 한 곳에 취합하는 작업

- 대표적인 프로세스 ETL

   Extract 추출 : 흩어져 있는 데이터 소스로부터 데이터 추출

   Transform 변경 : 비 정형 데이터를 정형 데이터로 가공

   Load 적재 : 변형된 데이터를 데이터 웨어하우스에 적재

                      데이터 분석가, 데이터 사이언티스트, 머신러닝 엔지니어 등이 DW에 저장된 데이터를 사용함

- ELT : 데이터를 우선 한곳에 먼저 적재한 후 필요에 따라 Transform을 하는 과정

- 예시 툴 : Airflow

 

데이터 웨어하우스 (DW) 

대량의 데이터를 분석하기 좋게 체계적으로 보관해놓는 데이터 창고
가공되지 않은 데이터를 모아놓은 창고는 데이터 레이크
데이터 로딩, 데이터엑세스만 가능함 (데이터 갱신 및 삭제 x)

 

데이터 시각화(BI)

- Business Intelligence : 데이터 시각화 템블릿과 분석할 수 있는 환경을 제공해주는 도구 

- BI를 사용하면 데이터 소스들(DW, 3rd party 데이터 등)을 연결시키고 손쉽게 데이터 분석 결과를 볼 수 있음

- 직접 SQL문으로 분석 가능함

- 보통 BI를 기존 데이터 소스와 연동하는 것까지 데이터 엔지니어가 책임지게 됨

- 예시 툴 : Tableau, Power BI, Google Data Studio

 

데이터 분석

- 서비스 핵심 데이터베이스, 빅데이터가 저장되어있는 DW의 데이터를 SQL문을 사용하여 분석 결과 제공

- BI툴 등을 사용하여 대시보드에 시각화

- 머신러닝 & 통계학 지식을 바탕으로 모델을 만들고 데이터들을 모델에 넣어서 결과 산출

 

 

하둡 (Hadoop), 스파크(Spark)

빅데이터를 여러대의 컴퓨터로 나눠서 데이터를 저장(분산)한 후 필요시 여러 디스크로부터 한꺼번에 불러오는 시스템
트랜젝션이나 무결성을 보장해야하는 RDMS가 필요 없는 경우 상대적으로 비용이 덜 들어가는 하둡, 스파크 등을 사용하여 데이터를 저장하고 처리함
저장된 데이터를 변경하는 것 불가능

 

 

 

 

 

 

※ 정리용으로 작성한 글이라 올바르지 못한 정보가 포함되어있을 수 있습니다 

 

 

 

끄읏 -!

 

 

 

 

 

 

참고

 

'STUDY' 카테고리의 다른 글

[JAVA] 추상클래스 vs 인터페이스  (0) 2024.01.10
[JAVA] Static vs Final vs Static Final  (0) 2024.01.09