Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Getting Started with DuckDB

Introduction

Learning Objectives

What Makes DuckDB Different from Traditional Databases

When (and When Not) to Use DuckDB for Spatial Work

When to Use DuckDB

When Not to Use DuckDB

Installing DuckDB CLI and Running Your First Query

Windows Installation

duckdb --version

macOS or Linux Installation

curl https://install.duckdb.org | sh
duckdb

Installing the DuckDB Python Client

Installing DuckDB Using pip

pip install duckdb

Installing uv

curl -LsSf https://astral.sh/uv/install.sh | sh
pip install uv

Basic uv Usage

# Navigate to your project directory
cd /path/to/your/project

# Create a virtual environment
uv venv

# Create with specific Python version
uv venv --python 3.12

# Activate the environment (varies by OS)
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
# Install packages
uv pip install jupyterlab leafmap duckdb duckdb-engine jupyter-duckdb jupysql

Installing DuckDB Using Conda

Installing Miniconda on Windows

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o .\miniconda.exe
start /wait "" .\miniconda.exe /S
del .\miniconda.exe

Installing Miniconda on macOS

mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all

Installing Miniconda on Linux

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all

Installing DuckDB in the Conda environment

conda create -n geo python=3.12
conda activate geo
conda install -c conda-forge python-duckdb duckdb-engine jupysql leafmap

Verifying Installation

jupyter lab

Installing Visual Studio Code

Download and Installation

Installing VS Code Extensions

code --install-extension ms-python.python
code --install-extension ms-toolsai.jupyter
code --install-extension RandomFractalsInc.duckdb-sql-tools

Installing DuckDB Extensions

duckdb

Using the DuckDB UI

duckdb -ui

Installing DBeaver SQL IDE

Key Takeaways

Exercises

Exercise 1: Installation Verification

Exercise 2: Installing and Loading Extensions

Exercise 3: Python Environment Setup

Exercise 4: DBeaver SQL Editor Setup

Exercise 5: Exploring the DuckDB UI