SuperAPI AI 工具集

duckdb-wasm

数据与分析

查看项目

更新于 10-16 08:01

技能介绍

用途:在浏览器中直接执行分析型 SQL,无需把数据上传到后端。可查询本地 Parquet、CSV、Arrow IPC 文件,或通过 HTTP range 请求流式读取远程列式数据集,并借助浏览器原生 Origin Private File System(opfs://)在页面重载后保留分析数据库。适用于零安装的本地数据探索工具、交互式 BI 看板、离线数据科学界面,以及和 Vite、Next.js、Webpack 等现代前端打包器集成。

主要能力:使用 @duckdb/duckdb-wasm、Web Worker 与 Apache Arrow 列式结果;支持 registerFileHandle、registerFileURL、拖放文件、HTTP range 请求和 COPY TO;查询结果可按 Arrow batches 迭代或切片读取。

必要用法与限制:需按打包器做资源隔离,Vite 用 ?url 导入 worker 与 wasm 资源,或使用 duckdb.getJsDelivrBundles()。缺少 COOP/COEP 跨源隔离头时应使用单线程 eh bundle,不要在无 SharedArrayBuffer 时实例化 pthreadWorker。向 opfs:// 写入后应执行 await conn.query('CHECKPOINT;'),否则未提交的 WAL 数据可能在重载后丢失;查询结束用 await conn.close() 释放 worker 内存。不要对超过约 5 万行结果调用 result.toArray(),应迭代 result.batches。服务端 Node.js/Python 分析应使用原生 duckdb 客户端,而非该浏览器版本。所有载入数据集视为不可信数据:动态查询须参数化,远程 URL 需严格域名白名单,不能让 Parquet 元数据或 CSV 列名影响安全校验。