DevOps16일차 - 데이터 파이프라인

문한성·2023년 3월 31일
0

부트캠프

목록 보기
28/123
post-thumbnail

데이터 파이프라인

데이터 파이프라인이란 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정을 의미합니다.

데이터 파이프라인을 만드는 이유는, 다양한 경로로부터 수집되는 데이터를 웨어하우스에 적재한 후, 적재한 데이터를 바탕으로 효과적으로 분석하기 용이하게 만들기 위함입니다. 데이터 파이프라인은, MLOps를 실천하기 위해 사전에 준비되어야 할 필수적인 단계이기도 합니다.

OLTP vs. OLAP

이미 다양한 경로에서 데이터는 수집/저장되고 있습니다. 그렇다면 원시 데이터가 존재하는 데이터베이스에서 데이터를 질의한 후, 분석해도 될 텐데, 굳이 파이프라인을 이용해 별도로 웨어하우스에 데이터를 중복으로 저장한 후에 질의하는 이유는 무엇일까요?

이를 이해하려면, OLTP와 OLAP의 차이를 이해해야 합니다.

OLTP(Online Transaction Processing) 데이터베이스는 그 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어져 있는 데이터베이스이며, OLAP(Online Analytical Processing) 데이터베이스는 적재된 데이터를 다양한 방법으로 분석하는 데 포커스가 맞춰져 있습니다.

OLTP 역시 분석이 불가능한 것은 아니지만, 여러 개의 테이블을 함께 묶어 조회하려면 그만큼 복잡도가 늘어나며, 복잡한 조회로 인해 기본적인 트랜잭션에도 성능상의 지장을 줄 수 있습니다.

반면, OLAP는 데이터 기반의 의사결정을 위한 도구로, 다양한 관점의 분석을 하는 데 적합합니다. 다양한 데이터소스로부터 수집되는 데이터를 통합하는 데 그 목적이 있습니다. 성능상의 한계를 극복하기 위해 OLTP가 지원하는 몇 가지 기능을 포기함으로서, 빠른 분석 성능을 달성할 수 있었습니다.

정형 데이터와 비정형 데이터

정형 데이터는 정해진 규칙에 따라 구조화된 데이터로, 날짜, 이름, 주소, 신용 카드 숫자 등과 같이 해당 컬럼에 들어갈 값이 예측 가능하고 의미 파악이 쉬운 데이터를 의미합니다.

정형 데이터는 사용자들이 사용하기 쉽고, 머신러닝 알고리즘이 가공/분석하기에 용이하지만, 이미 적재한 데이터가 많은 상황에서 구조 그 자체가 바뀌는 경우, 모든 정형 데이터를 업데이트해야 하므로 많은 시간과 자원이 소모될 수 있습니다.

비정형 데이터는 문서(JSON, 텍스트)의 형태를 띠거나, 아예 음성이나 영상과 같은 바이너리 형식의 데이터일 수 있습니다.

비정형 데이터는, 있는 그대로 저장하기에 유용하나, 가공하거나 분석하기에는 어려울 수 있습니다. 그러나 최근에는 모든 데이터를 있는 그대로 저장하고 고도화된 빅데이터 도구를 이용해 보다 쉽게 가공/분석할 수 있게 만드는 것이 추세입니다. 왜냐하면, 비즈니스 인사이트는 데이터를 어떻게 분석하느냐에 따라서 발견될 수 있기 때문입니다.

ETL, ELT

보통 데이터 파이프라인은 ETL, ELT와 같은 용어로 표현됩니다. 각 알파벳은 추출(Extract), 적재(Load), 변환(Transform)의 약자입니다. 변환은 앞서 살펴본 것처럼 비정형 데이터를 정형화하는 과정이 포함될 수 있습니다.

추출의 대상은 주로 다음과 같습니다

  • 관계형 데이터베이스 (RDBMS)

  • NoSQL

  • 텍스트 파일 (JSON, log, txt 등)

  • SaaS로부터 생성되는 데이터 (Google Ads와 같은 광고 데이터)
    데이터 레이크 (비정형 데이터를 포함해 원시 데이터를 저장하는 공간)
    적재의 대상은 주로 다음과 같습니다.

  • 데이터 웨어하우스
    ELT와 ETL의 차이점은 순서의 차이입니다. ETL(추출→변환→적재)은 적재하는 과정에서 변환이 이루어지며 (Schema-on-Write라고 부릅니다.), ELT(추출→적재→변환)는 적재하고 나서 분석을 시작할 때 변환 작업이 일어납니다. (Schema-on-Read)

ETL로 적재된 데이터는 이미 정형화되어 있기 때문에, 비즈니스 분석이나 시각화에 용이합니다.

비정형 데이터를 분석할 경우 ELT 작업이 진행되는데, 상대적으로 정형화된 데이터 분석보다는 훨씬 느린 비정형 데이터 분석이지만, 최근에는 클라우드의 발전 덕분에 ELT도 빈번하게 사용됩니다.

또한 데이터가 쌓이는 규모가 테라바이트(TB), 페타바이트(PB)인 현대의 빅데이터 시대에는, 적재하기 전 변환 과정이 오히려 병목이 될 수 있으므로, 이러한 한계를 극복하기 위해 ELT를 사용하기도 합니다.

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글