DuckDB数据库管理系统介绍

DuckDB是一个为在线分析处理(OLAP)设计的数据库管理系统(DBMS),以其多功能性著称,正如其吉祥物鸭子一样,能够飞翔、行走和游泳。简而言之,DuckDB旨在成为本地分析的DBMS。让看看它提供了哪些特性。

SQL语言基础

SQL,或称为“sequel”,是任何希望处理数据库的人的基本语言。不久前,在研究如何在Python中使用SQL,发现了这个名为DuckDB的出色解决方案。在看来,这个工具最出色的部分是能够直接在查询中读取CSV和Parquet文件,以及其卓越的性能。

DuckDB的特点

DuckDB专注于分析活动,而不是像SQLite那样的事务处理。以下是DuckDB的一些主要特点:

  • 简单安装
  • 嵌入式:无需服务器管理
  • 处理和存储表格数据集,例如来自CSV或Parquet文件的数据
  • 单文件存储格式
  • 快速的分析处理
  • 在R/Python和RDBMS之间快速传输
  • 交互式数据分析,例如连接和聚合多个大型表
  • 对多个大型表进行并发大变更,例如追加行、添加/移除/更新列

本文将介绍的内容

在本文中,将学习如何安装DuckDB,导入DuckDB,读取和写入CSV和Parquet文件,元查询以及DBeaver SQL IDE。简而言之,包括:

  • 入门
  • 导入和导出CSV和Parquet文件
  • 元查询
  • DBeaver SQL IDE

DuckDB快速入门

让开始动手编码吧!

import duckdb import pandas as pd con = duckdb.connect() df = pd.DataFrame({'Column 1' : [100]}) con.execute("SELECT * FROM df").df() # 查询Pandas DataFrame "df"

在下一部分,将学习如何使用CSV文件,并以非常方便和快速的格式读写Parquet文件。

导入和导出文件

让从数据科学家的好朋友CSV文件开始。

con.execute("SELECT * FROM read_csv_auto('my_local_file.csv')").df()

创建一个新表:

con.execute("CREATE TABLE tbl AS SELECT * FROM read_csv_auto('my_local_file.csv')")

将表中的数据导出到CSV文件:

con.execute("COPY tbl TO 'my_export_file.csv' (HEADER, DELIMITER ',')")

如果还没有接触过Parquet文件,现在是时候认识它了。在处理大量数据时,Parquet文件是必不可少的;不会在本文中详细介绍其优势,但可以看到,使用DuckDB处理这种文件格式非常简单易行。

con.execute("SELECT * FROM read_parquet('my_local_file.parquet')").df()

创建一个新表:

con.execute("CREATE TABLE tbl5 AS SELECT * FROM read_parquet('my_local_file.parquet')")

将表中的数据导出到Parquet文件:

con.execute("COPY tbl TO 'my_export_file.parquet' (FORMAT PARQUET)")

元查询

创建了几个表之后,列出它们可能非常方便,不是吗?可以使用SHOW TABLES来实现。

con.execute("SHOW TABLES").df()

要查看表的模式,使用DESCRIBE后跟表名。

df = pd.DataFrame({'Col1' : [100,90,30],'Col2' : [1,5,8]}) con.execute("CREATE TABLE tbl_df AS SELECT * FROM df") con.execute("DESCRIBE tbl_df").df()

在看来,最有用的命令是SUMMARIZE;它返回列名、列类型、最小值、最大值、唯一值数量、平均值、标准差、四分位数、值的数量和空值的百分比。一个命令就提供了大量信息!

con.execute("SUMMARIZE tbl").df()

实际上有如此多的信息,有时不想要它,或者看起来可能很困难。可以使用SUMMARIZE命令与SELECT结合,仅获取所需列的摘要。

con.execute("SUMMARIZE SELECT Col1 FROM tbl").df()

DBeaver是一个功能强大且流行的桌面SQL编辑器和集成开发环境(IDE)。它既有开源版本也有企业版本。它对于直观检查DuckDB中的可用表和快速构建复杂查询非常有用。DuckDB的JDBC连接器允许DBeaver查询DuckDB文件,并通过扩展,访问DuckDB可以访问的任何其他文件(如Parquet文件)。

如果喜欢DuckDB,一定会喜欢这个IDE;它简单且轻量级。在本节中,将安装、连接并创建一个内存中的数据库,本地的,知道吗?让创建、读取并保存一个Parquet文件!

让开始吧!在本教程中,将向展示如何在Windows上安装:

在安装开始时,可以选择喜欢的语言:

DBeaver社区版:

现在,在数据库菜单中,点击新建数据库连接:

猜猜现在会选择哪一个?当然是DuckDB,不是吗?

在“路径”开始玩耍的地方,可以填写“:memory:”:

点击“测试连接…”按钮:

点击“下载”以从Maven下载DuckDB的JDBC驱动程序。下载完成后,点击“确定”,然后点击“完成”:

如果收到此消息,则连接成功。恭喜!

DBeaver SQL IDE的“Hello World!”的重要时刻:

现在是创建并写入Parquet文件的重要最终时刻:

  • 首先,学会了如何安装和导入DuckDB;
  • 为了帮助日常练习,学会了如何读取和写入CSV和Parquet文件;
  • 现在也知道如何显示所有表并总结它们;
  • 知道集成开发环境如何帮助组织所有工作,所以向介绍了DBeaverSQLIDE。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485