* 메모리에 데이터를 올린다 : 작업하기 위해 책상 위에 데이터를 올린다.
* 디스크에 데이터를 저장한다 : 데이터를 창고에 넣어둔다. 넣어두는 방식도 다양하다. (차곡차곡 or 꺼내기 쉽게)
1) csv, txt
- 가장 흔한 포맷으로, 개발이나 분석 직군이 아닌 사람도 많이 다루는 유형
- CSV는 Comma-separated values의 약자로, 콤마로 구분된 정형 데이터
- Comma(,) 대신 Tab(\t)과 같은 다른 구분자seperator를 사용할 수도 있다
- Tab(\t)을 구분자로 사용하는 tsv는 이미 데이터 안에 Comma(,) 가 있을 때 사용한다.
- 데이터 안에 구분자가 들어있는 경우, 방어할 수는 있지만 깨질 위험 있다.
- 가장 느리고, 무거워서 소규모 데이터가 아니면 부적절
- 내부적으로는 encoding(utf-8, cp949 등)에 따라 다르게 저장된다.
2) json
- csv, txt와 크게 다르지는 않다 > 별도의 압축과정이 없다.
- 단, 저장된 자료를 python의 dictionary와 같은 형식으로 강제하며, 이를 JSON Object라 한다.
- ex) {”키”:”값”}
- dict와 같은 것은 아님. 파이썬의 dict를 json으로 변환하여 사용할 수 있으며, 이를 dump한다고 한다.
- 여러 JSON Object를 JSON Array에 담을 수 있다.
- 비교적 개발자의 선호도가 높으며, 비교적 대용량의 데이터도 JSON으로 관리하는 경우가 많다.
- API 통신도, 보통 JSON 형식으로 함
- 하지만 여전히 무거워서 대용량 데이터를 다루는데는 불편
- txt와 마찬가지로 encoidng방법에 따라 다르게 저장되는데, utf-8을 사용하는 것이 일반적
- 병렬처리에서 그리고 때로는 분산처리에서 내부 데이터를 pickle로 직렬화Serialize한다.
3) Pickle
- 하나의 컴퓨터로 개인용 프로젝트에서 데이터를 관리할 때 편리한 데이터 형식
- 버전과 운영체제에 대한 의존Dependency이 있기 때문에 협업할 때 데이터를 주고 받으면 작동하지 않을 위험이 있다
- 위의 유형(csv, json)보다 2~30% 정도 용량이 가볍다
- read/write 속도가 수십배 이상 빠름
- nested type(중첩칼럼)을 지원
4) Parquet
- 대용량 데이터 저장에서 표준입니다. 보통 “파케이”라고 읽음
- 굉장히 가볍고, 빠름! 개인적으로는 거의 parquet를 사용
- 다수의 OLAB Database가 내부적으로 parquet를 사용하여 데이터를 저장
- read/write 속도가 가장 빠름
- Spark 또한 Parquet를 지원
- 다른 개발도구가 없으면 열기 쉽지 않다.

5) 기타
- arrow나 hdfs, feather도 때에 따라 유용하게 사용하긴함
- 위와 같은 압축, 속도가 가능한 이유는 기본적으로 칼럼기반columnnar이기 때문!
I/O (Input & Output)
- 다양한 맥락에서 쓰이지만, 여기서는 데이터의 입출력을 말하는 것
I/O의 메모리 사용
- 전처리에서 잘 돌던 데이터가, 저장save에서 터지는(OOM) 경우가 있다
I/O Speed
- 언급한 것 중 가장 빠른 데이터 수급은 메모리
- 좀 더 자세히는 Network < Disk < Memory 순으로 빠름
- 이러한 이유로 In-memory DB를 사용하기도 함
- 스파크는 기본적으로 모든 데이터를 Memory에서 처리함
- 내부적으로는 lazy computation 등으로 좀 더 복잡
'SPARK' 카테고리의 다른 글
| [SPRAK] 스파크를 최대한 안쓰기 위한 방법 (Sampling,분할처리,Dask,자동화) (0) | 2024.07.18 |
|---|---|
| [SPARK] 병렬 처리, 분산 처리, Vectorize, CPU, GPU,Joblib (1) | 2024.07.18 |
| [SPARK] 클라우드 사용 이유 3가지 (스토리지, 엔진, 데이터베이스) (0) | 2024.07.15 |
| [SPARK] (중요)파이썬과 데이터 - RAM, Disk, CPU, Data type (0) | 2024.07.15 |
| [SPARK] SPARK란? 사용이유 (0) | 2024.07.15 |