如何通过Superset REST API创建virtual dataset,已可创建physical dataset
解决方案
创建virtual dataset(虚拟数据集)和physical dataset(物理数据集)调用的是同一个API接口,即POST /api/v1/dataset/,你只需要在现有请求的JSON参数中新增两个字段即可:添加is_virtual字段设为true标识这是虚拟数据集,再添加sql字段传入自定义查询语句。
完整请求参数示例
{ "database": 0, "owners": [ 0 ], "schema": "string", "table_name": "你的虚拟数据集名称", "is_virtual": true, "sql": "SELECT * FROM 你要查询的物理表 WHERE 过滤条件 = 'xxx'" }
注意事项
- 你可以选择新增
columns参数自定义配置每个列的名称、数据类型、是否支持排序等属性,也可以不传该参数,让Superset自动识别SQL查询返回的列结构 - 提交请求前请确保
sql字段内的查询语句在关联的数据库中可以正常执行,否则接口会返回语法校验错误 - 该参数仅在Superset 1.3.0及以上版本支持,低版本实例需要先升级再调用
- 官方swagger文档未收录该参数属于正常情况,你可以在前端创建虚拟数据集时抓取浏览器的XHR请求,查看实际提交的完整参数结构作为参考
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

