본문 바로가기
Database

[Database] 분산 처리 프레임워크 (1) 구조화 데이터 vs 비구조화 데이터

by keemchanniee 2025. 7. 28.
다수의 컴퓨터에 데이터 처리를 분산하기 위해서는 그 실행을 관리하기 위한 프레임워크가 필요하다. 

분산 처리 시스템에 대해 이해하기 위해서는 먼저 우리가 다루는 데이터의 형태와 특성을 이해할 필요가 있다. 먼저 구조화 데이터와 비구조화 데이터에 대해 알아보자. 

 

| 구조화 데이터와 비구조화 데이터

구조화된 데이터와 비구조화 데이터

구조화된 데이터 테이블의 칼럼명과 타입, 테이블 간 관게 등을 스키마로 명확하게 정의 
비구조화된 데이터 스키마가 없는 텍스트, 이미지, 동영상 등의 데이터 

 

SQL로 데이터를 집계한다고 생각해보자. 기존의 데이터 웨어하우스에서 데이터는 항상 구조화된 데이터로 축적하는 것이 일반적이었다. 하지만 빅데이터에서는 스키마가 없는 비구조화 데이터가 있고, 이 상태로는 SQL로 제대로 집계하기 어렵다. 

 

그래서 등장한 것이 데이터 레이크이다. 비구조화 데이터를 분산 스토리지 등에 저장하고 그것을 분산 시스템에서 처리한다. 가공 과정에서 스키마를 정의하고, 구조화된 데이터로 변환해 분석이 가능해진다. 

 

 

반구조화 데이터

CSV, JSON, XML 등의 데이터는 서식은 정해져 있지만, 칼럼 수나 데이터형은 명확하지 않아 스키마리스 데이터(반구조화 데이터)라고 불린다. 

- 기본적인 서식은 있지만, 고정된 스키마가 정해져 있지 않음 

- 전통적인 방식처럼 데이터를 넣기 전에 스키마를 정의하지 않아도 되므로, 데이터 저장과 분석이 유연하고 빠름

- 특히 JSON의 경우 구조가 자주 바뀌거나 다양해 스키마를 매번 정의하는 것은 비효율적이다. 



이렇듯 스키마리스 데이터는 구조가 유연해 빠르게 변화하는 대용량 데이터를 효율적으로 저장하고 분석하는 데 적합하다. 

 

 

데이터 구조화 파이프라인

스키마리스 데이터를 분석하거나 SQL로 질의하기 위해서는, 먼저 스티마를 정의하여 테이블 형태의 구조화된 형태로 변환해야 한다. 이 변환 과정이 데이터 파이프라인 구축의 핵심이다. 

 

구조화된 데이터는 보통 열 기반 DB에 저장된다. 압축률이 높고, 집계 성능이 우수해 분석에 최적화되어 있기 때문이다. '

 

파이프라인을 단계별로 자세히 살펴보면 아래와 같다. 

데이터 소스 데이터가 생성되는 출처 (웹 서버, DB, 애플리케이션 등) 원시 데이터(로그, 텍스트 등) - 스키마 없음
- 다양한 형식
- 분석 불가
분산 스토리지 수집된 원시 데이터를 저장 스키마리스 데이터(CSV, 텍스트, JSON 등) - SQL 질의 불가
- 비구조화 상태
- 저장 위주
열 지향 스토리지
(열 기반 DB)
스키마를 정의하여 테이블 형태로 변환 구조화 데이터(팩트/디멘션 테이블) - SQL 분석 가능
- 압축 효율 높음
- 분석 최적화

 

 

열 지향 스토리지의 작성

비구조화 데이터를 열 지향 포맷으로 변환할 때는 압축, 인코딩 등으로 컴퓨팅 자원의 소모가 크다. 따라서 Hadoop, Spark 같은 분산 처리 프레임워크를 사용해야 한다. 먼저 Hadoop에 대해 알아보자. 

 

Hadoop과 열 지향 스토리지 

Hadoop은 사용자가 직접 열 지향 스토리지의 형식을 선택하고 자신이 좋아하는 쿼리 엔진에서 그것을 집계할 수 있다. 선택할 수 있는 열 지향 스토리지에는 몇 가지 종류가 있으며, 각각 특징이 다르다. 

Apache ORC 구조화된 데이터를 위한 열 지향 스토리지로 스키마를 정한 후 데이터 저장
Apache Parquet 스키마리스에 가까운 데이터 구조로 되어있어 JSON 같이 뒤얽힌 데이터도 저장 가능