跳转到内容

Schema 浏览与历史

English · 文档

侧栏有两个 Tab:表结构查询历史(英文界面中为 SchemaHistory)。旁边的收起按钮(或 ⌘B)可以收起侧栏;点标题栏最左侧的按钮,或再按一次 ⌘B,即可展开。收起状态会被记住。

Schema 树

树从上到下依次显示:

  • 本地文件——你已注册的数据文件,以视图名显示,并带有行数。只有文件名与视图名不同(如 sales.csv 对应 sales_2)时才在旁边显示文件名,两个文件视图名相同时显示所在文件夹;鼠标悬停可看到完整路径。它的子节点是该视图的列。
  • 应用 / 仪表盘——你最近打开过的 analysis app 和 .dash 仪表盘,按名称排序,点击后位置不会变。点击即可像打开文件一样重新打开对应的 Tab;悬停时的 × 会把它从列表移除,文件和已打开的 Tab 都不受影响;路径已不存在的条目会从列表中移除。
  • S3——在配置好 S3 之后出现。延迟加载。
  • 每个数据库,然后是它的 schema,接着是表和视图,最后是列。

表会显示估算的行数;视图则不显示。列行显示 DuckDB 数据类型。系统数据库以及 information_schemapg_catalogsystem 这几个 schema 会被隐藏。

刷新 Schema 会重新加载 catalog,并重新挂载已注册的文件。

生成 SELECT

点击以下三项内容中的任意一项,都会填充当前编辑器:

点击生成的 SQL
表的播放按钮SELECT * FROM db.schema.table LIMIT 100;
表的列名SELECT col FROM db.schema.table LIMIT 100;
是数据文件的 S3 对象SELECT * FROM 's3://bucket/key' LIMIT 100;

名称会完整限定为 database.schema.table,仅当它不是普通标识符时才加双引号。

注意,这三种操作都会替换当前 Tab 的整个缓冲区——它们不会插入到光标处。点击查询历史条目也是如此。在四处点击之前,请先保存你在意的内容。

修改列的数据类型

列行提供修改数据类型的操作(视图列上不可用,因此挂载的 CSV 和 Parquet 列无法改类型)。它会打开一个自由文本对话框,预先填入当前类型,然后执行:

sql
ALTER TABLE db.schema.table ALTER COLUMN "col" SET DATA TYPE <what you typed>;

没有选择器,也没有校验列表——任何 DuckDB 类型字符串都可以,包括 DECIMAL(10,2) 这样带参数的类型。类型无效会以错误通知的形式返回。成功后会重新加载 catalog。

目前不支持重命名和删除列,也不支持编辑列注释。

移除已注册的文件

文件行上的 × 会先请求确认,然后删除该视图并忘记注册信息。磁盘上的文件不会被改动。

查询历史

每一次运行都会被记录下来——成功和失败都一样——包含本地时间戳、以毫秒计的耗时、行数(DML 则是受影响行数),以及失败时的错误文本。失败的条目以红色显示,并带有 失败 标签。

列表显示最新的 200 条记录。点击某一行会把该 SQL 回填到当前编辑器并聚焦,替换掉原有内容。

没有保留策略,也没有清理:历史表会无限增长,界面只是显示最近的 200 条。同样没有搜索、没有过滤、没有导出,也无法从界面删除某条记录。

查询历史存储在 DuckLocal 自己的数据库文件中,而不是你打开的数据库里,因此在切换数据库、丢失工作区之后它仍然存在。它所在的位置见设置与应用数据

基于 Apache-2.0 许可开源发布。