거대 데이터베이스 다루기

거대 데이터베이스 다루기 (Working with Huge Databases) (working-with-huge-databases)

이 페이지는 아주 큰 DuckDB 데이터베이스 파일을 다룰 때 알아두면 좋은 정보를 담고 있어요. 대부분의 DuckDB 데이터베이스는 1TB보다 훨씬 작지만, 2024년 사용자 설문조사에서 응답자의 1%가 2TB 이상의 DuckDB 파일을 사용했다고 해요(이는 대략 10TB의 CSV 파일에 해당합니다).

출처: DuckDB 공식 문서 — working-with-huge-databases

DuckDB의 네이티브 데이터베이스 형식은 실질적인 제한 없이 거대한 데이터베이스 파일을 지원해요. 하지만 거대한 데이터베이스 파일을 다룰 때는 몇 가지를 염두에 둬야 합니다.

  1. 객체 스토리지의 파일 크기 제한 — 객체 스토리지 시스템은 블록 기반 스토리지 시스템보다 파일 크기 제한이 낮아요. 예를 들어 AWS S3는 파일 크기를 5TB로 제한합니다.

  2. 체크포인트가 느릴 수 있어요 — DuckDB 데이터베이스의 체크포인트(checkpoint)는 느릴 수 있습니다. 예를 들어 TPC-H SF1000 데이터베이스의 테이블에 몇 행을 추가한 뒤 체크포인트하는 데 대략 5초가 걸려요.

  3. 파일 시스템이 성능에 큰 영향을 줘요 — 블록 기반 스토리지에서는 큰 파일을 다룰 때 파일 시스템이 성능에 상당한 영향을 미칩니다. Linux에서 DuckDB는 큰 파일 처리 시 XFS에서 가장 좋은 성능을 보여줘요.

많은 양의 데이터를 저장해야 한다면, DuckLake 레이크하우스 형식 사용을 고려해 보세요.

더 알아보기 (Learn more)