匯入與匯出資料來源
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
您可以透過執行以下命令,將目前的資料來源輸出到 stdout:
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 中繼資料庫中 <路徑/檔案名稱>
中找到的所有資料來源的所有度量和欄位。這表示 YAML 中未指定的欄位和度量將會被刪除。如果您要將表格新增至欄位、度量,這些也會被同步。
如果您沒有提供同步標籤 (-s),則匯入只會新增和更新 (覆寫) 欄位。例如,您可以透過將下列 YAML 儲存至檔案,然後執行 import_datasources 命令,將詳細名稱新增至範例資料集的表格 random_time_series 中的 ds 欄位。
databases:
- database_name: main
tables:
- table_name: random_time_series
columns:
- column_name: ds
verbose_name: datetime