본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[Python] 🧙‍♂️✨ 빅데이터 저장 공간 최적화: Parquet의 압축 기능과 CSV 비교

by 데이터 벌집 2023. 11. 14.
반응형

데이터 저장은 데이터 과학의 세계에서 끊임없는 토론의 주제입니다. 🌍 오늘은 두 가장 인기 있는 데이터 저장 형식, Parquet과 CSV를 비교해보려고 합니다. 각각의 형식이 어떤 상황에 가장 적합한지, 그리고 데이터 과학자와 분석가들이 왜 특정 형식을 선호하는지 살펴보겠습니다. 🧐

 

이 포스팅을 통해 각 형식의 장점을 탐구하고, 실제 Python 코드를 통해 AWS 클라우드로의 저장 과정을 단계별로 알아보겠습니다.

Parquet vs. CSV


Parquet

Parquet 파일: 분석가의 최적화된 선택 Parquet 형식은 ‘분석 친화적’이라는 명성에 걸맞게, 빅데이터를 다룰 때 눈부신 성능을 발휘합니다. 이진 형식의 Parquet은 데이터를 컬럼별로 저장하며, 각 컬럼의 데이터 유형에 가장 효율적인 압축 방식을 적용합니다. 이는 특히 대용량의 데이터를 빠르게 읽고 쓰는 데 이점을 제공하죠. 

 

 

 

import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq
import boto3
from io import BytesIO

# 데이터 프레임을 생성하고 Parquet 파일로 변환
df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
})
table = pa.Table.from_pandas(df)
buffer = BytesIO()
pq.write_table(table, buffer)

# S3에 저장
s3_client = boto3.client('s3')
bucket_name = 'your-bucket-name'
parquet_file_name = 'data.parquet'
s3_client.put_object(Bucket=bucket_name, Key=parquet_file_name, Body=buffer.getvalue())

 

이 코드는 pyarrow 라이브러리를 이용해 데이터프레임을 Parquet으로 변환하고, boto3의 put_object 함수를 사용해 S3 버킷에 바로 업로드합니다.


CSV

CSV 파일: 범용성과 접근성의 대명사 반면, CSV는 텍스트 기반으로 데이터를 쉼표로 구분하여 저장하는 형식입니다. 이는 사람이 직접 읽고 이해할 수 있으며, 대부분의 프로그래밍 언어와 데이터 분석 도구에서 널리 지원되는 형식입니다. 간단하고 이해하기 쉬운 CSV는 작업의 빠르고 효율적인 진행을 돕습니다. 😌

 

import pandas as pd
import boto3
from io import StringIO

# 데이터 프레임을 생성하고 CSV 문자열로 변환
df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
})
csv_buffer = StringIO()
df.to_csv(csv_buffer, index=False)

# S3에 저장
s3_client = boto3.client('s3')
bucket_name = 'your-bucket-name'
csv_file_name = 'data.csv'
s3_client.put_object(Bucket=bucket_name, Key=csv_file_name, Body=csv_buffer.getvalue())

 

이 코드는 Pandas to_csv 메서드를 사용해 데이터프레임을 CSV 문자열로 변환하고, 이를 S3 버킷에 업로드합니다


 



결국, 선택은 여러분의 데이터의 특성과 요구에 달려 있습니다. 대규모 데이터셋에 복잡한 데이터 처리가 필요하다면 Parquet이 당연한 선택일 것입니다. 반면에, 간단한 작업이나 빠른 작업이 필요한 경우, 혹은 데이터를 쉽게 읽고 싶을 때는 CSV가 여전히 유용할 수 있습니다. 🤔 데이터의 세계는 다양하고 복잡하지만, 올바른 도구를 선택함으로써 여러분의 데이터를 더욱 빛나게 만들 수 있습니다. ✨

반응형