큰 CSV를 엑셀 대신 SQL로 다루기, SQLite에 불러와 조회하는 방법
수천 행짜리 CSV에서 도시별 매출 합계나 특정 조건의 주문만 뽑아내려면, 엑셀에서는 피벗 테이블과 필터를 여러 번 거쳐야 합니다. 이럴 때 CSV를 SQLite라는 가벼운 데이터베이스에 한 번 넣어 두면, SQL 한 줄로 원하는 집계를 바로 꺼낼 수 있습니다.SQLite는 서버를 따로 설치할 필요 없이 파일 하나로 동작하는 데이터베이스입니다. 파이썬에는 기본으로 들어 있어 별도 설치도 필요 없습니다. CSV를 넣고 조회하는 과정을 실제 데이터로 해 보겠습니다. 다룰 CSV주문 내역을 담은 간단한 CSV를 예로 씁니다.실제로는 수천, 수만 행이어도 방법은 같습니다.order_id,city,product,amount1,서울,키보드,320002,부산,마우스,180003,서울,모니터,210000... (..
더보기
Parquet 저장할 때 compression만 바꿨을 뿐인데 용량이 갈립니다, 코덱 3종 실측 비교
데이터를 Parquet로 저장하다 보면 compression 옵션에 snappy, gzip, zstd 같은 낯선 이름이 등장합니다.아무거나 골라도 열리기는 하니 대충 넘기기 쉽지만,이 한 줄이 파일 크기와 저장 속도를 꽤 크게 바꿔 놓습니다. 그래서 같은 데이터를 코덱만 바꿔 가며 실제로 저장해 크기와 시간을 재 봤습니다.결론부터 말하면 무조건 가장 작은 코덱이 정답은 아니었습니다. 30만 행을 코덱 네 가지로 저장해 봤습니다회원 명단 형태의 표 데이터 30만 행(컬럼 9개: id, name, age, city, category, status, amount, score, joined)을 만들고,같은 데이터를 코덱만 바꿔 저장했습니다.측정 환경은 윈도우 11, 파이썬 3.14.3, pandas와 pyarr..
더보기
CSV를 열었더니 주소 뒷부분이 옆 칸으로, 값 속 쉼표 때문에 열이 밀리는 문제
이름과 주소가 잘 정리돼 있던 CSV를 프로그램으로 읽었더니,주소 한 칸이 두 칸으로 쪼개지면서 그 뒤 금액까지 줄줄이 옆으로 밀려 버리는 경우가 있습니다.데이터는 멀쩡한데 표만 어긋난 것처럼 보입니다. 범인은 대개 값 안에 들어간 쉼표입니다. CSV는 쉼표로 칸을 나누는 형식이라,주소나 회사명처럼 값 자체에 쉼표가 들어 있으면그 지점에서 칸이 하나 더 생겨 버립니다. 실제로 재현하고 바로잡아 보겠습니다. 이런 데이터에서 문제가 생깁니다id, name, address, amount 네 칸짜리 CSV를 예로 들겠습니다.그런데 주소 값 안에 상세 번지를 쉼표로 붙여 놓았습니다.id,name,address,amount1,김민수,서울시 강남구 역삼동, 123-4,500002,이서연,부산시 해운대구 우동, 5-6..
더보기