Skip to content

idle-danie/collect_data

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%