PyCon US 2025 발표내용입니다.

DuckDB를 활용한 데이터 과학: 복잡한 파일 환경 길들이기 - Alex Monahan

Alex Monahan의 발표 영상에서는 오픈소스 분석 데이터베이스 라이브러리인 DuckDB가 데이터 과학자들이 다양하고 정돈되지 않은 데이터 파일을 관리하고 분석하는 데 어떻게 도움을 줄 수 있는지 설명합니다.

주요 내용:

  • 파일 동물원 문제: 데이터 과학자들은 CSV, Parquet, 스프레드시트 등 다양한 형식의 수많은 파일들을 다루며, 이들은 여러 위치와 클라우드 플랫폼에 흩어져 있을 수 있습니다. 이러한 파일들은 크기가 크고, 개수가 많으며, 정돈되지 않았거나 손상되기 쉽습니다.
  • DuckDB 개요: DuckDB는 "분석을 위한 SQLite"로 소개됩니다. 오픈소스(MIT 라이선스)이며, 분석 워크로드를 위해 설계된 인-프로세스(임베디드) 데이터베이스입니다. 의존성 없이 pip install duckdb로 쉽게 설치할 수 있으며, Python 스크립트나 노트북 내에서 직접 사용할 수 있습니다.
  • 다양한 파일 읽기: DuckDB는 S3와 같은 클라우드 저장소의 파일을 포함하여 광범위한 파일 형식을 읽을 수 있습니다. 특히 강력한 CSV 리더는 실제 지저분한 CSV 파일을 처리하는 데 뛰어나며, 문제가 있는 파일을 성공적으로 파싱하는 능력에서 다른 많은 도구를 능가합니다.
  • 친숙한 SQL 및 관계형 API: DuckDB는 사용자 친화적인 SQL 인터페이스(예: SELECT *는 선택 사항)와 Python 스타일의 관계형 API를 제공합니다. 파일을 마치 테이블인 것처럼 직접 쿼리할 수 있으며, 필요할 때만 데이터를 읽는 지연(lazy) 방식으로 작동합니다.
  • 상호 운용성: Pandas 및 Polars와 같은 인기 있는 데이터 과학 라이브러리와 원활하게 통합되며, 동일한 프로세스에서 실행되기 때문에 제로 카피(zero-copy) 데이터 교환이 가능합니다.
  • DuckDB 파일 형식: 기본 DuckDB 파일 형식은 여러 테이블, 뷰, SQL 함수 및 관계를 저장할 수 있는 단일 컬럼 기반 압축 파일입니다. 이 형식은 편집 가능하고 ACID 속성을 지원하며 속도와 효율성을 위해 설계되었습니다.
  • ACID 속성: DuckDB는 원자성(전부 아니면 전무 변경), 일관성(키를 사용하여 데이터 품질 문제 방지), 격리성(동시 쿼리가 서로 간섭하지 않음), 지속성(커밋된 데이터는 손상으로부터 안전함)을 통해 데이터 과학 워크플로에 데이터베이스의 견고성을 제공합니다.
  • 사용 사례: 데이터를 단일하고 효율적이며 쿼리 가능한 형식으로 통합하여 "파일 동물원"을 길들이는 데 유용합니다. 또한 반복적인 데이터 과학 작업 중에 새로운 파일 동물원이 생성되는 것을 방지하는 데 도움이 됩니다.
  • 커뮤니티 및 확장성: DuckDB는 확장 가능하며, 커뮤니티 기여를 통해 통계 패키지 파일 및 Google Sheets와 같은 형식에 대한 지원이 추가되고 있습니다.

DuckDB Labs 및 MotherDuck(DuckDB 기반 클라우드 데이터 웨어하우스)에서 근무하는 Alex Monahan은 DuckDB가 데이터베이스의 강력함과 데이터 과학에 필요한 유연성을 결합하여 데이터 과학자를 위한 데이터 처리를 단순화하는 것을 목표로 한다고 강조했습니다.

GeekNews Weekly에 포함된 글입니다. 에디터 코멘트 보기

댓글과 토론