15분
왜 청크 처리가 필요한가?
Day 1: 1GB CSV 열었더니 컴퓨터가 멈췄다
왜 청크 처리가 필요한가?
pandas 고급 & 대용량 데이터 처리 > Day 1: 1GB CSV 열었더니 컴퓨터가 멈췄다
학습 목표
chunksize 파라미터의 동작 원리를 이해한다 청크 처리의 장단점을 파악한다
청크(Chunk)란?
청크 = 데이터 조각
10GB 파일을 한 번에 읽으면 메모리가 터진다. 그래서 1000만 행씩 나눠서 읽는다.
에디터 로딩 중...
청크 처리의 원리
에디터 로딩 중...
핵심: 한 번에 1개 청크만 메모리에 올림
청크로 할 수 있는 것 vs 없는 것
쉬운 것 (청크별 독립 처리)
| 연산 | 방법 |
|---|---|
| 합계 | 청크별 합계 → 전체 합계 |
| 개수 | 청크별 개수 → 전체 개수 |
| 평균 | (전체 합계) / (전체 개수) |
| 최대/최소 | 청크별 최대 → 전체 최대 |
| 필터링 | 청크별 필터 → concat |
어려운 것 (전체 데이터 필요)
| 연산 | 어려운 이유 |
|---|---|
| 중앙값 | 전체 정렬 필요 |
| 분위수 | 전체 정렬 필요 |
| 상관관계 | 전체 공분산 필요 |
| 랜덤 샘플링 | 전체 크기 필요 |
💡 팁: 정확한 중앙값이 필요하면 reservoir sampling이나 t-digest 같은 근사 알고리즘 사용
chunksize 선택 가이드
에디터 로딩 중...
| 시스템 RAM | 권장 chunksize | 이유 |
|---|---|---|
| 8GB | 50,000 ~ 100,000 | 여유 확보 |
| 16GB | 100,000 ~ 500,000 | 일반적 |
| 32GB+ | 500,000 ~ 1,000,000 | 속도 우선 |
너무 작으면: 오버헤드 증가, 느림 너무 크면: 메모리 부족 위험