데이터가 향후 어떻게 사용될지 고려해 포맷을 선택해야 한다. 고려해야할 몇 가지 질문 리스트
데이터 직렬화(data serialization)란 데이터 구조나 객체 상태를 저장 혹은 전송하고 나중에 재구성할 수 있는 포맷으로 변환하는 프로세스이다. 직렬화 포맷은 매우 다양하다. 작업할 포맷을 고려할 때는 액세스 패턴, 사람이 읽을 수 있는지(human readability), 테스트인지 이진birnay인지(파일 크기에 영향을 미침_ 등 다양한 특성을 고려한다.
흔히 사용하는 데이터 포맷 및 사용 위치 표
포맷 | 이진/텍스트 | 사람이 읽을 수 있는가? | 유스 케이스 |
---|---|---|---|
JSON | 텍스트 | Y | 매우 다양 |
CSV | 텍스트 | Y | 매우 다양 |
파케이 | 이진 | N | 하둡, 아마존 레드시프트 |
Avro | 이진 포맷이 기본 | N | 하둡 |
Protobuf | 이진 포맷이 기본 | N | 구글, 텐서플로(TFRecord) |
Pickle | 이진 | N | 파이썬, 파이토치 직렬화 |