본문 바로가기
Project/TeamFightTactics

[데이터 저장] 프로젝트 정의서

by Wikinist 2023. 8. 7.

[TFT 게임 각 서버 최상위 플레이어들의 매치 데이터 저장]

  • 기간: 2023-07-31 ~ 2023-08-03 (총 4일)
  • 리더: 신충섭
  • 정의: Riot API를 활용하여 수집한 TFT 데이터를 MySQL DB에 저장합니다.
  • 목적: 저장한 TFT 매치 데이터를 통하여 메타분석, 챔피언이나 아이템들의 상관관계를 분석할 수 있습니다.
  • 범위: 16개의 서버에 대한 TFT 데이터 테이블(Player, PlayerStatistic, Match, MatchPlayer, MatchAugment, MatchTrait, MatchUnit)을 생성하고 데이터를 삽입합니다.
    • 서버 정보는 다음과 같습니다.
    • 브라질(BR1), 유럽서부(EUW1), 유럽북동(EUN1), 일본(JP1), 한국(KR), 라틴아메리카북부(LA1), 라틴아메리카남부(LA2), 북미(NA1), 오세아니아(OC1), 필리핀(PH2), 러시아(RU), 싱가포르(SG2), 태국(TH2), 터키(TR1), 대만(TW2), 베트남(VN2)

[할 일 목록]

[1일차]

1. 논리적 구조 변경

  • 최종적으로 DB에 저장될 데이터의 타입들을 확인하고 변경합니다.
    • unixtime->datetime
  • version 정보를 따로 분리합니다.
  • 구조 변경에 따른 코드 변경 작업을 수행합니다.

2. ERD 작성

  • 수집하지 않은 Master table을 제외한 ERD를 작성합니다.

[2일차]

1. ERD 작성

  • 키속성과 관계만 정의해 둔 ERD에서 다른 속성들을 추가합니다.

2. 테이블 정의서 작성

  • 작성한 ERD를 참고하여 테이블 정의서를 작성합니다.

[3일차]

1. 데이터 적재

  • 수집한 csv파일로부터 DB에 데이터를 적재합니다.

[4일차]

1. 분석 쿼리 작성

  • 데이터가 저장된 DB를 이용하여 여러 분석쿼리를 작성합니다.

[이슈 항목]

1. Data import wizard 문제

  • utf-8 형식의 csv파일을 data import wizard를 사용하여 import 할 시 "unhandled exception 'cp949'"에러가 발생합니다.
  • ANSI 형식으로 변경 후 import하면 데이터가 들어는 가지만 일본어 데이터가 깨지는 현상이 발생합니다.
  • csv 파일을 json 형식의 파일로 변경하면 에러 없이 import 가능했습니다.