跳至主要內容
在 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

您可以透過執行以下命令,將目前的資料來源輸出到 stdout:

superset export_datasources

若要將資料來源儲存至 ZIP 檔案,請執行:

superset export_datasources -f <filename>

預設情況下,預設 (null) 值會被省略。使用 -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 中繼資料庫中 <路徑/檔案名稱> 中找到的所有資料來源的所有度量和欄位。這表示 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