新闻动态你的位置:网页游戏和客户端游戏的区别 > 新闻动态 > 为什么选择 DuckDB UI?轻量、直观、高效
为什么选择 DuckDB UI?轻量、直观、高效

发布日期:2025-05-22 08:26    点击次数:157

  

想要快速浏览、查询、管理本地 DuckDB 数据?DuckDB UI 带来轻量高效的新体验。

虽然我们可以通过 DuckDB 自带的 CLI(命令行界面)、第三方工具如 DBeaver Community、Navicat,或者直接用 Python 进行数据查询和分析,但这些方式在日常使用中仍存在一些不便之处。CLI 需要手动输入命令,交互体验有限;DBeaver、Navicat 等工具虽然功能强大,但需要额外安装配置;而 Python 操作则更适合程序化处理,临时查询和可视化体验不够直观。为了提供更加轻量、易用的交互体验,DuckDB 官方推出了 DuckDB UI : 一个开箱即用、基于浏览器的可视化界面,让用户能够更便捷地连接、查询和管理 DuckDB 数据库。

DuckDB UI 简介

从 DuckDB v1.2.1 开始,DuckDB 原生提供了一个功能完整的本地 Web 用户界面(UI),无需额外安装,开箱即用!

你可以通过以下两种方式启动 DuckDB UI:

通过命令行启动:使用 DuckDB CLI 客户端,并添加 -ui 参数运行:duckdb -ui

通过 SQL 命令启动:在任何 DuckDB 客户端(如 CLI、Python、Java 等)中执行以下 SQL 语句:CALL start_ui();

无论使用哪种方式,系统都会自动安装所需的 ui 扩展(如果尚未安装),然后在浏览器中打开 DuckDB 的可视化界面。

DuckDB UI 采用交互式笔记本(interactive notebooks)的方式来编写 SQL 脚本并展示查询结果。

下面让我们一起来了解它的主要特性。

数据库浏览

在界面左侧会显示你当前连接的数据库。这个列表包括了内存数据库,以及你加载的任何文件或 URL。

你可以通过展开数据库和模式(Schema),来浏览其中的表(Tables)和视图(Views)。

表的概览(Table Summary)

点击任意一个表或视图后,下方会显示其概要信息。界面会展示表中的行数、每一列的名称与数据类型,以及每一列数据的基本概况。

你还可以点击某一列,查看该列数据的更详细分析。界面右上角的“预览数据(Preview data)”按钮,允许你快速查看前 100 行的数据内容。此外,这里也可以查看该表或视图的 SQL 定义。

Data Notebook

你可以将你的工作组织到命名的笔记本(Notebook)中。每个笔记本(Notebook)单元格(Cell)都可以执行一条或多条 SQL 语句。DuckDB UI 支持语法高亮和自动补全功能,帮助你更高效地编写查询语句。

你可以运行整个单元格,也可以只运行选中的部分内容。对于查询结果,界面还提供了排序、筛选和进一步变换的功能,方便你快速探索和处理数据。

列探索器(Column Explorer)

界面右侧的面板是列探索器(Column Explorer),它会展示查询结果中各列的汇总信息。

你可以深入查看每一列的数据概况,帮助你快速洞察数据特征。

文件占用情况(Footprint)

与 DuckDB CLI 类似,DuckDB UI 会在你的主目录下的 .duckdb 目录中创建一些文件。UI 相关的文件会存放在子目录 extension_data/ui 下:

你的笔记本(Notebooks)以及一些其他状态信息,会被存储在一个 DuckDB 数据库文件 ui.db 中。

当你将查询结果导出到剪贴板或文件(通过结果区下方的导出控件)时,系统会临时生成一些小型中间文件(如 ui_export.csv)。

导出完成后,这些文件中的数据会被清除,但文件本身(几乎为空)仍会保留,每种文件类型保留一个空壳文件。

内部实现(Internals)

DuckDB UI 是通过 DuckDB 的一个扩展(Extension)实现的。这个扩展内部嵌入了一个本地 HTTP 服务器,用于:

向浏览器提供 UI 应用程序界面;

同时开放 API,与后端 DuckDB 引擎进行通信。

因此,DuckDB UI 直接复用了启动它的本地 DuckDB 实例,能够充分访问你的本地内存、计算资源和文件系统。查询结果以高效的二进制格式返回(与 DuckDB 内存中的 DataChunk 结构高度对应)。

同时,UI 使用服务器推送事件(Server-Sent Events)来即时通知诸如附加数据库等操作的变化。这些技术共同确保了 DuckDB UI 具有低延迟、流畅自然的使用体验。

全新的 DuckDB UI : 一个强大且灵活的 DuckDB 本地 Web 界面。DuckDB UI 延续了 DuckDB 数据库本身的设计理念:简单、快速、功能丰富且便携,并且可以在本地计算机上直接运行。