Skip to content

五分钟玩转超人气OLAP数据库DuckDB

本文将为同学们介绍如何用数据库管理工具DBeaver玩转DuckDB。如果你对DBeaver还不了解,可以查看:

《一款免费开源的必备数据库管理工具—— DBeaver》

开始上手

  1. 启动DBeaver

  1. 新建数据库连接

告诉大家一个小诀窍,如果同学们遇到特定场景不清楚如何做数据库选型的时候,不妨看看左侧的分类,每个分类下都罗列出了相关的数据库,我们可以挑选一些做详细调研。

  1. 搜索DuckDB,选择并下一步

  1. 创建数据库文件

  1. 测试连接

当弹出已连接,确认,点击完成,就已经可以使用DuckDB了。

  1. 了解DuckDB文件

我们就可以看到,我们创建的名为duckdb的数据库本质上就是一个文件。

  1. 新建SQL编辑器

右击——SQL编辑器——新建SQL编辑器

编辑器创建好以后,请确保数据库选择也是正确的(上图红框内)

  1. 创建第一张表weather
sql
CREATE TABLE weather (
    city    VARCHAR,
    temp_lo INTEGER,
    temp_hi INTEGER,
    prcp    REAL,
    date    DATE
);

刷新后,左侧在main —— 表下已经出现weather

  1. 插入第一条数据
sql
INSERT INTO weather
VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');

  1. 查询数据
sql
select * from main.weather ;

  1. 疯狂插入更多的数据
sql
INSERT INTO main.weather
select * from main.weather;

当我把数据量变成近3亿后

数据库文件达到了近50M

  1. 尝试聚合查询

求和

sql
select sum(temp_lo), sum(temp_hi) from main.weather limit 10;

分组求和

sql
select city, sum(temp_lo), sum(temp_hi) from main.weather
group by city;

上亿数据量做聚合查询,都可以在秒级返回查询结果,这样的性能,Mysql表示压力很大。

至此,带领同学们初步体验了DucdDB变态般的非凡性能,我表示真的爱了。

进阶

本文只为同学们演示了DuckDB的基本用法,然而DuckDB更具神奇魅力的地方则在于可以直接使用外部的文件。后续将继续为同学们讲解用DuckDB如何查询外部文件数据。更多详细内容请关注:遇码,回复duckdb,获取官方文档。

遇码MeetCoding 开源技术社区