DuckDB — это внутрипроцессная система управления базами данных SQL OLAP.
DuckDB-Wasm позволяет использовать DuckDB в каждом браузере благодаря WebAssembly.
Duckdb-Wasm свободно говорит на Arrow, читает файлы Parquet, CSV и JSON, поддерживаемые API-интерфейсами файловой системы или HTTP-запросами, и был протестирован с Chrome, Firefox, Safari и Node.js. Узнайте больше о DuckDB-Wasm из нашей публикации VLDB или записанного выступления.
Попробуйте его на сайте shell.duckdb.org или внешнюю стороннюю вставку DuckDB-Wasm, прочитайте документацию API, ознакомьтесь с примерами веб-приложений и пообщайтесь с нами в Discord.
DuckDB-Wasm в настоящее время основан на DuckDB v1.1.1.
Соответствующие различия:
INSTALL extension_name FROM 'https://repository.endpoint.org';
отложить получение расширения до первого LOAD extension_name;
инструкция. INSTALL x FROM community;
также поддерживаются сокращения.LOAD icu;
может потребоваться для воспроизведения того же поведения.Поддерживаемые функции DuckDB:
ATTACH 'https://blobs.duckdb.org/data/test.db'; FROM db.t;
демоLOAD spatial
DuckDB является расширяемой, что позволяет делегировать функциональность расширениям.
Основные расширения доступны по адресу https://extensions.duckdb.org, а расширения сообщества — по адресу https://community-extensions.duckdb.org.
-- - Excplicitly load extensions
LOAD icu;
-- - Or have them autoloaded when using relevant functions or settings
DESCRIBE FROM read_parquet( ' https://blobs.duckdb.org/stations.parquet ' ); -- (this autoloads JSON)
-- - Or register extensions
INSTALL h3 FROM community;
INSTALL sqlite_scanner FROM ' https://extensions.duckdb.org ' ;
INSTALL quack FROM ' https://community-extensions.duckdb.org ' ;
-- - And then load them
LOAD h3;
LOAD sqlite_scanner;
LOAD quack;
FROM duckdb_extensions() WHERE loaded;
Покажет, что загружены h3, icu, parquet, quack и sqlite_scanner.
Вы можете попробовать демо-версию Shell с загрузкой расширений, но для этого потребуется передать по сети около 3,2 МБ сжатых файлов Wasm (при первом посещении может помочь кэширование).
Размеры расширений будут различаться в зависимости, среди прочего, от предоставляемых функций или используемого набора инструментов.
git clone https://github.com/duckdb/duckdb-wasm.git
cd duckdb-wasm
git submodule init
git submodule update
make apply_patches
make serve
Подпроект | Описание | Язык |
---|---|---|
Duckdb_wasm | Библиотека Васм | С++ |
@duckdb/duckdb-wasm | Машинописный API | Машинопись |
@duckdb/duckdb-wasm-shell | SQL-оболочка | Ржавчина |
@duckdb/duckdb-wasm-app | Страница GitHub | Машинопись |
@duckdb/реакция-duckdb | Реагирующие хуки | Машинопись |