티스토리 뷰

이전 편에서 데이터를 Google Cloud의 BigQuery에 담는 것 까지 진행을 했다. 사실 빅쿼리가 오버스펙이기는 하지만 쿼리 감각이 5년 전에서 멈춰있었기 때문에 이쯤에 개인 프로젝트로 쿼리 감을 되찾자는 것도 있었고, 빅쿼리를 통해 연동되는 GCP( Google Cloud Platform )의 여러 가지 부가적인 기능을 공부하자는 목적도 있었다.

 

아무튼, 지난시간까지 데이터를 적재하는 부분은 어느 정도 끝났기 때문에 데이터 모양새는 꽤 나쁘지 않게 쌓이고 있다. 현재는 대략 한 달치 이상의 데이터가 쌓이기를 기다리고 있는 시기인데 데이터가 충분히 쌓였을 때 다음 계획에 대해서 이것저것 생각해보고 있다. 사실 프로젝트의 목적은 "용인-> 강남 버스 출근 앉아가기"지만 이미 적은 데이터로도 앉을 수 있는 시간대는 찾았다. 대략 09:40 ~ 10:00 정도에는 무조건 앉을 수 있는 버스가 온다. 하지만 뭔가 쌓여있는 데이터로 그럴듯한 시각화( Visualization )를 보여주거나 BigQueryML 까지 붙여볼 수 있다면 이 프로젝트를 마칠 때 훨씬 더 뿌듯함을 느낄 수 있겠다.

 

쌓여있는 데이터에서 필요한 컬럼을 뽑아보면 대략 아래와 같다. 데이터는 9월 18일, 19일 양일간 09시~10시 사이에 정류소 도착 1분 전인 버스들의 정보이다. 데이터를 시각화할 때 필요하다고 생각되는 칼럼의 데이터만 추출했다.

18일, 19일 09시-10시 데이터

 

얼핏 봐도 알 수 있지만 09:00~09:30 사이는 앉을 수 있는 확률이 조금 낮다. 앞선 버스들의 빈자리가 계속 없기 때문에 정류소에서 기다리는 사람들은 앉을자리가 없는 버스를 그냥 보내고 앉을 수 있는 버스를 기다리고 있을 것이다. 이런식으로 데이터를 조금만 살펴봐도 이미 답은 나와있다.

 

자, 이제 앞으로 진행하고 싶은, 혹은 진행하게 될 내용들에 대해서 기록으로 남겨두도록 한다.

 

1. 빅쿼리 튜닝이 필요하다. 현재는 말도 안 되는 방법으로 데이터를 뽑아내고 있는데 역시 쿼리 공부가 필요하겠다. 09시-10시 데이터 추출을 위해 "WHERE EXTRACT(HOUR FROM date)=09  AND EXTRACT(MONTH FROM date)=09 " 이런 조건을 사용하고 있는 것부터가 마음에 들지 않는다. 

 

2. 데이터 시각화에 대해서 공부해본 적이 없어서 직관적이고 많은 정보를 쉽게 전달 할 수 있는 방법을 모른다. 다만 빅쿼리에서 자연스럽게 연동할 수 있는 데이터 스튜디오를 이용해 보면 이것도 좋은 경험이 될 듯해서 방향을 잡고 있다.

 

3. BigQueryML을 통해서 앉을 수 있는 시간대를 찾아보고 싶다. 얼핏 보면 데이터를 스윽 살펴봐도 크게 문제가 없지만 월요일의 특수성이나 방학기간, 휴가철 등을 기계학습을 통해 잡아낼 수 있지 않을까 하는 게 현재의 생각이다. 아마도 정확도를 높이려면 최소 1년 치 이상의 데이터가 쌓여야겠지만 말이다. 

 

다음은 1번 빅쿼리 튜닝에 대한 번외 글이 되기를 바라면서 글을 마친다.

 

- 다음 편에 계속

 

댓글
댓글쓰기 폼