일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- delegate
- JSON
- 경기도 버스
- eventargs
- Excel Cell Format
- 공공 데이터 포털
- MDB Select
- WPF
- 버스 API
- c#
- DrawRectangle
- eventhandler
- TDD
- GDI+
- C# 파일 암/복호화
- Winform
- 시
- 객체지향
- solid
- C# MDB
- MDB Connect
- NUnit
- MVC
- C# MDB Handle
- sqlite3
- Cell Border Style
- DrawEllipse
- 디자인 패턴
- 경기도 버스정보시스템
- Json.NET
- Today
- Total
White Whale Studio
[경기도 버스 정보 시스템 API] 기반 정보에 대해서 본문
앞선 포스팅에서 언급한 바와 같이 기반정보에 대해서 살펴보겠습니다.
요청 URL은 다음과 같습니다.
openapi.gbis.go.kr/ws/rest/baseinfoservice?serviceKey=test
서비스 키는 알아서 하시리라 믿습니다.
baseInfoItem | String | 기반정보 목록 |
routeVersion | String | 노선정보 버전 |
routeDownloadUrl | String | 노선정보 다운로드 경로 |
stationVersion | String | 정류소 정보 버전 |
stationDownloadUrl | String | 정류소 정보 다운로드 경로 |
routeStationVersion | String | 노선-정류소 정보 버전 |
routeStationDownloadUrl | String | 노선-정류소 정보 다운로드 경로 |
areaVersion | String | 운행지역 정보 버전 |
areaDownloadUrl | String | 운행지역 정보 다운로드 경로 |
제공하는 정보는 위와같이 있긴한데 핵심은 txt 파일입니다.
파일이름 + 받은 날짜.txt로 되어 있는데..
다른 파일들은 괜찮습니다만... routeline 이 가장 큰 골칫거리입니다.
txt 파일인데 데이터가 87mb 가까이 하다보니 이 놈을 가지고 어떻게 처리를 해야할지 고심을 해야만 했습니다.
구상하는 방법을 살펴보자면
1. txt를 그대로 StreamReader로 읽어 필요한 정보만 읽는 방법
테스트 결과 어느 정도 속도를 내면서 읽을 수는 있었습니다만... 데이터 자체가 워낙 많다보니 여기서 또다시 추출할 정보와 구조 파악 때문에 시간이 많이 소모될 것같아 일단 보류
2. SQLite를 비롯한 DB에 저장
보통 DB에서 파일을 Import하기 위해서는 csv 형태로 많이 받는데... 파일을 2개로 나누어 해보아도 40여mb 인데 넣어보니 역시나 out of memory 문제로 실패 아오...;;
3. txt에서 뽑아온 정보를 다시 추출해서 XML로 저장
1.번을 약간 변형 시킨 방법인데 추출된 파일자체는 저용량이라 나름 실용적으라 생각이 들었지만 이러한 작업이 반복되다보면 시스템 속도 면에서 부하를 일으키지 않을까하는 생각이 들더군요.
속도면에서는 당연히 DB가 가장 우수할 것으로 예상이되는데 파일 자체를 넣지 못하니 ;;;
다른 방법을 모색해 봐야겠습니다.
2번을 다른 방법으로 시도해봐야겠죠. 1번으로 읽어들인 Stream을 한 줄씩 DB에 저장하는 방식을 시도해볼 겁니다.
------------------- 계속 ------------------
위에서 말씀드린 데이터에 대해서 MS SQL을 대상으로 한줄씩 읽어 입력하는 방법을 시도했습니다.
작동은 정상적으로 됩니다만 시간이 굉장히 많이 소요 된다는 단점이 있더군요.
거의 200만 행이 입력되다보니 사실 한시간 이상 걸린것 같습니다..ㅠㅠ
다른 DB를 쓴다면 속도가 더 날지는 모르겠습니다만..
아무튼 이 데이터 처리는 저에게만큼은 다분히 머리가 아픈것만은 확실하군요.
'IT Engineering > 경기도 버스 API' 카테고리의 다른 글
[경기도 버스 정보 시스템 API] 기반 정보에 대해서 - 2 (4) | 2013.08.22 |
---|---|
[경기도 버스 정보시스템 API] API의 사용법 및 관련 정보 (3) | 2013.08.19 |