Welcome! 🙋‍♂️ View more

Engineering 💻/DB

[MongoDB] Timezone(타임존) 문제와 해결 (feat.Python)

DeepFlame 2022. 2. 19. 21:11

Mongo DB는 Time zone이 UTC로 고정되어 있다. 

따라서 Mongo DB에서 데이터를 불러올 때, Date 형식의 변수 값이 다를 수 있다. 

필자의 경우, pymongo를 통해 데이터를 입력할 때는 정상적으로 되었으나, 추후 Spark를 통해 데이터를 읽어왔을 때 문제가 생겼다.

 

🤔 문제


필자는 네이버 종목토론방의 정보를 다루는 중이라서 이를 예시로 들겠다. 

Mongo DB의 데이터

 

Pyspark를 통해 불러온 데이터

 

살펴보면 시간대가 9시간이 차이나는 것을 알 수 있다. 🤔

이러면 Date로 필터링할 때, 엄청난 혼선을 겪을 수 있다.  필자가 그랬다...

 

생각해보면 Pyspark에서 불러올 때 MongoDB의 시간대는 UTC이고, Pycharm 환경의 시간대는 한국(UTC+9)임으로 자동으로 9시간을 더한 것 같다.

그래서 이를 해결하기 위해서 이것저것 해보았지만, 아래 방법이 가장 나은 것 같았다. 

 

 

💡 해결


해결 방법은 간단하다. datetime 모듈을 활용하여 filtering 해주는 기준에 9시간을 더 하면 된다.

 

 


해결은 간단했지만, 애초에 Mongo DB의 시간대가 다른 줄 몰랐어서 엄청 해맸었던 문제였다... 😤