brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Jun 16. 2024

Python: DuckDB(4)

#DB_API #맘대로SQL #쓰던대로SQL

DB 처럼 사용하기.


이번엔 WITH 도 사용해보고

MONTH, COUNT, ARRAY_AGG, STRFTIME, RANK OVER PARTITION, GROUP BY ALL

등등을 SQL 문장에서 이용해본다.


자세한 설명은 DuckDB Blog 에서 확인할 수 있다.


예제는 Rail Service 관련 open dataset 을 활용하고 있는데

2023년 데이터를 통으로 주는 듯 하다.


먼저 데이터를 내려 받음과 동시에 테이블을 생성하고,

데이터가 몇 개 인지?

데이터 컬럼 구조가 어떤지?

를 확인해 본다.


이러면 일단 테이블이 만들어 졌고 railway_tbl 을 이용해서 컬럼과 데이터 갯수를 확인 할 수 있다.


con.execute() 를 사용해도 좋고

con.sql() 을 이용해도 좋은데




데이터가 꽤 많은 것으로 보이지만 컬럼 갯수는 크지 않기 때문에 메모리 용량에 큰 문제는 없었다.


이 데이터에서 확인해 보려는 사항은

'각 월별로 가장 많이 이용되는 STATION을 TOP3로 보여주기' 이다.


이걸 SQL 로 옮겨놓은 것을 확인해보니

재미있는 콘텐츠를 직접 실습해보고 소개할 수 있어서 기쁘다.


SQL 이 더 익숙한 사람들에게는 Relational API 보다 매력이 있는 부분이 존재한다.

참고로 이걸 Pandas 에서 읽어들이려고 하면 메모리가 감당을 못하고 쥬피터 커널이 계속 죽는 현상이 관찰된다.

작가의 이전글 Python: DuckDB(3)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari