1. Getting Started with DuckDB#
1.1. Introduction#
1.2. Learning Objectives#
1.3. What Makes DuckDB Different from Traditional Databases#
1.4. When (and When Not) to Use DuckDB for Spatial Work#
1.4.1. When to Use DuckDB#
1.4.2. When Not to Use DuckDB#
1.5. Installing DuckDB CLI and Running Your First Query#
1.5.1. Windows Installation#
duckdb --version
1.5.2. macOS or Linux Installation#
curl https://install.duckdb.org | sh
duckdb
1.6. Installing the DuckDB Python Client#
1.6.1. Installing DuckDB Using pip#
pip install duckdb
1.6.1.1. Installing uv#
curl -LsSf https://astral.sh/uv/install.sh | sh
pip install uv
1.6.1.2. 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
1.6.2. Installing DuckDB Using Conda#
1.6.2.1. 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
1.6.2.2. 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
1.6.2.3. 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
1.6.2.4. 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
1.6.3. Verifying Installation#
jupyter lab
1.7. Installing Visual Studio Code#
1.7.1. Download and Installation#
1.7.2. Installing VS Code Extensions#
code --install-extension ms-python.python
code --install-extension ms-toolsai.jupyter
code --install-extension RandomFractalsInc.duckdb-sql-tools
1.7.3. Installing DuckDB Extensions#
duckdb
1.8. Using the DuckDB UI#
duckdb -ui