导入和导出数据源
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>
默认情况下,默认值(null)将被省略。使用 -d 标志包含它们。如果您希望包含反向引用(例如,列包含其所属的表 ID),请使用 -b 标志。
或者,您可以使用 UI 导出数据源
- 打开 **来源 -> 数据库** 以导出与单个或多个数据库关联的所有表。(**表** 用于一个或多个表)
- 选择要导出的项目。
- 单击 **操作 -> 导出** 到 YAML
- 如果您要导入通过 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_EXPORT
为 True
时,import_datasources
期望一个 ZIP 文件,否则为 YAML。例如
superset import_datasources -p <path or filename>
当 VERSIONED_EXPORT
为 False
时,如果您提供路径,所有以 yaml 或 yml 结尾的文件都将被解析。您可以应用其他标志(例如,递归搜索提供的路径)
superset import_datasources -p <path> -r
同步标志 -s 接受参数,以便将提供的元素与您的文件同步。小心,这可能会删除元数据库的内容。例如
superset import_datasources -p <path / filename> -s columns,metrics
这将同步在 Superset 元数据库中找到的 <path /filename>
中的所有数据源的所有指标和列。这意味着 YAML 中未指定的列和指标将被删除。如果您要向列、指标添加表,这些也会被同步。
如果您不提供同步标志 (-s),导入将只添加和更新(覆盖)字段。例如,您可以通过将以下 YAML 保存到文件,然后运行 import_datasources 命令,将 verbose_name 添加到示例数据集中的 random_time_series 表中的 ds 列。
databases:
- database_name: main
tables:
- table_name: random_time_series
columns:
- column_name: ds
verbose_name: datetime