다음 <보기>의 상황에서 저장 형식을 선택한 근거로 가장 적절한 것은?
보기
하루 수억 건의 이벤트 로그를 수집·적재하는 시스템을 설계하고 있다.
- 전체 파일을 메모리에 다 올릴 수 없어 한 건씩 흘려보내며 처리해야 한다.
- 수집 중 일부 구간이 손상되어도 나머지는 계속 처리되어야 한다.
이에 따라 전체를 하나의 거대한 JSON 배열로 만들지 않고, 한 줄에 하나의 JSON 객체를 기록하는 방식(JSON Lines)을 채택하였다.
- 1JSON Lines는 이진 형식이므로 텍스트 JSON보다 파일 크기가 작아지기 때문이다.
- 2JSON Lines는 스키마를 강제하므로 모든 줄이 동일한 키를 갖도록 보장해 주기 때문이다.
- 3한 줄에 하나씩 기록하면 데이터가 자동으로 정형 데이터로 전환되어 SQL로 바로 조회할 수 있기 때문이다.
- 4거대한 단일 배열은 스트리밍 파싱이 어렵고, 한 곳이 깨지면 전체가 무효가 되기 때문이다.
꿈라CBT