데이터 파이프라인 구축 - 1회차

Suhyeon Lee·2025년 1월 7일
0

라이브 세션

목록 보기
35/37

학습 진행 전 준비사항

MAC환경에서는 ORACLE VM 이 지원되지 않아 실습이 어렵습니다.
2core 8G 이상의 메모리, 150G 이상의 hdd/ssd 필요
(단, 외장하드 nas 불가)
이 미니 프로젝트는 데이터 분석 30% 엔지니어링 70%로 구성되어 있습니다. 데이터 파이프라인을 구축해보면서 실무에서 데이터 분석하기 전까지 데이터 수집, 정제, 적재가 어떻게 이루어지는지 간략하게 실습 해보실 수 있습니다.

데이터 파이프라인이란 무엇인가?


☞ General Architecture of Legacy Data Pipeline (ETL 기준)

  • 금융권(증권 회사) 기준으로 예를 들면:
    • 매도/매수 채결 데이터가 DB에 쌓임
    • WTS(Web Trading System: 웹에서 바로 주식 매매를 하는 것), MTS(Mobile Trading System) 화면에서 수집되는 로그들
  • 위와 같은 데이터 소스(=Raw Data)들이 실시간으로 처리되어야 하는 경우도 있고 배치(Batch)성으로 처리(일괄처리)되어야 하는 경우도 있음 → 굉장히 소스가 다양!

배치 데이터: 기간이 정해져 있는 유한한 데이터
배치 (Batch) 처리(= 일괄처리)
: 비교적 긴 주기로, 데이터를 처리하는 것
: 일정 기간(일,월 단위) 또는 한정된 데이터를 한 시점에 순서적으로 처리하는 방식

  • Raw Data를 수집해서 변형 → DW(Data Warehouse) Schema에 저장 → 이를 기반으로 분석 진행: ETL

    • E: Extract
    • T: Transform → 스키마에 맞게 DB에 넣기 위함
      • Rename
      • Cast
      • Join
      • Enrich
    • L: Load
  • Point

    • ETL이 있고
    • 데이터 소스를 수집해서
    • 어느 정도 가공을 거쳐
    • 스키마에 맞게 저장하고
    • 이를 기반으로 분석 진행 & 핵심은 "자동화"!

회사는 혁신적인 분석, 남이 알아내지 못한 부분을 찾는 날카로운 분석보다는 데이터 분석을 자동화하는 파이프라인을 실시간 또는 매일(배치성으로) 돌릴 때 에러가 잘 안 나고 데이터에 구멍이 나지 않고 배치 파이프라인을 안정적으로 운영하는 능력을 좀 더 중요하게 봅니다!

ETL과 ELT의 차이

  • 요즘 기업의 데이터 규모는 csv 파일로 불러올 수 없을 정도로 큼
    • 대기업 기준으로는 전체 데이터 규모가 페타바이트 단위라고 함
  • 데이터 소스도 다양함
    • 증권 회사를 예로 들면 WTS log data, MTS log data(화면마다 있음), 체결 데이터, 공시 데이터 등 다양한 종류가 있음
    • 이런 걸 정제해서 MySQL에 넣는다? 굉장히 오래 걸림!

🡆 일단 데이터를 수집해서 적재하는 게 더 중요하는 판단: ELT

  • raw data 적재에는 쉽고 빠르게 접근 가능한 S3 같은 object storage를 많이 사용

Object Storage와 AWS S3

Object Storage란 객체(Object)라고 하는 비정형 형식으로 데이터를 저장하고 관리하는 기술
• 기존의 파일 시스템이나 블록 스토리지와는 다름
• 계층구조 없이 평면(flat) 구조로 데이터를 저장 → 접근이 쉽고 빠르며 확장성이 높음
• 데이터 조작에 HTTP/HTTPS를 통한 API가 사용됨
클라우드 객체 스토리지 시스템은 데이터를 여러 대의 물리적인 장치에 분산시키지만 사용자는 단일의 가상 스토리지 레포에서 효율적으로 데이터에 액세스 할 수 있음
• 객체는 데이터와 함께 메타데이터를 포함하며 고유한 식별자를 가짐
• 객체는 비디오, 오디오뿐 아니라 모든 데이터를 포괄하는 유형
• 대표적인 object storage 로는 Amazon S3, Azure Blob Storage, Google Cloud Storage 등이 있음

우리가 진행할 미니 프로젝트

  • ETL + ELT

    • (1)만 놓고 보면 ETL임
      • 가벼운 전처리 후 저장하니까
    • (2)까지 생각해 보면 ELT임
      • 가공을 거의 하지 않고 raw zone에 떨구니까
  • Data Lake

    • Mart Table 구축 전 raw data를 가지고 있는 것
    • Data Lake와 Mart Table을 통칭해서 "Data Warehouse"라고 함
  • 보고 싶은 내용에 따라 전략이 달라짐: Phasing 후 DL에 저장

    • 상위 5개 코인 시가 총액
      • 전체를 받아 온 다음 상위 5개 골라낼 것인가?
      • 처음부터 상위 5개만 받아 올 것인가?
    • 분봉 차트
      • 1시간 간격
      • 4시간 간격
      • 하루 간격
  • 마트 테이블 구축

    • 시세 데이터
    • 이벤트 기본
      • 상방돌파/하방돌파 여부 감지
      • D+1일/D+7일/D+14일 수익률 계산
  • 배치를 하루에 한 번씩 돌린다고 가정했을 때 이벤트 발생에 대한 알림 보내기(슬랙으로)

    • UPSERT 구현

매매 전략: 상방돌파와 하방돌파
주가가 이동평균선을 상방돌파(위로 돌파)하면 매수 신호로 보고, 하방돌파(아래로 돌파)하면 매도 신호로 봅니다. 이를 통해 시장의 방향성을 예측하고 매매 시점을 결정하게 됩니다.

profile
2 B R 0 2 B

0개의 댓글

관련 채용 정보