행궁동 데이터 엔지니어

반응형

버스도착정보 데이터를 다시 보니, 도착 예정 버스가 몇 정류장 전에 있고 몇 분 후에 도착한다는 정보가 있어 여러 정류장에서 데이터를 수집할 필요가 없었습니다.

 

따라서 제가 버스를 타는 정류장 2곳 과, 내리는 정류장 1곳에서만 데이터를 수집하도록 설정하고 대신 8분 간격 수집에서 1분 간격으로 변경했습니다. 내일부터는 1분 단위로 버스정보를 볼 수 있게 되었습니다.

 

그리고 오늘은 AWS에 데이터베이스 서버를 구성했습니다.

(사실 구성이라기 보단 확인 했습니다. 제가 선택한 AWS EC2 서버에 MariaDB 10.1이 기본으로 설치되어 있었습니다.)

 

설정 정보 

- 수집 데이터 항목 : 버스 도착정보 데이터(도착까지 남은 시간과, 잔여좌석 수 포함)

- 수집 버스 정보 : 수원에서 잠실로 이동하는 1007번 버스 (정류소 3곳)

- 수집 시간 : 매일 04:40 ~ 09:00, 1분 간격으로 수집

- 사용 API(REST) : https://www.data.go.kr/dataset/15000175/openapi.do

- 서버 : AWS EC2 Ubuntu 18.04.3 LTS

- 수집 코드 : Python 3.7

- 수집 설정 방법 : Crontab

- 데이터베이스 : MariaDB 10.1.43

 

Crontab 설정 내용

서버시간이 UTC+0으로 한국보다 9시간 느린것을 고려해서 설정

ㅇ 서버시간(UTC+0), 한국 시간이 UTC+9이기 때문에 Crontab에 수집하려는 시간 -9시간으로 설정

ㅇ 수집 시간 : 매일 04:40~09:00
- 04:40 ~ 04:59 (19:40 ~ 19:59)
40/1 19 * * * /home/ubuntu/get_bus_data/collect_bus_data.sh 2>> /home/ubuntu/error.log
- 05:00 ~ 08:59 (20:00 ~ 23:59)
*/1 20~23 * * * /home/ubuntu/get_bus_data/collect_bus_data.sh 2>> /home/ubuntu/error.log

ㅇ 최종 크론탭
40/1 19 * * * /home/ubuntu/get_bus_data/collect_bus_data.sh 2>> /home/ubuntu/error.log
*/1 20~23 * * * /home/ubuntu/get_bus_data/collect_bus_data.sh 2>> /home/ubuntu/error.log

 

데이터베이스 구축(확인)

MariaDB가 설치되어있는지 확인, 아주 간단한 명령어

apt list | grep mariadb

MariaDB 10.1.43 설치 확인

MariaDB 실행하여 데이터베이스 확인 및 bus라는 데이터베이스 생성

sudo mysql

show databases;
create database bus;
show databases;

데이터베이스 확인 및 생성

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band