DuckDB - DuckDB-Wasm:浏览器中的高效分析 SQL

21-11-05 banq

DuckDB-Wasm 是一个用于浏览器的进程内分析 SQL 数据库。它由 WebAssembly 提供支持,可以流利地使用 Arrow 语言,读取由文件系统 API 或 HTTP 请求支持的 Parquet、CSV 和 JSON 文件,并且已经过 Chrome、Firefox、Safari 和 Node.js 的测试。您可以在浏览器中的shell.duckdb.orgObservable上试用它。
 
Web 浏览器已经发展成为一个通用计算平台,甚至可以在您的汽车中运行。它的兴起伴随着对浏览器编程语言 JavaScript 的需求不断增加。JavaScript 首先被设计为非常灵活,与 C++ 等本地语言相比,其代价是处理效率降低。考虑到更复杂的数据分析任务的执行时间,这些任务的执行时间通常落后于本地执行几个数量级,这一点变得尤为明显。过去,此类分析任务因此被推送到服务器,这些服务器将任何客户端处理与 Internet 上的额外往返联系起来,并引入了它们自己的一组可扩展性问题。
4 年前,随着 WebAssembly 的引入,浏览器的处理能力得到了极大的提升。
WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部署客户端和服务器应用程序。
Wasm 堆栈机旨在以大小和加载时间高效的二进制格式进行编码。WebAssembly 旨在通过利用各种平台上可用的通用硬件功能以本机速度执行。
四年后,WebAssembly 革命正在全面推进,第一个实现在四个主要浏览器中发布。它已经为我们带来了游戏引擎整个 IDE甚至Photoshop的浏览器版本。今天,我们加入了第一个 npm 库@duckdb/duckdb-wasm 的行列
作为一个进程内分析数据库,DuckDB 有难得的机会显着加快浏览器中的 OLAP 工作负载。我们认为需要一个全面且独立的数据分析库。DuckDB-wasm 自动将您的查询卸载到专用的工作线程,并从您的本地文件系统或由纯 SQL 输入驱动的 HTTP 服务器读取 Parquet、CSV 和 JSON 文件。
详细点击标题

1