UPBIT DATA
- 안정된 데이터 수집을 위해 Upbit Websocket API를 사용하여 데이터 수집
- 데이터 종류로는 Ticker / OrderBook
- Ticker : 현재가 변경 시 데이터 제공 (거래가 일어남에 따라 변화)
- Orderbook : 단위 시간별로 수집된 주문을 정리한 호가창 제공
- 24.1.20 ~ 현재 안정적으로 데이터 수집 中

빨간색 : Orderbook , 파란색 : Ticker
Upbit 개발자 센터
Ticker data와 Orderbook data 둘을 합치는 작업이 필요한지
DB Server : Google Cloud: Cloud Computing Services
- DB Server에 필요한 서버 사양과 비용 측면을 고려해 GCP 사용
- 300$ 무료 Credit 제공, 현재 100$ 남음으로 GCP 사용하게 될 경우 8,000원/일 정도의 서버비용 예상


- 현재 새로운 구글 계정을 개설해 동일한 DB 개설 中
현재 Data 수집에 사용되는 서버 사양

DB : Influx DB
- Timeseries Data에 최적화된 Database
- BTC_TICKER, BTC_ORDER, ETH_ORDER, ETH_TICKER 각각 DB를 생성 후 수신되는 Websocket을 DB에 저장
- Websocket이 끊어질 경우 다시 연결하도록 업데이트하였고, 해당 상황이 발생할 경우 일부 데이터 손실 발생
DB to Parquet (파케이)
-
실제 Machine에서는 DB에 접속해 실시간 데이터를 읽어와 Task를 진행하는 구조가 되어야 함
-
현재 데이터 수집에서는 CSV 파일 형태로 추출 시도
-
Orderbook Data : 호가 단위가 15개로 방대해 하루 2~3GB의 Orderbook CSV 파일이 생성됨
-
Ticker Data : 정보량이 많지 않아 Size가 상대적으로 적음 (약 500MB/1달)
-
DB -> CSV -> Parquet 과정에서 상당한 메모리가 소요
-
32GB로 CSV 추출 시 2~3일 데이터 단위로 추출하여, Parquet로 변환
-
변환 시 약 6GB -> 약 48.1MB (약 1/128배)로 압축 되는 것을 확인