跳至主要内容
在 GitHub 上编辑此页面

导入和导出数据源

superset cli 允许你从 YAML 导入和导出数据源。数据源包括数据库。数据预计将按照以下层次结构组织

├──databases
| ├──database_1
| | ├──table_1
| | | ├──columns
| | | | ├──column_1
| | | | ├──column_2
| | | | └──... (more columns)
| | | └──metrics
| | | ├──metric_1
| | | ├──metric_2
| | | └──... (more metrics)
| | └── ... (more tables)
| └── ... (more databases)

将数据源导出到 YAML

你可以通过运行以下命令将当前数据源打印到标准输出

superset export_datasources

要将数据源保存到 ZIP 文件中,请运行

superset export_datasources -f <filename>

默认情况下,默认(空)值将被省略。使用 -d 标志来包含它们。如果你希望包含反向引用(例如,一个列包含它所属的表 ID),请使用 -b 标志。

或者,你可以使用 UI 导出数据源

  1. 打开**数据源 -> 数据库**以导出与一个或多个数据库关联的所有表。(**表**用于一个或多个表)
  2. 选择你想要导出的项目。
  3. 单击**操作 -> 导出**到 YAML
  4. 如果你想要导入通过 UI 导出的项目,你需要将它嵌套在它的父元素中,例如,数据库需要嵌套在数据库下,表需要嵌套在数据库元素中。

为了获得你可以使用 YAML 导入运行的**所有字段的完整列表**,请运行

superset export_datasource_schema

请记住,你可以使用-b标志包含反向引用。

导入数据源

要从 ZIP 文件导入数据源,请运行

superset import_datasources -p <path / filename>

可选的用户名标志-u设置用于数据源导入的用户。默认值为 'admin'。例如

superset import_datasources -p <path / filename> -u 'admin'

旧版导入数据源

从旧版本的 Superset 导入到当前版本

当使用 Superset 版本 4.x.x 从旧版本(2.x.x 或 3.x.x)导入时,导入支持作为命令legacy_import_datasources,并期望 JSON 或 JSON 目录。选项是-r用于递归和-u用于指定用户。没有选项的旧版导入示例

superset legacy_import_datasources -p <path or filename>

从旧版本的 Superset 导入到旧版本

当使用旧版本的 Superset(2.x.x 和 3.x.x)时,该命令为import_datasources。支持 ZIP 和 YAML 文件,并且可以使用功能标志VERSIONED_EXPORT在它们之间切换。当VERSIONED_EXPORTTrue时,import_datasources期望一个 ZIP 文件,否则期望 YAML。例如

superset import_datasources -p <path or filename>

VERSIONED_EXPORTFalse时,如果你提供一个路径,所有以yamlyml结尾的文件都将被解析。你可以应用其他标志(例如,递归搜索提供的路径)

superset import_datasources -p <path> -r

同步标志-s采用参数,以便将提供的元素与你的文件同步。小心,这可能会删除元数据库的内容。例如

superset import_datasources -p <path / filename> -s columns,metrics

这将同步 Superset 元数据库中<path /filename>中找到的所有数据源的所有指标和列。这意味着 YAML 中未指定的列和指标将被删除。如果你要向列、指标添加表,它们也将被同步。

如果你不提供同步标志(-s),导入只会添加和更新(覆盖)字段。例如,你可以通过将以下 YAML 保存到文件,然后运行import_datasources命令来为示例数据集中的 random_time_series 表中的 ds 列添加一个 verbose_name。

databases:
- database_name: main
tables:
- table_name: random_time_series
columns:
- column_name: ds
verbose_name: datetime