跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 开源分享
  4. DuckDB - 嵌入式分析型数据库 - 使用初探

DuckDB - 嵌入式分析型数据库 - 使用初探

已定时 已固定 已锁定 已移动 开源分享
1 帖子 1 发布者 13.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • k1995K 离线
    k1995K 离线
    k1995
    写于 最后由 k1995 编辑
    #1

    DuckDB

    Duck是什么?DuckDB is a fast in-process analytical database。

    DuckDB 是一个主要用于分析的DBMS数据库,支持丰富的SQ。借鉴SQLite的成功经验,使用C++开发,设计的非常轻量级,就一个二进制文件没有其他依赖(压缩后仅8M大小),但性能可不小。

    1. 安装DuckDB

    DuckDB 可直接嵌入到主流编程语言中,提供 Python、R、Java、Node.js 、Go、C++等依赖库。

    也提供cli命令行工具,直接在Windows、Linux、macOS 系统中运行。下载后就一个二进制文件,不需要安装直接运行,没有其他依赖使用非常方便。

    2. 使用DuckDB

    为了方便演示我们直接使用命令行方式运行DuckDB

    ./duckdb
    
    Enter ".help" for usage hints.
    Connected to a transient in-memory database.
    Use ".open FILENAME" to reopen on a persistent database.
    

    执行 duckdb 命令,数据库就运行起来了。注意没有其他后台服务,不用像MySQL等需要区分server和client。

    duckdb 支持内存运行模式,和持久化两种模式。默认就是内存模式,退出进程后数据就没了哈。持久化需要指定数据文件路径。

    3. 查询测试

    DuckDB 支持从CSV、JSON、parquet中导入数据,也可通过HTTP、S3远程导入。还提供各种插件直连MySQL、Iceberg、PostgreSQL 等导入。这点和 clickhouse 一样,非常人性化方便。

    这里我们使用CSV,导入GitHub数据,共8百万条数据。不到1秒就完成数据导入和查询了,非常牛逼。

    SELECT COUNT(*) FROM gharchive.csv.gz
    

    注意这里导入的文件使用了gzip压缩文件,DuckDB 能自动帮我们解压非常方便。

    最后DuckDB仓库地址,https://github.com/duckdb/duckdb

    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门