Skip to content

Flat-file database

플랫 파일 데이터베이스(Flat file database)는 하나의 데이터 모델 (보통 하나의 테이블)을 플레인 텍스트 파일로 인코딩하는 방법 및 그런 방법을 쓴 일종의 데이터베이스를 총칭한다.

다시 말해 플랫 파일 데이터베이스는 순수 텍스트 파일 형태로 데이터를 저장한 데이터베이스를 일컫는다.

About

정의하긴 어려움

  • Flat File은 주로 데이터베이스에서 데이터를 추출하여 처리할 때 사용됨
  • CSV와 같은 단순한 텍스트 파일 형태로 각 행이 레코드를 나타내고 필드는 쉼표로 구분됨
  • 그러나 "Flat File"의 정의는 명확하지 않으며 다음과 같은 공통 특성이 있음:
    • Text-only: 이진 데이터(Blob)가 아닌 텍스트 및 숫자만 저장
    • 표(Tabular) 형식: 파일당 하나의 테이블, 행 기반 레코드 구성
    • 포터블: 특별한 소프트웨어 없이 쉽게 출력, 수정, 처리 가능
    • 비구조적: 일반적으로 레코드 간에 계층 구조나 관계 없음
    • 압축 없음: 기본적으로 스마트 압축 없음 (단, DuckDB, Spark 등에서 zip 파일 허용)
    • 인덱스 없음: 특정 레코드를 찾는 내장 인덱스 없음
    • 설명 없음: 일반적으로 메타데이터나 스키마 정보 없음
  • JSON 및 YAML은 계층 구조와 스키마를 포함할 수 있기 때문에 이 정의에서 벗어남
  • 매우 다양한 사용 사례에 사용될 수 있다는 사실도 실제로 도움이 되지 않음
    • CSV: 데이터 저장 및 교환 형식
    • JSON: 대규모 데이터 교환, 구성 관리, API 반환 형식
    • YAML: 구성 관리 및 파이프라인 정의 파일

Flat File의 유형

  • 데이터가 구성 및 저장되는 방식에 따라 다양한 유형 존재
  • 필드 및 레코드 구성 방식
    • 비구조적 Flat File: CSV와 같이 단일 테이블 구조
    • 구조적 Flat File: JSON, YAML, XML 등은 계층 구조 존재
  • 필드 구분 기호 유형
    • 행이 하나의 레코드를 나타내며 구분 기호로 필드 구분
    • 쉼표(,), 탭(\t), 파이프(|) 사용
  • 고정 너비 vs 비고정 너비 형식
    • 고정 너비 형식은 필드가 일정한 길이를 가짐 → 처리 속도 빠름
    • 비고정 너비 형식은 처리 유연성이 높음
  • 데이터 구분자
    • 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의 변환 및 유효성 검사 정의 가능

See also

Favorite site