1. s3fs 방식
    1. 장점: 메모리를 효율적으로 씀. 파일을 로컬에 쓰지 않은 상태에서 스트림으로 올라감
    2. 단점: 대용량 파일에서 업로드가 상대적으로 더 느림
    3. 예시
      1. df.to_parquet(s3_path, engine="pyarrow")
         to_parquet 안에서 s3fs를 사용하고 있어서 s3 경로를 입력하면 알아서 s3에 업로드
      2. 단, IAM이든 credentials든 인증 확인 필요
  2. buffer + byteIO 방식
    1. 장점: 메모리에 한번에 올려서 상대적으로 부하가 큼
    2. 단점: 업로드가 상대적으로 더 빠름. (대용량 파일 업로드에 적합)
    3. 예시
      1. 바이트 배열을 만들어서 버퍼에 담고 그걸 S3로 올리는 형태 
      2. parquet_bytes = df.to_parquet(compression='gzip', engine='pyarrow', index=False) buffer = BytesIO(parquet_bytes) boto.upload_fileobj_s3(buffer, bucket_name, parquet_path + parquet_name)

 

 

+ Recent posts