본문 바로가기
TIL/데이터 엔지니어링

데이터 파이프라인 저장소

by yeon_zoo 2023. 5. 4.
  • 데이터 파이프라인 : 데이터를 수집, 처리 및 저장하기 위한 일련의 과정을 자동화하는 방법
  • 데이터 엔지니어링은 데이터를 A 라는 지점에서 B 라는 지점으로 옮기는 사람들. (출처)

데이터 엔지니어링 관련 사례를 찾다가 팀원분이 공유해주신 영상에 정돈된 발전 방향성이 담겨 있는 것 같아 해당 내용을 좀 정리해보려고 한다. 

 

 

1. OLTP 데이터베이스

OLTP(Online Transaction Processing) 데이터베이스는 우리가 흔히 프로덕션에서 사용자들과의 인터랙션에서 사용하는 데이터베이스를 말한다. 일상적인 트랜잭션에서 사용하고 한 번에 적은 양의 데이터베이스를 처리하며 실시간으로 처리되어야 한다. OLTP 데이터베이스는 데이터의 정확성과 신뢰성이 매우 중요하며 빠른 응답시간과 높은 동시성을 제공한다. 

 

2. 데이터 웨어하우스

데이터 웨어하우스는 기업이나 조직의 의사 결정에 도움을 주는 데이터 저장소이다. 대량의 데이터를 저장하고 복잡한 분석 쿼리를 수행할 수 있도록 최적화되어 있다. 웨어하우스가 말 그대로 '창고'이다 보니, 실시간 처리보다는 주기적으로 로드하고 정규화하는 전처리 작업을 수행한다. 즉, 배치 처리 방식으로 원시적인 데이터를 적재하고 이를 기반으로 분석 및 보고서 생성을 진행한다. 데이터 웨어하우스는 전처리를 통해 중복성을 제거하고 일관성과 통합성을 유지한다. AWS의 RedShift 등을 이용하면 좋다. 

 

3. 데이터 레이크

데이터레이크는 다양한 형태와 형식의 대규모 데이터를 수집, 저장 및 분석하는 시스템이다. 데이터 레이크는 다양한 소스에서 비정형 데이터와 정형 데이터를 수집하고 원시 형태 그대로를 저장한다. 이러한 원시 데이터는 필요에 따라 가공 및 정제되어 분석에 활용된다. 데이터 레이크는 원시 형태 그대로 저장하기 때문에 대부분의 데이터 처리는 배치 처리 방식으로 수행되어 일정한 주기로 대량의 데이터를 처리하는 방식이다. 하지만 최근 스트림 처리와 같은 실시간 처리 기능을 추가하여 데이터 레이크에서도 실시간 처리가 가능해졌다. 스트림 처리는 데이터가 발생하는 즉시 처리할 수 있는 기능을 제공한다. 이를 통해 데이터 레이크는 대규모 실시간 데이터를 수집하고 분석하는 데도 사용될 수 있다. Athena와 S3를 사용해서 데이터 레이크를 운영할 수 있다. 

 

3.5 데이터 웨어하우스 vs 데이터 레이크

write-on-schemaread-on-schema

데이터 웨어하우스는 쓰기 스키마 방식을 채택하기 때문에 수집하는 시점부터 정형화된 데이터를 사용하며 이를 통해 데이터 모델링을 수행한다. 따라서 분석 요구사항이 명확히 정의된다. 반면에 데이터 레이크는 비정형 데이터나 다양한 형식의 데이터를 저장하는 읽기 스키마 방식이기 때문에 데이터가 어떻게 사용될지 미리 알 수 없는 경우에 더 유용하다. 

데이터 웨어하우스는 일반적으로 분석 요구사항이 명확하게 정의된 기업 환경에서 사용되고 데이터 레이크는 빅데이터 분석, 기계 학습 및 인공 지능과 같은 고급 분석 작업에 사용된다. 

 

4. 실시간 처리

Kafka와 같은 툴을 이용해서 실시간 데이터를 처리하고 분석하여 매우 적은 딜레이 시간으로 해당 분석을 적용해서 보여줄 수 있다. (이 때 레디스 등을 함께 사용하기도 한다) 위의 사례에서는 AWS의 Kinesis를 사용했다고 하는데 카프카로의 전환을 계획하고 계시다고 한다. 

 

5. 방향성

모든 기업들이 그렇듯이 결국엔 데이터가 많아지고 데이터 엔지니어링으로 모은 데이터들의 활용처가 많아질 수록 실시간 처리 방향으로 가야 하지 않을까 싶다. 개인적인 생각으로는 지금 당장 뚜렷한 데이터 관련 분석 요구 사항이 없기에 데이터 레이크를 형성해서 추후 다양한 활용 방안이 존재하도록 구성하는 편이 좋은 듯 싶다. 

댓글