Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Introduction to DuckDB: An In-Process Analytical Database Management System

OSACon via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Watch this 28-minute conference talk from OSACon 2023 to explore the innovative analytical database management system that runs in-process, eliminating overhead between client applications and databases. Learn about the key design decisions behind this open-source system that offers seamless integration with Python, R, Java, Julia, and over 10 other programming languages. Discover how the system achieves remarkable performance with features like column-based storage, vectorized execution, and zone map indexing, enabling efficient processing of large datasets without memory constraints. Understand its comprehensive support for various data formats including CSV, Parquet, JSON, and Iceberg, along with multiple data sources such as https, s3, and gcs. Through practical demonstrations, observe how to import and query large CSV files, perform pivot operations, and leverage the system's cache-friendly architecture for fast processing. While exploring its benefits of easy installation, zero configuration requirements, and impressive speed with load times exceeding one gigabyte per second, also gain insights into its limitations regarding distributed execution and multi-process operations.

Syllabus

Overview of DuckDB: The motivation behind DuckDB's creation is the increasing power of end-user devices, such as laptops, which can now handle complex data processing tasks. Traditional database systems, with their client-server architecture and expensive servers, are not optimized for this new era. DuckDB's solution is to bring the database server into the client application, eliminating the need for configuration, authentication, and the client protocol, which is a major bottleneck for analytical data workloads. DuckDB is written in C++11, fully open-source under the MIT license, and supports an in-memory database and a single file format for persistence. The speaker is a former academic and now a developer relations advocate at Duck DB Labs.
Gabor discusses DuckDB, a unique database system that targets analytical workloads and is designed for fast installation and deployment. DuckDB was inspired by popular databases like MySQL but differs in its deployment model and target workload. It aims to be portable and can be installed and running in less than 15 seconds on various platforms, including Mac OS, Python, Windows, and R Studio. DuckDB supports multiple programming languages and operating systems and is known for its speed due to its zero external dependencies and pure C++ codebase. The system can even be compiled to run within a browser using web assembly. DuckDB is also fast in terms of data processing, with a load time of over one gigabyte per second and roughly three times compression over the original CSV data. The speaker then proceeds to demonstrate DuckDB's functionality in practice using a Jupyter Notebook.
Gabor demonstrates the ease of importing and querying large CSV files. He also shows how to use DuckDB's "describe" command to confirm that the database correctly assumed the schema. DuckDB quickly loads more than half a billion rows without requiring the user to specify the data format.
Gabor demonstrates the pivot operation in DuckDB, which turns a long table into a wide table in just 28 milliseconds.
Gabor discusses the efficiency and fast processing of DuckDB. DuckDB is cache and pipelining friendly, allowing for skipping most random accesses, resulting in fast processing.
Gabor discusses the benefits and limitations of the database system. DuckDB is an easy-to-install system that is open standard compliant and does not require configuration or a DBA for maintenance. However, it is not suitable for all workloads, particularly those that are right-heavy or require distributed execution.

Taught by

OSACon

Reviews

Start your review of Introduction to DuckDB: An In-Process Analytical Database Management System

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.