DuckDB: различия между версиями
Строка 19: | Строка 19: | ||
Соавтор DuckDB Мюлейзен также руководит фирмой поддержки и консалтинга для программного обеспечения [[DuckDB Labs]]. Его компания решила не привлекать венчурное финансирование, заявив: «Мы считаем, что инвестиции заставят проект двигаться в сторону монетизации, и мы бы предпочли сохранить DuckDB открытым и доступным для как можно большего числа людей». | Соавтор DuckDB Мюлейзен также руководит фирмой поддержки и консалтинга для программного обеспечения [[DuckDB Labs]]. Его компания решила не привлекать венчурное финансирование, заявив: «Мы считаем, что инвестиции заставят проект двигаться в сторону монетизации, и мы бы предпочли сохранить DuckDB открытым и доступным для как можно большего числа людей». | ||
− | Другая компания, связанная с проектом, [[MotherDuck]], получила финансирование в размере 100 млн долларов США для своей платформы данных на основе DuckDB от инвесторов, включая [[Andreessen Horowitz | + | Другая компания, связанная с проектом, [[MotherDuck]], получила финансирование в размере 100 млн долларов США для своей платформы данных на основе DuckDB от инвесторов, включая [[Andreessen Horowitz]]. |
+ | == Поддержка языков программирования == | ||
+ | Помимо нативного API для [[C]] и [[C++]], DuckDB поддерживает ряд языков программирования. | ||
+ | {| class="wikitable" | ||
+ | |+Client APIs | ||
+ | |- | ||
+ | !Язык!!Подробности!!Ссылка | ||
+ | |- | ||
+ | |[[Java (programming language)|Java]]||[https://duckdb.org/docs/api/java Java API] реализован с использованием [[Java Native Interface|JNI]]<ref>{{cite web |title=Java JNI Source Code |url=https://github.com/duckdb/duckdb-java/blob/main/src/jni/duckdb_java.cpp |access-date=2024-09-07 |website=www.github.com |language=en}}</ref>. Обеспечивается поддержка формата [[Apache Arrow]]<ref>{{cite web |title=DuckDB Java Arrow Source Code |url=https://github.com/duckdb/duckdb-java/blob/v1.0.0/src/main/java/org/duckdb/DuckDBResultSet.java#L132 |website=www.github.com |access-date=2024-09-07}}</ref>.||<ref>{{cite web |title=DuckDB Java Source Code |url=https://github.com/duckdb/duckdb-java |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[Python (programming language)|Python]]||Реализована поддержка [https://duckdb.org/docs/api/python/overview Python API] для пакетов [[Анализ данных|анализа данных]] [[Pandas (software)|Pandas]],<ref>{{cite web |title=DuckDB Pandas Source |url=https://github.com/duckdb/duckdb/tree/v1.0.0/tools/pythonpkg/src/include/duckdb_python/pandas| access-date=2024-09-07 |website=www.github.com |language=en }}</ref> [[Apache Arrow]]<ref>{{cite web |title=DuckDB PyArrow Source |url=https://github.com/duckdb/duckdb/tree/v1.0.0/tools/pythonpkg/src/include/duckdb_python/arrow |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> и [[Polars]].||<ref>{{cite web |title=DuckDB Python Source Code |url=https://github.com/duckdb/duckdb/tree/v1.0.0/tools/pythonpkg/src/include/duckdb_python |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[Rust (programming language)|Rust]]||[https://duckdb.org/docs/api/rust Rust API] распространяется как [https://docs.rs/duckdb/latest/duckdb/ крейт rust], являющийся [[Враппер|враппером]] над нативным C API.||<ref>{{cite web |title=DuckDB Rust Source Code |url=https://github.com/duckdb/duckdb-rs |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[Node.js|Node.JS]]||[https://duckdb.org/docs/api/nodejs/overview Node API]||<ref>{{cite web |title=DuckDB Node Source Code|url=https://github.com/duckdb/duckdb-node |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[R (programming language)|R]]||[https://duckdb.org/docs/api/r R API]||<ref>{{cite web |title=DuckDB R Source Code |url=https://github.com/duckdb/duckdb-r |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[Julia (programming language)|Julia]]||[https://duckdb.org/docs/api/julia Julia API]||<ref>{{cite web |title=DuckDB Jullia Source Code |url=https://github.com/duckdb/duckdb/tree/v1.0.0/tools/juliapkg |access-date=2024-09-07 |website=www.github.com |language=en }}</ref> | ||
+ | |- | ||
+ | |[[Swift (programming language)|Swift]]||[https://duckdb.org/docs/api/swift Swift API]||<ref>{{cite web |title=DuckDB Swift Source Code |url=https://github.com/duckdb/duckdb-swift |website=www.github.com |access-date=2024-09-07}}</ref> | ||
+ | |} | ||
== Примечания == | == Примечания == | ||
{{Infobox software | {{Infobox software |
Версия от 10:59, 21 сентября 2024
![]() |
Это незавершённая статья. Вы можете помочь проекту, исправив и дополнив её. |
DuckDB — это реляционная система управления данных (СУБД) с открытым исходным кодом, ориентированная на хранение данных в колонках.
Блыа разработана Марком Раасвельдтом и Ханнесом Мюлейзеном в Центре математики и информатики (Centrum Wiskunde & Informatica CWI) в Нидерландах.
Первая версия была выпущенна в 2019 году.
По состоянию на 2024 год проект достиг более 6 миллионов загрузок в месяц.
DuckDB была разработана для обеспечения высокой производительности при сложных запросах к большим базам данных во встроенной конфигурации[1], таких как объединение таблиц с сотнями столбцов и миллиардами строк. В отличие от других встроенных баз данных (например, SQLite), DuckDB не фокусируется на транзакционных (OLTP) приложениях, а ориентирована на задачи онлайн-аналитической обработки (OLAP).
DuckDB в своей нише OLAP не конкурирует с традиционными СУБД, такими как MSSQL, PostgreSQL и Oracle Database. Используя SQL для запросов, DuckDB нацелена на бессерверные приложения и обеспечивает чрезвычайно быстрые ответы, используя файлы Apache Parquet для хранения. Эти атрибуты делают его популярным выбором для анализа больших наборов данных в интерактивном режиме, но плохо соответствуют требованиям корпоративного хранилища данных. DuckDB использует векторизованный механизм обработки запросов. DuckDB выделяется среди систем управления базами данных, поскольку не имеет внешних зависимостей и может быть собрана только с использованием компилятора C++11.
DuckDB также отклоняется от характерной для СУБД модели клиент-сервер, работая внутри хост-процесса (например, у него есть биндинги для интерпретатора Python с возможностью непосредственного размещения данных в массивах NumPy).
Коммерческое использование
DuckDB используется в Facebook, Google и Airbnb.
Соавтор DuckDB Мюлейзен также руководит фирмой поддержки и консалтинга для программного обеспечения DuckDB Labs. Его компания решила не привлекать венчурное финансирование, заявив: «Мы считаем, что инвестиции заставят проект двигаться в сторону монетизации, и мы бы предпочли сохранить DuckDB открытым и доступным для как можно большего числа людей».
Другая компания, связанная с проектом, MotherDuck, получила финансирование в размере 100 млн долларов США для своей платформы данных на основе DuckDB от инвесторов, включая Andreessen Horowitz.
Поддержка языков программирования
Помимо нативного API для C и C++, DuckDB поддерживает ряд языков программирования.
Язык | Подробности | Ссылка |
---|---|---|
Java | Java API реализован с использованием JNI[2]. Обеспечивается поддержка формата Apache Arrow[3]. | [4] |
Python | Реализована поддержка Python API для пакетов анализа данных Pandas,[5] Apache Arrow[6] и Polars. | [7] |
Rust | Rust API распространяется как крейт rust, являющийся враппером над нативным C API. | [8] |
Node.JS | Node API | [9] |
R | R API | [10] |
Julia | Julia API | [11] |
Swift | Swift API | [12] |
Примечания
- ↑ Т.е. в составе других приложений.
- ↑ Java JNI Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Java Arrow Source Code . www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Java Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Pandas Source (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB PyArrow Source (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Python Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Rust Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Node Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB R Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Jullia Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
- ↑ DuckDB Swift Source Code . www.github.com. Дата обращения: 7 сентября 2024.