DuckDB: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
Строка 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

800px-T64 and pencil.jpg Это незавершённая статья.
Вы можете помочь проекту, исправив и дополнив её.

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 поддерживает ряд языков программирования.

Client APIs
Язык Подробности Ссылка
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]

Примечания

DuckDB
Язык программирования:
C++ и C++
Операционная система:
Cross-platform



Разработчик:
DuckDB Labs



Текущая версия:
v1.1.0
Дата выхода текущей версии:
сентябрь 9, 2024 (2024-09-09)



Лицензия:
MIT License
  1. Т.е. в составе других приложений.
  2. Java JNI Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  3. DuckDB Java Arrow Source Code. www.github.com. Дата обращения: 7 сентября 2024.
  4. DuckDB Java Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  5. DuckDB Pandas Source (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  6. DuckDB PyArrow Source (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  7. DuckDB Python Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  8. DuckDB Rust Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  9. DuckDB Node Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  10. DuckDB R Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  11. DuckDB Jullia Source Code (англ.). www.github.com. Дата обращения: 7 сентября 2024.
  12. DuckDB Swift Source Code. www.github.com. Дата обращения: 7 сентября 2024.