DuckDB - 一款嵌入式关系型 OLAP 数据库管理系统
DuckDB, the SQLite for Analytics
文章目录
DuckDB 简介
DuckDB 是一款嵌入式数据库,主要用于嵌入其他程序执行快速的 SQL 分析查询,官方称其为“分析型数据库中的 SQLite”。DuckDB 易于安装和使用,没有外部依赖,同时提供了 C/C++、Python 以及 R 的语言绑定。
DuckDB 由荷兰 Centrum Wiskunde & Informatica 的数据库架构组开发,他们还开发了 MonetDB(一款开源的列式存储数据库)。DuckDB 采用 MIT 开源协议,并且在 GitHub 上开放了源代码。DuckDB 于 2019 年 6 月 27日首次发布了官方的 0.1 发布版。
安装指南
Python 中安装 DuckDB
使用以下命令在 Python 中安装 DuckDB,目前支持 Python 3:
pip install duckdb
在 Python 中使用 DuckDB 需要安装
numpy。完成安装之后,可以按照以下方式使用 DuckDB:
import duckdb cursor = duckdb.connect(':memory:').cursor() print(cursor.execute('SELECT 42').fetchall())
R 中安装 DuckDB
使用以下命令在 R 环境中安装 DuckDB:
remotes::install_github("cwida/duckdb/tools/rpkg", build = FALSE)
在 R 中使用 DuckDB 需要安装
remotes。如果使用 Windows,还需要安装
Rtools。完成安装之后,可以按照以下方式使用 DuckDB:
library("DBI") con <- dbConnect(duckdb::duckdb(), ":memory:") dbWriteTable(con, "iris", iris) dbGetQuery(con, 'SELECT "Species", MIN("Sepal.Width") FROM iris GROUP BY "Species"')
源码安装
DuckDB 源码可以在 GitHub 上进行下载。DuckDB 安装需要使用 CMake 以及可以兼容 C++11 的编译器。每次官方修订都会针对 GCC 4.9 及更高版本、Clang 3.9 及更高版本以及 VisualStudio 2017 进行测试。
编译
在代码根目录下运行
make进行编译。对于开发者,使用
make debug构建一个非优化的调试版本。你可以在每次修改之后运行
make unit和
make allunit进行验证。
对于不支持 GNU Make 的系统,例如 Windows,可以直接使用
CMake为编译器或者 IDE(例如 Visual Studio) 生成项目文件。
使用
DuckDB 提供乐意一个基于 sqlite3 的命令行工具。对于发布版(默认),该工具位于 build/release/tools/shell/shell;对于调试版,位于 build/debug/tools/shell/shell。
嵌入应用
DuckDB 是一款嵌入式数据库,不需要启动数据库服务器,也不需要使用客户端连接服务器。不过,可以使用 C 或 C++ 绑定将数据库服务器直接嵌入应用程序。主构建程序将会创建共享链接库 build/release/src/libduckdb.[so|dylib|dll],同时也会创建一个静态链接库。
代码库中的 examples 目录给出了一些如何在应用程序中嵌入 DuckDB 的示例。
相关链接
- Win7系统安装MySQL5.5.21图解教程大家都知道MySQL是一款中、小型关系型数据库管理系统,很具有实用性
- mySQL (关系型数据库管理系统)
- 毕业设计之外文翻译---SQLite vs MySQL vs PostgreSQL:关系型数据库管理系统的比较
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
- mySQL(关系型数据库管理系统)编辑
- 如何从零开始开发一款嵌入式产品
- 【转】Android使用嵌入式关系型SQLite数据库存储数据【学习记录】
- 如何从零开始开发一款嵌入式产品
- 嵌入式之一款GPRS模块的应用
- 【SQLite关系型数据库管理系统】SQLite命令
- 使用嵌入式关系型SQLite数据库存储数据
- 如何从零开始开发一款嵌入式产品
- 使用嵌入式关系型SQLite数据库存储数据
- 关系型数据库管理系统简介
- Android操作嵌入式关系型SQLite数据库
- 如何从零开始开发一款嵌入式产品
- 关系型数据库管理系统比较
- 如何从零开始开发一款嵌入式产品(20年工作经验)
- 1.关系型数据库管理系统简介
- 嵌入式关系型数据库SQLite的添删改查