빅데이터 파일

가장 적합한 빅데이터 파일 형식 고르는 방법

Wambui Mugo
Wambui Mugo

최근 업데이트

대규모 데이터셋을 관리하는 데는 여러 복잡한 문제가 따라요. 빅데이터를 저장하면 비용이 더 들고, 데이터를 처리할 때도 네트워크, CPU, 입출력 비용이 추가로 발생해요. 일반적으로 데이터셋이 클수록 저장과 처리 비용도 커져요.

먼저 기본 개념부터 살펴볼게요.

빅데이터란 무엇인가요?

빅데이터는 기업이 수집한 정형, 반정형, 비정형 데이터가 혼합된 데이터예요.

사실 모든 용도에 딱 맞는 이상적인 형식은 없어요. 더 작고 빠른 데이터 구조는 비즈니스 분석 앱에 더 유리해요. 데이터 관리 측면에서 최신 앱과 비즈니스 분석 도구에는 데이터를 가장 적합한 파일 형식으로 변환하는 과정이 필요해요.

빅데이터 분석에 가장 널리 쓰이는 파일 형식으로는 Avro, JSON, Parquet, CSV가 있어요.

그렇다면 사용할 파일 형식을 고를 때 무엇을 고려해야 할까요?

  • 가독성.
  • 쓰기에 걸리는 시간과 데이터 구조의 복잡성.
  • 압축 지원.
  • 스키마 변경 지원.
  • 파일 분할 가능 여부.

기본 개념을 살펴봤으니, 이제 각 파일 형식을 자세히 알아볼게요.

JSON

JavaScript 객체 표기법(JSON)은 웹 통신에서 흔히 선택하는 파일 형식이에요. 사실상의 표준 파일 형식으로 자리 잡은 이유는 무엇일까요?

첫째, 읽기 쉬워서 앱에서 데이터를 전송하기 편해요. 둘째, 복잡하고 중첩된 데이터 구조를 지원해요. 셋째, 문서 크기가 훨씬 작아요. 마지막으로, 클라우드 기술, IoT, 모바일 앱에 쉽게 통합할 수 있어요.

Couchbase, Cassandra, Azure Cosmos DB, Amazon DynamoDB, MongoDB 같은 NoSQL 데이터베이스에서 흔히 사용해요.

JSON 사용의 장점

  • 대부분의 언어가 JSON을 기본 지원하며, 직렬화와 역직렬화를 간편하게 처리하는 라이브러리를 제공해요.
  • 계층 구조를 지원해 하나의 문서에 데이터를 저장하고 복잡한 관계를 표현하기 쉬워요.
  • 객체 목록을 지원해요.
  • 현재 사용되는 대부분의 도구가 JSON을 기본 지원해요.

단점

  • 성능 저하로 이어지는 경우가 많아 데이터 분석과 저장에 가장 적합한 형식은 아니에요.
  • 행 기반 형식이어서 열 기반 형식보다 압축률이 낮아요.
  • 모든 레코드에 메타데이터가 포함되어 다른 형식보다 데이터 용량이 훨씬 커요.

CSV

쉼표로 구분된 값(CSV) 파일은 JSON처럼 행 기반 형식이에요. 일반 텍스트를 사용해 시스템 간에 표 형태의 데이터를 교환할 때 많이 쓰여요. 그래서 스프레드시트를 자주 다루는 사람들이 선호해요.

데이터를 공유하기 쉬워 일반 사용자용, 과학용, 업무용 애플리케이션에서 널리 사용해요.

CSV 사용의 장점

  • 사람이 읽을 수 있고 직접 편집하기도 아주 쉬워요.
  • 스키마가 단순하고 명확해요.
  • 거의 모든 애플리케이션이 CSV를 처리할 수 있어요.
  • 파싱과 구현이 쉬워요.

단점

  • 특수 문자와 열의 데이터 유형을 제대로 지원하지 못해요.
  • 바이너리 데이터를 표현하는 표준 방식이 없어요.
  • 따옴표와 NULL을 명확하게 구분하지 않아 CSV 파일을 가져오기가 까다로워요.
  • 복잡한 구조를 다룰 수 없어요.

Parquet

앞서 살펴본 두 가지 대표 형식에 비하면 비교적 새로운 형식이에요. 2013년에 출시되었으며, 중첩된 데이터를 열 기반 형식으로 저장해요. 덕분에 성능과 데이터 저장 효율이 매우 높아요.

Parquet 개발자들은 빅데이터 문제를 해결하는 데 가장 적합한 형식이라고 말해요. WORM(한 번 쓰고 여러 번 읽기)에 최적화되어 있어요. 대량의 데이터를 읽어야 한다면 Parquet이 좋은 선택이에요. 쓰기는 어렵지만 읽기는 아주 쉬워요.

대규모 데이터셋을 다루는 데이터 웨어하우스 솔루션에 가장 적합해요.

Parquet 사용의 장점

  • 압축률이 최대 75%로 매우 높아요.
  • 열 기반 형식이라 디스크 입출력을 줄여줘요.
  • 데이터 읽기 작업에서 가장 빠른 형식이에요.
  • 백업, 이동, 복제가 쉬워 파일을 편리하게 다룰 수 있어요.

단점

  • Spark 외에는 이 파일 형식을 지원하는 도구가 없어요.
  • 스키마 변경이나 데이터 수정을 지원하지 않아요.

Avro

Hadoop이 2009년에 출시한 Avro는 직렬화 플랫폼으로 사용되는 행 기반 형식으로, 파일을 분할하기가 매우 쉬워요. 데이터를 바이너리 형식으로 저장하므로 효율이 높고 크기도 작아요.

Java, C, C + +, Ruby, Python, C# 등 거의 모든 프로그래밍 언어에서 처리할 수 있어요.

Avro 스키마는 JSON으로 저장되어 읽고 해석하기 쉬워요. 구성 요소도 쉽게 업데이트할 수 있어요.

Avro 사용의 장점

  • 가볍고 데이터 직렬화와 역직렬화가 빨라 성능이 뛰어나요.
  • 분할과 압축이 매우 쉬워 데이터 저장용 파일 형식으로 적합해요.

요약

쓰기 속도가 가장 빠른 형식은 CSV이고, 사람이 읽기 가장 쉬운 형식은 JSON이에요. Parquet은 일부 열을 읽을 때 빠르고, Avro는 모든 열을 한 번에 읽을 때 빨라요.

빅데이터에 가장 최적화된 파일 형식은 Avro와 Parquet이에요. 압축률과 “분할 용이성”이 뛰어나고 복잡한 데이터 구조도 지원해요. 다만 쓰기 편의성과 가독성은 아쉬워요.