001. Chapter 1. An introduction to DuckDB
002. Chapter 1. Why should you care about DuckDB
003. Chapter 1. When should you use DuckDB
004. Chapter 1. When should you not use DuckDB
005. Chapter 1. Use cases
006. Chapter 1. Where does DuckDB fit in
007. Chapter 1. Steps of the data processing flow
008. Chapter 1. Summary
009. Chapter 2. Getting started with DuckDB
010. Chapter 2. Installing the DuckDB CLI
011. Chapter 2. Using the DuckDB CLI
012. Chapter 2. DuckDB s extension system
013. Chapter 2. Analyzing a CSV file with the DuckDB CLI
014. Chapter 2. Summary
015. Chapter 3. Executing SQL queries
016. Chapter 3. Analyzing energy production
017. Chapter 3. Data definition language queries
018. Chapter 3. Data manipulation language queries
019. Chapter 3. DuckDB-specific SQL extensions
020. Chapter 3. Summary
021. Chapter 4. Advanced aggregation and analysis of data
022. Chapter 4. Summarizing data
023. Chapter 4. On subqueries
024. Chapter 4. Grouping sets
025. Chapter 4. Window functions
026. Chapter 4. Conditions and filtering outside the WHERE clause
027. Chapter 4. The PIVOT statement
028. Chapter 4. Using the ASOF JOIN
029. Chapter 4. Using table functions
030. Chapter 4. Using LATERAL joins
031. Chapter 4. Summary
032. Chapter 5. Exploring data without persistence
033. Chapter 5. Inferring file type and schema
034. Chapter 5. Shredding nested JSON
035. Chapter 5. Translating CSV to Parquet
036. Chapter 5. Analyzing and querying Parquet files
037. Chapter 5. Querying SQLite and other databases
038. Chapter 5. Working with Excel files
039. Chapter 5. Summary
040. Chapter 6. Integrating with the Python ecosystem
041. Chapter 6. Using the relational API
042. Chapter 6. Querying pandas DataFrames
043. Chapter 6. User-defined functions
044. Chapter 6. Interoperability with Apache Arrow and Polars
045. Chapter 6. Summary
046. Chapter 7. DuckDB in the cloud with MotherDuck
047. Chapter 7. Getting started with MotherDuck
048. Chapter 7. Making the best possible use of MotherDuck
049. Chapter 7. Summary
050. Chapter 8. Building data pipelines with DuckDB
051. Chapter 8. Data ingestion with dlt
052. Chapter 8. Data transformation and modeling with dbt
053. Chapter 8. Orchestrating data pipelines with Dagster
054. Chapter 8. Summary
055. Chapter 9. Building and deploying data apps
056. Chapter 9. Building a BI dashboard with Apache Superset
057. Chapter 9. Summary
058. Chapter 10. Performance considerations for large datasets
059. Chapter 10. Query planning and execution
060. Chapter 10. Exporting the Stack Overflow data to Parquet
061. Chapter 10. Exploring the New York Taxi dataset from Parquet files
062. Chapter 10. Summary
063. Chapter 11. Conclusion
064. Chapter 11. Upcoming stable versions of DuckDB
065. Chapter 11. Aspects we did not cover
066. Chapter 11. Where can you learn more
067. Chapter 11. What is the future of data engineering with DuckDB
068. appendix A. Client APIs for DuckDB
069. appendix A. A word on concurrency
070. appendix A. Use cases
071. appendix A. Importing large amounts of data
072. appendix A. Using DuckDB from Java via the JDBC Driver
073. appendix A. Additional connection options
074. appendix A. Summary