🦆
Как использовать DuckDB с Python: практическое руководство по аналитикеDuckDB — это современная in-process аналитическая СУБД, разработанная как “SQLite для аналитики”. Она идеально подходит для обработки больших объёмов данных
на локальной машине без необходимости поднимать сервер или использовать тяжёлые хранилища.
📦
Что делает DuckDB особенной?- Работает как библиотека внутри Python (через `duckdb`)
- Поддерживает SQL-запросы напрямую к pandas DataFrame, CSV, Parquet, Arrow и другим источникам
- Оптимизирована под аналитические запросы: агрегации, группировки, фильтрации
- Мгновенно работает с большими файлами без предварительной загрузки
🧪
Пример рабочего сценария:1️⃣ Чтение и анализ Parquet-файла:
import duckdb
duckdb.sql("SELECT COUNT(*), AVG(price) FROM 'data.parquet'")
2️⃣ Интеграция с pandas:
import pandas as pd
df = pd.read_csv("data.csv")
result = duckdb.sql("SELECT category, AVG(value) FROM df GROUP BY category").df()
3️⃣ Объединение нескольких источников:
duckdb.sql("""
SELECT a.user_id, b.event_time
FROM 'users.parquet' a
JOIN read_csv('events.csv') b
ON a.user_id = b.user_id
""")
🧠
Почему это важно:- 📊 Вы можете использовать SQL и pandas
одновременно- 🚀 DuckDB быстрее pandas в большинстве аналитических задач, особенно на больших данных
- 🧩 Поддержка стандартов данных (Parquet, Arrow) даёт нативную интеграцию с экосистемой Data Science
- 🔧 Не требует настройки: просто установите через
pip install duckdb🎯
Применения:- Локальный анализ данных (до десятков ГБ) — без Spark
- Объединение таблиц из разных форматов (Parquet + CSV + DataFrame)
- Прототипирование ETL-пайплайнов и построение дашбордов
- Быстрая агрегация и отчёты по логам, BI-данным, IoT-стримам и пр.
📌
Советы:- Используйте
read_parquet,
read_csv_auto и
from_df() для гибкой загрузки данных
- Результаты запросов можно конвертировать обратно в pandas через
.df()- DuckDB поддерживает оконные функции,
GROUP BY,
JOIN,
UNION,
LIMIT, подзапросы и многое другое — это полноценный SQL-движок
🔗 Подробный гайд:
https://www.kdnuggets.com/integrating-duckdb-python-an-analytics-guide#DuckDB #Python #DataScience #Analytics #SQL #Pandas #Parquet #BigData