Parquet이란?
빅데이터를 처리할 때 많은 시간과 비용이 들어가는데 Parquet을 사용하므로써 데이터를 압축시켜 빠르게 읽게 해줄 수 있는 파일 포맷이다. csv나 xlsx처럼 Parquet(파케이)도 .parquet 이라는 확장자명을 가지고 있다.
<참조자료>
파케이에 대해 좀 더 설명하자면, Parquet 파일로 변환 후 저장하면 열 기반 형식으로 데이터가 저장된다.
열 기반으로 저장한다는 의미는 테이블의 각 컬럼(열)을 하나의 묶음로 저장한다는 의미다.
집계에 최적화되어 있으며 데이터 압축률이 좋고 필요한 컬럼(열)만 빠르게 읽게 해준다.
(※ 참고로 행 기반의 데이터베이스는 Oracle, Mysql이 있으며 '읽고 쓰기'에 최적화되어 있는 일반적인 데이터베이스다.)
그렇다면 Parquet(파케이)는 어떨 때 써야 할까?
보통 아래 두 가지 경우의 문제가 모두 해당한다면 떠오를 듯 하다.
- 데이터가 너무 커서 시간과 비용이 부담되는 경우
- 최종데이터에서 컬럼 단위(열)로 집계 위주로 사용하는 데이터인 경우
Parquet 파일저장하기
import pandas as pd
import pyarrow.parquet as pq
# 데이터프레임을 parquet으로 저장
df_data.to_parquet('df_data.parquet', engine = 'pyarrow', index = False) # compression = ''
엔진(engine) 선택
- 종류: pyarrow(추천), fastparquet
- pyarrow가 fastparquet보다 압축 속도가 훨씬 빠르지만 기본적인 라이브러리 용량이 100배 차이남(트레이드오브 따져서 선택하기)
압축방식(compression) 선택
- 종류: gzip(추천), snappy
- snappy: 압축 속도가 빠르기 때문에 빠르게 읽고 쓰는데 좋지만 의존성 라이브러리 이슈가 종종 있음
- gzip: 압축 속도는 snappy보다 느리지만 시스템에서 기본적으로 잘 지원해줌
Parquet 파일 데이터 프레임으로 읽기
parquet_data = pd.read_parquet('./df_data.parquet', engine = 'pyarrow')
parquet_data
<참조자료>
https://pearlluck.tistory.com/540
https://amazelimi.tistory.com/entry/Parquet-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90
'데이터분석 > Python' 카테고리의 다른 글
[Python] 파이썬으로 빙고 게임을 만들어보자 (0) | 2024.07.17 |
---|---|
[Python] Python 데이터프레임 Mysql로 데이터 내보내기 (0) | 2024.07.12 |
[Python] GA4 파이썬 연동한 데이터 데이터프레임(Dataframe)으로 변환하기 (0) | 2024.07.05 |
[Python] Python에 GA4(Google Analytics4) 연동하고 조회하기 (0) | 2024.07.05 |
[Python] Python에 Bigquery 연동하고 조회하기 (0) | 2024.07.05 |