Skip to content
 
 

Latest commit

 

History

47 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

프로젝트 소개

금융 데이터 수집을 통한 데이터 분석 환경 구축

  • 추진배경 및 목표 : Streaming & Batch 금융 데이터를 한 곳에 모아 데이터 분석가를 위한 인사이트 제공

️Team member

김수민 김형준 이수영 조주혜 한기호
- 배치 파이프라인
- 금융위원회
- 실시간 파이프라인
- 암호화폐
- 실시간 파이프라인
- 배치 파이프라인
- 주식
- 배치 파이프라인
- 한국부동산원
- 데이터 시각화
- 배치 파이프라인
- 한국은행
- AWS 인프라

Usage data

data_source.png


Main Tech Stack

Role Stack
Language
DataLake
DataMart
ETL
ETL Scheduler
Streaming

Project Architecture

image


Batch Pipeline

image

  • 1차 적재 : 데이터 소스로부터 MWAA를 통해 일정 시점에 데이터를 추출하여 S3 및 Redshift로 적재
  • 2차 가공 : EMR Spark을 통해 데이터 전처리 및 Redshift 통계 데이터 적재
  • 시각화 : Redshift에 적재된 데이터를 이용하여 시각화

Batch data visualization - AWS QuickSight

[ 경제 지표 데이터 ]

eco_indicator.png

[ 부동산 데이터 ]

real_estate.png


Realtime Streaming Pipeline

image

  1. 실시간 스트리밍 전송 서버
    • FastAPI로 데이터 수집 및 변환
    • Kafka로 topic 생성 및 전송
  2. 실시간 스트리밍 수신 서버
    • Kafka로 데이터 수신
    • 실시간으로 변동율 계산
    • AWS RDS에 데이터 적재
    • 임계값 기준 Slack alarm

Streaming Data result

Realtime Streaming

GIFMaker_me

RDS load & Slack alarm

암호화폐 국내주식 slack alarm
image (4) image (5) 스크린샷 2023-09-04 오후 1 51 38

Producer Setting

Virtual environment settings & activation

python3 -m venv venv
source venv/bin/activate

confluent-kafka, fastapi와 같은 패키지 설치

pip install -r requirements.txt

Environment variable settings

  • .env 파일을 작성하고 BOOTSTRAP_SERVERS 변수를 설정하세요.

    BOOTSTRAP_SERVERS=your_bootstrap_servers

Application execution

  • Uvicorn, Hypercorn, Gunicorn 등을 사용하여 FastAPI 애플리케이션을 실행합니다.

    uvicorn main:app --reload
  • Binance Market Data: /binance_market_data/{symbol} 주어진 symbol에 대한 Binance 시장 데이터를 반환합니다.
  • KuCoin Market Data: /kucoin_market_data/{symbol} 주어진 symbol에 대한 KuCoin 시장 데이터를 반환합니다.
  • Upbit Market Data: /upbit_market_data/{symbol} 주어진 symbol에 대한 Upbit 시장 데이터를 반환합니다.
  • Bithumb Market Data: /bithumb_market_data/{symbol} 주어진 symbol에 대한 Bithumb 시장 데이터를 반환합니다.

MarketData: 시장 데이터를 정의하는 모델입니다. 아래 항목을 포함합니다:

{"opening_price":2221000.0,"high_price":2221000.0,"low_price":2219000.0,"last_price":2219000.0,"price_change":-9000.0,"price_change_percent":-0.4,"volume":3195.5}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages