Superset 1.0 有一个新的导入/导出 API,允许您执行此操作,这就是我们加载一些新示例仪表板的方式。您需要做的第一件事是启用该功能,方法是打开VERSIONED_EXPORT
特征标志superset_config.py
:
FEATURE_FLAGS: Dict[str, Any] = {
"VERSIONED_EXPORT": True,
}
假设您想要创建一个包含基础表和数据的新数据集。首先,使用这两个文件创建一个 ZIP 文件:
# your_dataset.zip
./metadata.yaml
./datasets/examples/your_dataset.yaml
The metadata.yaml
文件应如下所示:
version: 1.0.0
type: SqlaTable
timestamp: '2020-12-23T23:16:56.155576+00:00'
(timestamp
可以是任何东西)
文件your_dataset.yaml
可以有任何名称,并且应该描述您的列以及您想要在数据集中定义的任何其他指标:
table_name: your_dataset
main_dttm_col: null
description: null
default_endpoint: null
offset: 0
cache_timeout: null
schema: tap_slack
sql: null
params: null
template_params: null
filter_select_enabled: false
fetch_values_predicate: null
extra: null
uuid: 3e8130eb-0831-d568-b531-c3ce6d68d3d8 # can by any UUID
metrics:
- metric_name: count
verbose_name: COUNT(*)
metric_type: count
expression: COUNT(*)
description: null
d3format: null
extra: null
warning_text: null
columns:
- column_name: user_id
verbose_name: null
is_dttm: false
is_active: true
type: VARCHAR
groupby: true
filterable: true
expression: null
description: null
python_date_format: null
version: 1.0.0
database_uuid: 566ca280-3da8-967e-4aa4-4b349218736a # MUST be your database UUID
data: https://example.com/your_dataset.csv
Now POST
将文件发送到新端点:
$ curl -X POST -F 'formData=@/path/to/your_dataset.zip' https://superset.example.com/api/v1/dataset/import/
这应该在 UUID 566ca280-3da8-967e-4aa4-4b349218736a 的数据库下创建数据集,创建表并填充来自https://example.com/your_dataset.csv https://example.com/your_dataset.csv.
如果您想覆盖现有表或现有数据集上的数据,您可以执行类似的过程,但您还应该通过-F 'overwrite=true'
,在这种情况下,现有表将被删除并替换为 CSV URL 中的数据(因此它可以具有新架构)。
目前无法通过导入/导出 API 将数据附加到现有表。您可以使用 CSV 文件 API 将数据附加到现有表中,不过它有该选项。