도서 소개
노트북 하나로 기가바이트 단위 데이터를 1초 만에 분석할 수 있다면 믿을 수 있을까? DuckDB라면 가능하다. CSV, JSON, Parquet 등 다양한 파일 형식, 심지어 압축된 파일까지 단 한 줄의 SQL만으로 바로 읽고 분석할 수 있다. 복잡한 설치 과정도, 데이터 웨어하우스 구축도 필요없다. 그냥 데이터와 노트북만 있으면 충분하다.데이터 웨어하우스 구축이나 클라우드 서비스 이용에 드는 비용과 관리의 부담, DuckDB 앞에서는 고민할 필요가 없다. CSV, JSON, Parquet뿐 아니라 Delta Lake, Iceberg, S3, SQLite, MySQL, PostgreSQL까지 어떤 데이터든 별도 변환 없이 즉시 분석할 수 있다. 이제 당신의 데이터 분석이 놀랍도록 간단해진다.
출판사 리뷰
데이터 분석, 왜 이렇게 복잡한가요?
Spark는 너무 무겁고, pandas는 너무 느리고,
SQL은 클라우드 요금이 걱정되나요?
DuckDB는 이런 문제들을 해결합니다.
- 클러스터 없이, 단일 머신에서 수백 기가바이트 데이터 쿼리
- Jupyter 노트북 안에서 바로 실행
- CSV, JSON, Parquet, S3까지 설치 없이 SQL로 바로 처리
- 클라우드 전환 없이 로컬 환경에서 데이터 분석 완료
당신이 이미 알고 있는 SQL로, 더 빠르게, 더 쉽게!
DuckDB를 먼저 사용한 사람들의 반응
“DuckDB를 처음 써본 날, 저는 분석 환경을 바꿨습니다.”
“DuckDB는 설치도 필요 없고, 그냥 실행하면 된다. 진짜로.”
“SQL은 아는데 Spark는 너무 크다 싶을 때, 딱 DuckDB였습니다.”
“20,000,000개 로우를 0.126초 만에 처리했다. 처음엔 의심했다.”
누구를 위한 책인가요?
- 클라우드 비용과 설정에 지친 데이터 엔지니어
- pandas로는 데이터가 벅찬 데이터 과학자
- SQL은 쓰지만 Spark는 부담스러운 개발자·실무자
- 프라이버시 중심 조직에서 분석해야 하는 실무자
이 책의 차별점
- CLI와 파이썬으로 배우는 실습 중심 구성
- JSON, CSV, Parquet 파일을 직접 쿼리하는 현장 예제
- DuckDB의 SQL 확장 기능 완전 해설
- MotherDuck 클라우드 버전까지 포함한 활용법
- 전체 예제 GitHub 제공, 최신 로컬 UI 설명 수록
- DuckDB v1.2.1 최신 버전 반영
“우리는 설명서를 쓰지 않았습니다.
“동료에게 설명하듯 썼습니다.”
_저자 서문 중
데이터 분석이 힘들어지는 순간, DuckDB가 필요하다
이제 DuckDB로 완전히 새롭게 경험하세요!
노트북 하나로 기가바이트 단위 데이터를 1초 만에 분석할 수 있다면 믿을 수 있을까? DuckDB라면 가능하다. CSV, JSON, Parquet 등 다양한 파일 형식, 심지어 압축된 파일까지 단 한 줄의 SQL만으로 바로 읽고 분석할 수 있다. 복잡한 설치 과정도, 데이터 웨어하우스 구축도 필요없다. 그냥 데이터와 노트북만 있으면 충분하다.
클라우드 비용과 복잡한 인프라, 이제는 안녕
DuckDB로 가볍게, 더 빠르게!
데이터 웨어하우스 구축이나 클라우드 서비스 이용에 드는 비용과 관리의 부담, DuckDB 앞에서는 고민할 필요가 없다. CSV, JSON, Parquet뿐 아니라 Delta Lake, Iceberg, S3, SQLite, MySQL, PostgreSQL까지 어떤 데이터든 별도 변환 없이 즉시 분석할 수 있다. 이제 당신의 데이터 분석이 놀랍도록 간단해진다.
배우지 않아도 이미 할 줄 아는 데이터베이스
DuckDB는 지금 바로 쓸 수 있다
새로운 데이터베이스를 쓰려면 복잡한 문서를 읽고 수많은 튜토리얼을 봐야 할까? DuckDB는 다르다. 이미 알고 있는 SQL 문법 그대로 사용할 수 있고 SQL만으로 부족한다면 파이썬과의 완벽한 통합으로 자유롭게 확장할 수도 있다. 로컬에서 더 큰 성능이 필요하다면 DuckDB의 클라우드 버전인 MotherDuck으로 언제든지 쉽게 확장 가능하다.
이 책에서 다루는 내용
- CSV, JSON, Parquet 형식의 데이터를 로컬 또는 원격에서 읽고 처리하는 방법
- 집계, 공통 테이블 표현식(CTE), 윈도 함수, 조인, 피벗 테이블 등 다양한 SQL 기능을 활용한 분석용 쿼리 작성
- 파이썬에서 DuckDB를 사용해 SQL과 관계형 API를 모두 활용하고, 데이터프레임과 상호작용하는 방법
- 대규모 데이터세트를 수집, 준비, 쿼리하는 실전 예제
- 클라우드 환경에서 데이터 파이프라인을 구축하고 활용하는 전략
- 사용자 정의 함수와 확장 기능으로 DuckDB를 커스터마이징하는 방법
- Streamlit으로 맞춤형 데이터 앱 구축하기
- Apache Superset으로 BI 대시보드 구축하기
- Polars, pandas, Apache Arrow와의 상호운용성
작가 소개
지은이 : Michael Simons
지은이 : 마크 니덤
Neo4j의 그래프 Advocate이자 개발 엔지니어다. 사용자가 그래프와 Neo4j를 수용하게 돕고 까다로운 데이터 문제에 대한 정교한 솔루션을 구축했다. 이전에 Neo4j의 인과 클러스터링(Causal Clustering) 시스템 구축을 도왔고 그래프 데이터에 대한 깊은 전문성을 지니고 있다. 인기 블로그(https://markhneedham.com/blog/)에 그래피스타 경험에 대해 기고하고 있으며 트위터는 @markhneedham(https://twitter.com/markhneedham)을 사용한다.
지은이 : Michael Hunger
목차
1장 DuckDB 소개
__1.1 DuckDB란 무엇인가요?
__1.2 왜 DuckDB에 주목해야 할까요?
__1.3 언제 DuckDB를 사용하는 게 좋을까요?
__1.4 언제 DuckDB를 사용하지 말아야 할까요?
__1.5 사용 사례
__1.6 DuckDB는 어디에 적합할까요?
__1.7 데이터 처리 흐름 단계
__요약
2장 DuckDB 시작하기
__2.1 지원되는 환경
__2.2 DuckDB CLI 설치하기
__2.3 DuckDB CLI를 사용하는 방법
__2.4 DuckDB의 확장 시스템
__2.5 CSV 파일을 DuckDB CLI로 분석하기
__요약
3장 SQL 쿼리 실행하기
__3.1 간단한 SQL 복습
__3.2 에너지 생산 분석하기
__3.3 데이터 정의 언어 쿼리
__3.4 데이터 조작 언어 쿼리
__3.5 DuckDB 전용 SQL 확장
__요약
4장 데이터의 고급 집계와 분석
__4.1 데이터 수집 중에 사전 집계하기
__4.2 데이터 요약하기
__4.3 서브쿼리
__4.4 그룹화 집합
__4.5 윈도 함수들
__4.6 WHERE 절 외부에서 조건과 필터링 처리하기
__4.7 PIVOT 문
__4.8 ASOF JOIN 사용하기
__4.9 테이블 함수 사용하기
__4.10 LATERAL 조인 사용하기
__요약
5장 지속성 없이 데이터 탐색하기
__5.1 왜 데이터를 따로 보존하지 않고 데이터베이스를 사용할까요?
__5.2 파일 유형과 스키마 추론하기
__5.3 중첩된 JSON 쪼개기
__5.4 CSV를 Parquet로 변환하기
__5.5 Parquet 파일 분석하고 쿼리하기
__5.6 SQLite와 다른 데이터베이스 쿼리하기
__5.7 엑셀 파일로 작업하기
__요약
6장 파이썬 생태계와 통합하기
__6.1 시작하기
__6.2 관계형 API 사용하기
__6.3 pandas 데이터프레임 쿼리하기
__6.4 사용자 정의 함수
__6.5 Apache Arrow 및 Polars와의 상호운용성
__요약
7장 DuckDB를 클라우드에서 MotherDuck과 함께 사용하기
__7.1 MotherDuck 소개
__7.2 MotherDuck으로 시작하기
__7.3 MotherDuck 최대한 활용하기
__요약
8장 DuckDB로 데이터 파이프라인 구축하기
__8.1 데이터 파이프라인과 DuckDB의 역할
__8.2 dlt를 사용한 데이터 수집
__8.3 dbt를 사용한 데이터 구조 변환과 모델링
__8.4 Dagster로 데이터 파이프라인을 오케스트레이션하기
__요약
9장 데이터 앱 구축 및 배포
__9.1 Streamlit으로 맞춤형 데이터 앱 구축하기
__9.2 Apache Superset으로 BI 대시보드 구축하기
__요약
10장 대규모 데이터세트에 대한 성능 고려사항
__10.1 스택 오버플로 전체 데이터베이스 불러오기와 쿼리하기
__10.2 쿼리 계획 및 실행
__10.3 스택 오버플로 데이터를 Parquet로 내보내기
__10.4 Parquet 파일에서 뉴욕시 택시 데이터세트 탐색하기
__요약
11장 결론
__11.1 이 책에서 배운 내용
__11.2 DuckDB의 향후 안정 버전들
__11.3 다루지 못한 내용
__11.4 더 배울 수 있는 곳은?
__11.5 DuckDB와 함께하는 데이터 엔지니어링의 미래는 어떨까요?
부록 A DuckDB를 위한 클라이언트 API
__A.1 공식 지원 언어
__A.2 동시성에 관한 간략한 설명
__A.3 사용 사례
__A.4 대용량 데이터 가져오기
__A.5 JDBC 드라이버를 통해 자바에서 DuckDB 사용하기
__A.6 추가 연결 옵션들
__요약
부록 B DuckDB UI
__B.1 DuckDB UI 소개
__B.2 이 책의 예제를 DuckDB UI로 실행하기
__요약