导入和导出数据源
Superset CLI 允许您将数据源从 YAML 导入和导出到 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 导出数据源:
- 打开 Sources -> Databases 以导出与单个或多个数据库关联的所有表。(Tables 用于一个或多个表)
 - 选择您要导出的项目。
 - 单击 Actions -> Export 到YAML
 - 如果您想导入通过 UI 导出的项目,您需要将其嵌套在父元素内,例如,database 需要嵌套在 databases 下,table 需要嵌套在 database element 内。
 
为了获得 所有字段的详尽列表,您可以使用 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 到当前版本
当使用 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 命令, 在示例数据集中的 random_time_series 表的 ds 列中添加 verbose_name。
databases:
- database_name: main
  tables:
  - table_name: random_time_series
    columns:
    - column_name: ds
      verbose_name: datetime