DuckDB — це система керування реляційною базою даних із відкритим вихідним кодом (RDBMS), орієнтована на стовпці , розроблена Марком Раасвельдтом і Ханнесом Мюлейзеном у Centrum Wiskunde & Informatica (CWI) у Нідерландах. Вперше опоблікована в 2019 році. Зараз проєкт має понад 6 мільйонів завантажень на місяць. DuckDB розроблений для забезпечення високої продуктивності складних запитів до великих баз даних у вбудованій конфігурації, таких як об’єднання таблиць із сотнями стовпців і мільярдами рядків. На відміну від інших вбудованих баз даних (як-от, SQLite ), DuckDB не орієнтована на транзакції (OLTP) програми. Натомість вона спеціалізується на аналітичних навантаженнях онлайн-аналітичної обробки (OLAP).
DuckDB у своїй галузі OLAP не конкурує з традиційними DBMS, такими як MSSQL, PostgreSQL чи база даних Oracle . Використовуючи SQL для запитів, DuckDB орієнтована на безсерверні застосунки та забезпечує надзвичайно швидку обробку, зберігаючи дані у форматі файлів Apache Parquet. Ці характеристики роблять її популярним вибором для аналізу великих наборів даних в інтерактивному режимі, проте погано відповідають вимогам корпоративного сховища даних.
DuckDB використовує механізм векторизованої обробки запитів, що робить її унікальною серед систем керування базами даних. Вона не має зовнішніх залежностей і може бути зібрана лише за допомогою компілятора C++11. DuckDB також відходить від традиційної клієнт-серверної моделі, працюючи всередині хост-процесу. Наприклад, вона має прив’язки, для інтерпретатора Python, і може безпосередньо розміщувати дані у масивах NumPy, що робить її особливо зручною для аналітичних завдань у середовищі Python.
Комерційне використання DuckDB використовується у Facebook, Google і Airbnb.
Співавтор DuckDB Ханнес Мюлейзен також керує компанією DuckDB Labs, що займається підтримкою та консультуванням цього програмного забезпечення. Компанія вирішила не залучати венчурне фінансування, заявивши: «Ми вважаємо, що інвестиції спрямують проект на монетизацію, і ми б віддали перевагу залишати DuckDB відкритим і доступним для якомога більшої кількості людей». Натомість інша компанія, MotherDuck, отримала фінансування в розмірі 100 мільйонів доларів для своєї платформи даних на основі DuckDB, серед інвесторів якої є Andreessen Horowitz .
Підтримка мови Окрім власних API C та C++, DuckDB підтримує інтеграцію з різними мовами програмування, що робить її зручною для використання в різних середовищах і додатках. +Клієнтські API Мова Примітки довідка Java Java API реалізовано за допомогою JNI. Передбачена інтеграція з форматом Apache Arrow . Python API Python реалізує підтримку для пакетів аналізу даних Pandas, Apache Arrow і Polars. Rust Rust API розповсюджується як rust crate, який розкриває елегантну оболонку поверх рідного C API. Node. JS Node API R R API Julia Julia API Swift Swift API
Примітки
Подальше читання
Зовнішні посилання
Офіційна домашня сторінка DuckDB
Джерела