当前位置: 首页> 教育> 高考 > Superset二次开发之导入导出功能源码解读

Superset二次开发之导入导出功能源码解读

时间:2025/8/28 3:01:43来源:https://blog.csdn.net/u013985879/article/details/139992318 浏览次数:0次

可导出的类型

支持 看板(Dashboard)、图表(Charts)、数据集(Datasets)、SQL(saved_query)、数据库(Database connection) 单次或批量的导出,和单次导入操作

 看板(Dashboard)

 图表(Charts)

 数据集(Datasets)

 SQL (saved_query)

 数据库(database connections)

 导出内容

导出接口

dashboardGETapi/v1/dashboard/export/?q=!(dashboard_id)&token=GMsud-wrK
chartsGETapi/v1/chart/export/?q=!(slice_id)&token=N0PFreRTn
datasetsGETapi/v1/dataset/export/?q=!(datasource_id)&token=s1GBGju-l
saved_queriesGETapi/v1/saved_query/export/?q=!(sql_id)&token=2DDFzvjzF
databasesGETapi/v1/database/export/?q=!(database_id)&token=F45_CB_DB

导入接口

dashboardPOSTapi/v1/dashboard/import
chartsPOSTapi/v1/chart/import
datasetsPOSTapi/v1/dataset/import
saved_queriesPOSTapi/v1/saved_query/import
databasesPOST/api/v1/database/import/

 源码解读部分

  • Dashboards 导入核心逻辑

superset/dashboards/api.py

    command = ImportDashboardsCommand()

         superset/dashboards/commands/importers/dispatcher.py

             command_versions = [
                   v1.ImportDashboardsCommand,
                   v0.ImportDashboardsCommand,
              ]

                      superset/dashboards/commands/importers/v1/__init__.py

@staticmethoddef _import(session: Session, configs: dict[str, Any], overwrite: bool = False) -> None:# discover charts and datasets associated with dashboards'''1. 发现与仪表板关联的图表和数据集初始化集合chart_uuids和dataset_uuids,用于存储与仪表板相关联的图表和数据集的UUID。遍历配置项,对于每个以"dashboards/"开头的文件名,通过find_chart_uuids函数从仪表板的位置信息中提取图表UUID,并通过find_native_filter_datasets函数从元数据中提取数据集UUID。'''chart_uuids: set[str] = set()dataset_uuids: set[str] = set()for file_name, config in configs.items():if file_name.startswith("dashboards/"):chart_uuids.update(find_chart_uuids(config["position"]))dataset_uuids.update(find_native_filter_datasets(config.get("metadata", {})))# discover datasets associated with charts'''2. 发现图表关联的数据集继续遍历配置项,对于每个以"charts/"开头且UUID在chart_uuids集合中的配置项,提取其数据集UUID,并添加到dataset_uuids集合中。'''for file_name, config in configs.items():if file_name.startswith("charts/") and config["uuid"] in chart_uuids:dataset_uuids.add(config["dataset_uuid"])# discover databases associated with datasets'''3. 发现数据集关联的数据库再次遍历配置项,对于每个以"datasets/"开头且UUID在dataset_uuids集合中的配置项,提取其数据库UUID,并添加到集合database_uuids。'''dat
关键字:Superset二次开发之导入导出功能源码解读

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: