Flat-file database
플랫 파일 데이터베이스(Flat file database)는 하나의 데이터 모델 (보통 하나의 테이블)을 플레인 텍스트 파일로 인코딩하는 방법 및 그런 방법을 쓴 일종의 데이터베이스를 총칭한다.
다시 말해 플랫 파일 데이터베이스는 순수 텍스트 파일 형태로 데이터를 저장한 데이터베이스를 일컫는다.
About
정의하긴 어려움
- Flat File은 주로 데이터베이스에서 데이터를 추출하여 처리할 때 사용됨
- CSV와 같은 단순한 텍스트 파일 형태로 각 행이 레코드를 나타내고 필드는 쉼표로 구분됨
- 그러나 "Flat File"의 정의는 명확하지 않으며 다음과 같은 공통 특성이 있음:
- Text-only: 이진 데이터(Blob)가 아닌 텍스트 및 숫자만 저장
- 표(Tabular) 형식: 파일당 하나의 테이블, 행 기반 레코드 구성
- 포터블: 특별한 소프트웨어 없이 쉽게 출력, 수정, 처리 가능
- 비구조적: 일반적으로 레코드 간에 계층 구조나 관계 없음
- 압축 없음: 기본적으로 스마트 압축 없음 (단, DuckDB, Spark 등에서 zip 파일 허용)
- 인덱스 없음: 특정 레코드를 찾는 내장 인덱스 없음
- 설명 없음: 일반적으로 메타데이터나 스키마 정보 없음
- CSV: 데이터 저장 및 교환 형식
- JSON: 대규모 데이터 교환, 구성 관리, API 반환 형식
- YAML: 구성 관리 및 파이프라인 정의 파일
Flat File의 유형
- 데이터가 구성 및 저장되는 방식에 따라 다양한 유형 존재
- 필드 및 레코드 구성 방식
- 비구조적 Flat File: CSV와 같이 단일 테이블 구조
- 구조적 Flat File: JSON, YAML, XML 등은 계층 구조 존재
- 행이 하나의 레코드를 나타내며 구분 기호로 필드 구분
- 쉼표(,), 탭(\t), 파이프(|) 사용
- 고정 너비 형식은 필드가 일정한 길이를 가짐 → 처리 속도 빠름
- 비고정 너비 형식은 처리 유연성이 높음
- CSV는 탭 및 줄바꿈 저장 가능 (이스케이프 처리)
- TSV는 탭 및 줄바꿈 불가
- Flat File은 사람이 읽을 수 있는 경우가 많음
- 일부 플랫폼에서는 Excel 파일도 Flat File로 분류함
- CSV 같은 파일은 메타데이터 없음
- JSON은 자체 메타데이터 및 스키마 포함 가능
Flat File의 사용 사례
- 저장 및 교환
- 데이터 교환: CSV, JSON은 서로 다른 플랫폼 간 데이터 교환에 유용
- ETL에서 데이터 통합: Flat File은 ETL에서 원본 및 대상 데이터로 자주 사용됨
- 아카이브 및 백업: Flat File은 텍스트 기반으로 장기 보관에 유리
- 구성 관리: YAML, JSON, INI 등은 환경 변수, 데이터베이스 연결 등에 사용
- 데이터 파이프라인 정의: JSON, YAML 등은 파이프라인 구조 정의에 사용
- 데이터셋 메타데이터: JSON은 CSV의 변환 및 유효성 검사 정의 가능