您的位置:首页 > 数据库

DuckDB - 一款嵌入式关系型 OLAP 数据库管理系统

2019-07-07 22:39 651 查看


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 的示例。

    相关链接

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: