글쓰는 개발자
[업비트/차트데이터수집] 1단계 데이터베이스 설계 본문
반응형
캔들차트 분석을 위한 차트데이터 수집을 진행해보자.
Docker에 설치된 MySQL에 연결해 DB 테이블을 설계하고 생성하는 작업을 먼저 진행해야 한다.
두 종류의 테이블을 설계할 예정이다.
1. 코인 종류 테이블: KRW로 시작하는 원화 관련 코인 타입의 키값을 가지는 테이블
2. 캔들차트 데이터 테이블: 실제 캔들데이터가 모두 저장되는 테이블
분봉 캔들, 일봉 캔들, 주봉 캔들, 월봉 캔들로 나뉘어 진다.
먼저 분봉 캔들과 일봉 캔들 먼저 생성해서 사용하고 필요시 주캔들 월캔들은 추가하는 방향으로 간다.
1. 코인 종류 테이블 (MARKET)
필드명 | 타입 | 설명 |
id | varchar(15) Primary Key | 코인 인식코드 (PK) |
korean_name | varchar(50) Not Null | 한글명 |
english_name | varchar(50) Not Null | 영문명 |
create table market
(
id varchar(15) not null comment '코인 인식코드',
korean_name varchar(50) not null comment '한글명',
english_name varchar(50) not null comment '영문명',
constraint market_pk
primary key (id)
);
2. 분봉 캔들차트 테이블(CANDLE_MINUTE)
필드명 | 타입 | 설명 |
id | int unsigned autoincrement Primary Key | 아이디 |
market_id | varchar(15) Not Null | 마켓 아이디 |
candle_date_time_utc | DateTime Not Null | 캔들 기준 시각(UTC 기준) |
candle_date_time_kst | DateTime Not Null | 캔들 기준 시각(KST 기준) |
opening_price | Double Not Null | 시가 |
high_price | Double Not Null | 고가 |
low_price | Double Not Null | 저가 |
trade_price | Double Not Null | 종가 |
timestamp | Long Not Null | 해당 캔들에서 마지막 틱이 저장된 시각 |
candle_acc_trade_price | Double Not Null | 누적 거래 금액 |
candle_acc_trade_volume | Double Not Null | 누적 거래량 |
unit | tinyint Not Null | 분 단위(유닛) |
create table candle_minute
(
id int unsigned auto_increment comment '아이디',
market_id varchar(15) not null comment '마켓 아이디',
candle_date_time_utc3 datetime not null comment '캔들 기준 시각(UTC 기준)',
candle_date_time_kst datetime not null comment '캔들 기준 시각(KST 기준)',
opening_price double not null comment '시가',
high_price double not null comment '고가',
low_price double not null comment '저가',
trade_price double not null comment '종가',
timestamp long not null comment '해당 캔들에서 마지막 틱이 저장된 시각',
candle_acc_trade_price double not null comment '누적 거래 금액',
candle_acc_trade_volume double not null comment '누적 거래량',
unit tinyint not null comment '분 단위(유닛)',
constraint candle_minute_pk
primary key (id)
);
3. 일봉 캔들차트 테이블(CANDLE_DAY)
필드명 | 타입 | 설명 |
id | int unsigned autoincrement Primary Key | 아이디 |
market_id | varchar(15) Not Null | 마켓 아이디 |
candle_date_time_utc | DateTime Not Null | 캔들 기준 시각(UTC 기준) |
candle_date_time_kst | DateTime Not Null | 캔들 기준 시각(KST 기준) |
opening_price | Double Not Null | 시가 |
high_price | Double Not Null | 고가 |
low_price | Double Not Null | 저가 |
trade_price | Double Not Null | 종가 |
timestamp | Long Not Null | 해당 캔들에서 마지막 틱이 저장된 시각 |
candle_acc_trade_price | Double Not Null | 누적 거래 금액 |
candle_acc_trade_volume | Double Not Null | 누적 거래량 |
prev_closing_price | Double Not Null | 전일 종가(UTC 0시 기준) |
change_price | Double Not Null | 전일 종가 대비 변화 금액 |
change_rate | Double Not Null | 전일 종가 대비 변화량 |
create table candle_day
(
id int unsigned auto_increment comment '아이디',
market_id varchar(15) not null comment '마켓 아이디',
candle_date_time_utc3 datetime not null comment '캔들 기준 시각(UTC 기준)',
candle_date_time_kst datetime not null comment '캔들 기준 시각(KST 기준)',
opening_price double not null comment '시가',
high_price double not null comment '고가',
low_price double not null comment '저가',
trade_price double not null comment '종가',
timestamp long not null comment '해당 캔들에서 마지막 틱이 저장된 시각',
candle_acc_trade_price double not null comment '누적 거래 금액',
candle_acc_trade_volume double not null comment '누적 거래량',
prev_closing_price double not null comment '전일 종가(UTC 0시 기준)',
change_price double not null comment '전일 종가 대비 변화 금액',
change_rate double not null comment '전일 종가 대비 변화량',
constraint candle_day_pk
primary key (id)
);
이렇게 테이블을 설계해두었다. 먼저 마켓 코드 정보를 기반으로 market 테이블에 데이터를 채우고 분봉 데이터 일봉 데이터를 불러내서 테이블에 데이터를 넣는 프로그램을 만들 예정이다.
반응형
'IT 서비스 제작과정 > 개발' 카테고리의 다른 글
유튜브 다운로드 프로그램 웹 서빙 (0) | 2024.04.30 |
---|---|
유튜브 영상 추출 다운로드 프로그램 개발 (0) | 2024.04.30 |
[업비트/차트데이터수집] 2단계 데이터베이스 연동 (0) | 2024.04.14 |
[업비트/코인] 급등종목 모니터링 시스템 구현 (0) | 2024.04.13 |
[비트코인] 업비트 실시간 시세 받아오기 (0) | 2024.04.12 |