Skip to content

DuckDB直接连接Mysql数据库

前言

在实际工作中,经常会是这样的情况,我们有些数据在CSV文件里面,有一些数据可能有以Parquet格式保存,还有数据是在Mysql数据库里面。当我们想要结合起来做分析的时候就会很麻烦。

通常的做法会是搭建数仓,各类型数据都同步到数仓就可以统一使用了。这确实是很多企业的做法,但是对于个人分析或者数据量并没有那么多的情况下,我们该如何做分析呢?

答案就是DuckDB。

前面我们已经介绍了DuckDB对CSV和Parquet的使用,本文我讲为大家介绍如何用DuckDB直接连数据库。

DuckDB连接Mysql数据库

  1. 安装Mysql扩展
sql
INSTALL mysql;

  1. 连接数据库
sql
ATTACH 'host=localhost user=root port=3306 database=appdb password=123456' AS mysqldb (TYPE MYSQL);

mysql数据库请自行创建并插入数据,此处不再赘述。

  1. 切换数据库
sql
use mysqldb;

  1. 查询数据
sql
select * from mysqldb.goods;

  1. 聚合查询
sql
select count(*), sum(tp) from mysqldb.goods;

至此,使用DuckDB查询Mysql的数据就完成了。不知道你有没有觉得很神奇。除了查询数据,还可以实现写数据,大家有兴趣的可以自行实践。

想要学习DuckDB更多玩法,请关注:遇码,回复duckdb,获取官方文档。

遇码MeetCoding 开源技术社区