表结构变更后如何让 Superset 数据集同步新增列(Sync columns from source)
【免费下载链接】supersetApache Superset is a Data Visualization and Data Exploration Platform项目地址: https://gitcode.com/gh_mirrors/supers/superset
Superset 中的数据表是作为Dataset注册的:你先把某个数据库里的表注册为数据集,再基于它构建 Explore 图表和 Dashboard。当底层源表发生 schema 变更(比如加了一个新的字段)后,数据集里看到的仍是旧的列清单,Explore 里选不到新列。官方 FAQ 针对 "What if the table schema changed?" 给出的直接回答是:要让 Superset 发现新列,需要进入该数据集的编辑页面,在Columns页签上手动触发Sync columns from source(见 FAQ)。
适用前提:数据集中对应源表的 schema 已经变化;该数据集此前已通过Data ‣ Datasets ‣ + Dataset注册(选择 Database、Schema、Table 后点击Add,流程见 Creating Your First Dashboard 的 "Registering a new table" 一节)。整个操作在 Superset 界面内完成,不需要执行任何 CLI 命令。
进入数据集编辑页并同步列
- 在顶部菜单选择Data ‣ Datasets,打开数据集列表。
- 找到源表 schema 已变化的那个数据集,点击它旁边的编辑图标,进入数据集编辑页。
- 在编辑页切换到Columns页签。该页签显示当前数据集的列清单;编辑页中还有 Source、Metrics、Calculated columns 等页签。
- 在Columns页签上点击Sync columns from source按钮。
这个按钮位于数据集编辑组件 DatasourceEditor.jsx 中,点击后触发syncMetadata回调,从源库重新拉取列信息。按 FAQ 的说明,同步完成后源表中的新列会被合并进数据集("Behind the scene, the new columns will get merged")。
为新列勾选属性并保存
同步之后,FAQ 建议 "re-edit the table afterwards to configure the Columns tab, check the appropriate boxes and save again"——即回到编辑页的Columns页签,为合并进来的新列配置列属性后再次保存。可配置的属性(见 Creating Your First Dashboard 的 "Customizing column properties" 一节):
- 该列是否为时间列(temporal,用于时间序列图表的切片);
- 该列是否可过滤(filterable);
- 该列是否为维度(is_dimension);
- 若为 datetime 列,如何解析其日期时间格式(ISO-8601 字符串模式)。
确认勾选后点击Save保存数据集。
验证同步是否生效
- 保存后回到数据集的Columns页签,新增的源表列应出现在列清单中。
- 从Data ‣ Datasets列表中直接点击数据集名称进入 Explore 流程。Explore 页面左侧的Dataset视图展示 "a list of columns and metrics, scoped to the current dataset you selected"——新列应出现在这里。
- 进一步确认:在Group by或Metrics中选择新列,点击Run Query,图表能正常出数,说明新列已可参与查询。
注意事项与边界
- FAQ 只说明了新增列会被合并("the new columns will get merged"),没有描述源表删除列后数据集的行为,不要据此推断删列的处理方式。
- Sync columns from source按钮在源码中带有
disabled状态(见 DatasourceEditor.jsx)。若按钮不可点击,先确认当前编辑页的状态,而不是重复点击。 - 为新列勾选属性是官方给出的建议动作("you may want to...")。如果新列只作为普通字段展示,可以跳过;但要让它作为时间列、过滤条件或维度参与图表,这一步就必须在保存前完成。
下一步
同步并保存后,就可以用新列正常构建图表:在 Explore 中选择数据集和可视化类型,把新列配置进查询,Run Query验证后保存图表并加入 Dashboard(完整流程见 Creating Your First Dashboard)。如果后续还需要了解数据集的其他配置,例如 Edit Dataset 视图中的时间偏移(Hours Offset),可以参考 FAQ 中对应条目。
【免费下载链接】supersetApache Superset is a Data Visualization and Data Exploration Platform项目地址: https://gitcode.com/gh_mirrors/supers/superset
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考