What this book covers
Chapter 1, An Introduction to DuckDB, starts our journey by introducing and positioning DuckDB in the data ecosystem. We unpack what type of database DuckDB is and identify use cases to which it is well suited and for which data practitioners are adopting it. We also set up the DuckDB client for use in our hands-on exploration, as well as spending some time on a brief SQL primer for those who could benefit from a refresher.
Chapter 2, Loading Data into DuckDB, provides an exploration of DuckDB’s features, looking at how to load data into DuckDB from a range of formats and shapes, across CSV, JSON, and Parquet files.
Chapter 3, Data Manipulation with DuckDB, explores DuckDB’s powerful data wrangling capabilities, focusing in particular on how we can use SQL operations and language features to perform common transformations used in data analysis.
Chapter 4, DuckDB Operations and Performance, dives into DuckDB operations and performance. We also learn how to leverage DuckDB performance optimizations for improving file-reading performance, through the use of Parquet files and Hive-partitioned data.
Chapter 5, DuckDB Extensions, introduces DuckDB’s extension system, which enables users to extend DuckDB’s functionality with useful features and capabilities that sit outside of the core DuckDB API. We cover how to install and load extensions, before getting hands-on with several extensions.
Chapter 6, Semi-Structured Data Manipulation, looks at a selection of DuckDB's data ingestion features for modeling, generating, manipulating, and querying semi-structured data. This also included covering DuckDB’s strong support for working with JSON data.
Chapter 7, Setting up the DuckDB Python Client, sets up our Jupyter-Notebook-based IDE for working with DuckDB in Python and then unpacks the different ways to connect to DuckDB databases in Python.
Chapter 8, Exploring DuckDB’s Python API, dives deeper into working with DuckDB’s Python API, seeing how the DuckDB Python client is well suited for both analytical workflows and developing software packages that leverage DuckDB.
Chapter 9, Exploring DuckDB’s R API, explores the features of DuckDB’s R client, while exploring different ways you can leverage DuckDB in your R-based analytical workflows.
Chapter 10, Using DuckDB Effectively, surveys some of DuckDB’s SQL enhancements and features that are designed to improve the experience of writing analytical queries.
Chapter 11, Hands-On Exploratory Data Analysis with DuckDB, dives deeper into the practical side of things, looking at how we can use DuckDB for performing exploratory data analysis with Python over a publicly available dataset.
Chapter 12, DuckDB – The Wider Pond, concludes our journey by exploring aspects of the wider DuckDB ecosystem, including tools and services you can use to supercharge workflows involving DuckDB—for both data analysis and software development—as well as online resources you can use to continue exploring and learning about DuckDB.