
市面上有许多数据库管理系统(DBMS)。但没有一种通用的数据库系统。所有系统都通过不同的权衡来更好地适应特定用例。DuckDB也不例外。在这里,我们尝试解释DuckDB的目标以及我们如何通过技术手段实现这些目标。首先,DuckDB是一个关系型(面向表格的)DBMS,支持结构化查询语言(SQL)。
简单
SQLite是全球部署最广泛的DBMS。安装简单以及嵌入式进程内运行是其成功的核心。DuckDB采纳了这些简单性和嵌入式运行的理念。
DuckDB没有外部依赖,无论是编译时还是运行时。对于发布版本,DuckDB的整个源代码树被编译成两个文件,一个头文件和一个实现文件,即所谓的“集成文件”。这极大地简化了部署和与其他构建过程的集成。对于构建,构建DuckDB仅需要一个可用的C++11编译器。
对于DuckDB,无需安装、更新和维护DBMS服务器软件。DuckDB不作为单独的进程运行,而是完全嵌入宿主进程中。对于DuckDB所针对的分析用例,这还有额外的高速数据传输到和从数据库的优势。在某些情况下,DuckDB可以在不复制数据的情况下处理外部数据。例如,DuckDB Python包可以直接在Pandas数据上运行查询,而无需导入或复制任何数据。
便携
得益于没有依赖,DuckDB极具便携性。它可以编译到所有主要操作系统(Linux、macOS、Windows)和CPU架构(x86、ARM)上。它可以部署从小型、资源受限的边缘设备到拥有100+CPU核心的大型多TB内存服务器。通过DuckDB-Wasm,DuckDB还可以在网页浏览器甚至手机上运行。
DuckDB提供了Java、C、C++、Go、Node.js等其他语言的API。
功能丰富
DuckDB提供了强大的数据管理功能。它广泛支持SQL

最低0.47元/天 解锁文章
6901

被折叠的 条评论
为什么被折叠?



