데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Data Projects에서 I/O Optimization

      홍반장 24.08.26
      1,122 9 0
      DEVOTEE 요약
      일반적인 데이터 ML 프로젝트에서는 알고리즘 최적화 외에도 I/O 작업 최적화를 통해 성능을 개선할 수 있습니다. CSV는 비효율적인 데이터 저장 형식이며, Feather와 Parquet 형식이 더 적은 메모리를 사용하고 더 빠른 읽기/쓰기 성능을 보여줍니다. CSV 문제를 인식하고 데이터를 저장할 상황에 맞는 최적의 형식을 선택하는 것이 중요합니다.

      일반적인 데이터 ML 프로젝트에서 최적화 노력(실행 시간과 메모리)은 보통 알고리즘 측면에 집중됩니다.

      하지만 I/O 관련 작업을 최적화함으로써도 상당한 개선을 경험할 수 있습니다.

      스크린샷 2024-06-29 오전 10.52.14.png

      데이터 저장에 가장 일반적인 옵션은 CSV이지만, 이는 시간과 저장 효율이 매우 낮습니다.

      개선하는 방법에 대해 알아보겠습니다.

      CSV 외에도 DataFrame을 저장할 수 있는 다양한 다른 옵션이 있습니다.

      스크린샷 2024-06-29 오전 10.54.03.png

      따라서 데이터 파이프라인을 최적화하기 위해 다음 매개변수에 대한 성능을 비교하는 것이 유용할 수 있습니다:

      • 디스크에서 차지하는 공간

      • 읽기 및 쓰기 실행 시간

      이 실험을 위해, 다음과 같은 가상의 데이터를 생성했습니다:

      • 100만 행

      • 20개의 열

        • 사례 1: 숫자 열만 포함된 경우.

        • 사례 2: 숫자 열 10개와 문자열 열 10개가 포함된 경우.

      테스트는 단일 노드에서 했습니다.

      다음 시각 자료는 각 형식에 저장된 경우 DataFrame(사례 1 및 사례 2)의 메모리 사용량을 나타냅니다:

      스크린샷 2024-06-29 오전 10.56.52.png

      위에서 언급한 바와 같이:

      • 두 경우 모두 CSV는 DataFrame을 저장하기에 가장 최적의 형식이 아닙니다.

      • 숫자 데이터의 경우, Parquet는 CSV보다 2배 이상 적은 공간을 차지합니다.

      • 숫자 데이터의 경우, Feather도 유망합니다.

      • 혼합 열의 경우, JSON을 제외한 모든 형식이 거의 동일한 공간을 차지합니다.

      다음으로, 아래 자료는 DataFrame을 해당 형식으로 저장하는 데 걸리는 실행 시간을 나타냅니다:

      스크린샷 2024-06-29 오전 10.58.29.png

      위에서 언급한 바와 같이:

      숫자 열만 있을 경우, DataFrame을 pickle로 저장하는 것이 CSV보다 훨씬 빠릅니다. 하지만 혼합 열이 있는 경우 실행 시간이 크게 증가합니다.

      Feather는 두 경우 모두 가장 적은 실행 시간을 가지므로 명확한 승자입니다. 또한, 앞서 언급한 저장 결과에서도 Feather 형식이 가장 유망한 형식 중 하나였습니다.

      여기서 Parquet 형식도 유망합니다.

      마지막으로, 아래 시각 자료는 해당 형식으로 저장된 DataFrame을 메모리에서 로드하는 데 걸리는 실행 시간을 나타냅니다:

      스크린샷 2024-06-29 오전 10.59.35.png

      위에서 언급한 바와 같이:

      숫자 열이 있는 경우 Pickle, Feather, Parquet의 읽기 시간이 가장 짧습니다.

      하지만 혼합 열이 있는 경우 Parquet의 읽기 시간이 크게 증가합니다.


      Feather는 두 경우 모두 실행 시간이 짧아 가장 유망한 형식으로 보입니다.


      CSV는 최적의 선택이 아닙니다.

      Excel에서 열거나 지속적으로 데이터를 추가해야 할 때만 사용하세요.

      CSV는 데이터 유형 정보를 보존하지 못합니다.


      Pickle은 데이터 유형을 보존하지만, 혼합 열의 경우 실행 시간이 나빠집니다.

      또한, Python 전용입니다.


      Feather와 Parquet 비교:

      • Feather는 약간 더 많은 메모리를 사용하지만, 실행 시간이 빠릅니다.

      • Parquet는 숫자 데이터에 적합하고, 저장 공간 활용이 우수합니다.

      CSV의 문제를 인식하고, 상황에 맞는 최적의 형식을 선택하는 것이 성능 개선에 도움이 될 것 같습니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      홍반장 님의 최신 블로그

      더보기
      동영상 기고하기