跳至主要內容
在 GitHub 上編輯此頁面

常見問題

Superset 可以處理多大的資料集?

Superset 甚至可以處理龐大的資料庫!Superset 作為您的底層資料庫或資料引擎之上的薄層,負責執行所有處理。Superset 僅視覺化查詢的結果。

在 Superset 中實現可接受效能的關鍵,在於您的資料庫是否可以執行查詢,並以您的使用者可以接受的速度傳回結果。如果您在使用 Superset 時遇到效能緩慢的問題,請基準化並調整您的資料倉儲。

執行 Superset 需要哪些運算規格?

您的 Superset 安裝規格取決於您的使用者數量及其活動,而不是您的資料大小。社群中的 Superset 管理員報告 8GB RAM、2vCPU 足以執行中等規模的執行個體。若要開發 Superset,例如編譯程式碼或建立映像檔,您可能需要更多效能。

監控您的資源使用情況,並根據需要增加或減少。請注意,Superset 的使用往往會出現高峰期,例如,如果會議中的每個人都同時載入相同的儀表板。

Superset 的應用程式中繼資料不需要非常大的資料庫來儲存,儘管記錄檔會隨著時間增長。

我可以一次聯結/查詢多個表格嗎?

在 Explore 或 Visualization UI 中不行。Superset SQLAlchemy 資料來源只能是單一表格或檢視。

當使用表格時,解決方案是建立一個包含分析所需的所有欄位的表格,最有可能透過一些排定的批次處理來完成。

檢視是一個簡單的邏輯層,可將任意 SQL 查詢抽象化為虛擬表格。這可以讓您聯結和合併多個表格,並使用任意 SQL 運算式套用一些轉換。那裡的限制是您的資料庫效能,因為 Superset 實際上會在您的查詢(檢視)之上執行查詢。一個好的做法可能是將自己限制為僅將主要的大型表格聯結到一個或多個小型表格,並盡可能避免使用 GROUP BY,因為 Superset 將執行自己的 GROUP BY,並且執行兩次工作可能會降低效能。

無論您使用表格還是檢視,效能都取決於您的資料庫可以多快將結果傳遞給與 Superset 互動的使用者。

但是,如果您使用的是 SQL Lab,則沒有此限制。您可以撰寫 SQL 查詢來聯結多個表格,前提是您的資料庫帳戶有權存取這些表格。

我該如何建立自己的視覺化?

我們建議閱讀建立視覺化外掛程式中的說明。

我可以上傳並視覺化 CSV 資料嗎?

當然可以!閱讀此處的說明,以瞭解如何啟用和使用 CSV 上傳。

為什麼我的查詢逾時?

長時間執行的查詢可能會逾時的原因有很多。

若要從 Sql Lab 執行長時間查詢,依預設,Superset 允許其執行長達 6 小時,然後由 celery 終止。如果您想要增加執行查詢的時間,可以在設定中指定逾時。例如

SQLLAB_ASYNC_TIME_LIMIT_SEC = 60 * 60 * 6

如果您在載入儀表板或探索切片時看到逾時(504 閘道逾時),您可能在閘道或 Proxy 伺服器(例如 Nginx)後面。如果它沒有從 Superset 伺服器(正在處理長時間查詢)收到及時的回應,這些 Web 伺服器會直接向用戶端傳送 504 狀態碼。Superset 有一個用戶端逾時限制來解決此問題。如果查詢未在用戶端逾時(預設為 60 秒)內傳回,Superset 會顯示警告訊息,以避免閘道逾時訊息。如果您有較長的閘道逾時限制,您可以在 superset_config.py 中變更逾時設定

SUPERSET_WEBSERVER_TIMEOUT = 60

為什麼地圖在地理空間視覺化中不可見?

您需要在 Mapbox.com 註冊免費帳戶、取得 API 金鑰,並將其新增至 .env 中的金鑰 MAPBOX_API_KEY

MAPBOX_API_KEY = "longstringofalphanumer1c"

如何限制儀表板上的計時重新整理?

依預設,儀表板計時重新整理功能允許您根據設定的排程,自動重新查詢儀表板上的每個切片。但是,有時您不希望重新整理所有切片,特別是如果某些資料移動緩慢或執行繁重的查詢。若要從計時重新整理程序中排除特定切片,請將 timed_refresh_immune_slices 金鑰新增至儀表板 JSON 中繼資料欄位

{
"filter_immune_slices": [],
"expanded_slices": {},
"filter_immune_slice_fields": {},
"timed_refresh_immune_slices": [324]
}

在上面的範例中,如果為儀表板設定計時重新整理,則除 324 以外的每個切片都會根據排程自動重新查詢。

切片重新整理也會在指定的期間內交錯進行。您可以將 stagger_refresh 設定為 false 來關閉此交錯,並將 stagger_time 設定為 JSON 中繼資料欄位中的毫秒值來修改交錯期間

{
"stagger_refresh": false,
"stagger_time": 2500
}

在這裡,如果啟用定期重新整理,則整個儀表板會同時重新整理。將忽略 2.5 秒的交錯時間。

為什麼啟動時「flask fab」或 superset 凍結/掛起/沒有回應(我的主目錄是 NFS 掛載的)?

依預設,Superset 會在 ~/.superset/superset.db 建立和使用 SQLite 資料庫。眾所周知,由於 NFS 上損壞的檔案鎖定實作,SQLite 如果用於 NFS,則無法正常運作

您可以使用 SUPERSET_HOME 環境變數覆寫此路徑。

另一個變通方法是變更 superset 儲存 sqlite 資料庫的位置,方法是在 superset_config.py 中新增以下內容

SQLALCHEMY_DATABASE_URI = 'sqlite:////new/location/superset.db?check_same_thread=false'

您可以在此處閱讀更多關於使用設定檔自訂 Superset 的資訊。

如果表格結構描述變更了怎麼辦?

表格結構描述會演進,而 Superset 需要反映這一點。在儀表板的生命週期中,想要新增新的維度或指標是很常見的。若要讓 Superset 探索您的新欄位,您只需前往 資料 -> 資料集,按一下結構描述已變更的資料集旁邊的編輯圖示,然後從 欄位 索引標籤點擊 從來源同步欄位。在幕後,將會合併新欄位。在此之後,您可能想要重新編輯表格,以設定 [欄位] 索引標籤,核取適當的方塊並再次儲存。

我可以使用哪個資料庫引擎作為 Superset 的後端?

為了澄清,資料庫後端是 Superset 用來儲存其內部資訊(例如您的使用者清單和儀表板定義)的 OLTP 資料庫。雖然 Superset 支援各種資料庫作為資料來源,但僅支援少數資料庫引擎作為 OLTP 後端/中繼資料儲存區。

Superset 是使用 MySQL、PostgreSQL 和 SQLite 後端進行測試的。建議您在其中一個資料庫伺服器上安裝 Superset 以進行生產。在其他 OLTP 資料庫上安裝可能會正常運作,但未經過測試。據報告,Microsoft SQL Server 無法作為 Superset 後端。欄儲存、非 OLTP 資料庫並非為這種類型的工作負載而設計。

我該如何設定 OAuth 驗證和授權?

您可以查看此 Flask-AppBuilder 設定範例

是否有方法可以強制儀表板使用特定色彩?

可以針對每個儀表板,方法是使用 label_colors 金鑰,在 JSON 中繼資料屬性中提供標籤到色彩的對應。您可以使用完整的十六進位色彩、具名色彩(例如 redcorallightblue),或目前色彩調色盤中的索引(0 表示第一個色彩,1 表示第二個色彩等)。範例

{
"label_colors": {
"foo": "#FF69B4",
"bar": "lightblue",
"baz": 0
}
}

Superset 是否適用於 [在此處插入資料庫引擎]?

連線至資料庫區段提供支援資料庫的最佳概觀。該頁面未列出的資料庫引擎也可能正常運作。我們仰賴社群為此知識庫做出貢獻。

若要透過 SQLAlchemy 連接器在 Superset 中支援資料庫引擎,它需要具有符合 Python 規範的 SQLAlchemy 方言,以及定義好的 DBAPI 驅動程式。SQL 支援有限的資料庫也可能可以使用。例如,即使 Druid 不支援聯結和子查詢,仍可以透過 SQLAlchemy 連接器連線到 Druid。另一個資料庫要被支援的關鍵要素是透過 Superset 資料庫引擎規格介面。此介面允許定義超出 SQLAlchemy 和 DBAPI 範圍的資料庫特定配置和邏輯。這包括以下功能:

  • 與日期相關的 SQL 函數,讓 Superset 在執行時間序列查詢時可以提取不同的時間粒度
  • 引擎是否支援子查詢。如果為 false,Superset 可能會執行兩階段查詢來彌補限制
  • 關於處理日誌和推斷查詢完成百分比的方法
  • 如果驅動程式不是標準 DBAPI,如何處理游標和連線的技術細節

除了 SQLAlchemy 連接器之外,也可以(儘管複雜得多)擴充 Superset 並編寫自己的連接器。目前唯一的例子是 Druid 連接器,但隨著 Druid 對 SQL 支援的增加以及最近 DBAPI 和 SQLAlchemy 驅動程式的可用性,Druid 連接器正被取代。如果您考慮整合的資料庫有任何形式的 SQL 支援,最好採用 SQLAlchemy 路線。請注意,要實現原生連接器,資料庫需要支援執行 OLAP 類型的查詢,並且應該能夠執行基本 SQL 中常見的操作

  • 匯總資料
  • 應用篩選器
  • 應用 HAVING 類型的篩選器
  • 能感知綱要、公開欄位和類型

Superset 是否提供公開 API?

是的,有一個公開的 REST API,而且該 API 的介面正在穩定擴充。您可以在 此處閱讀更多關於此 API 的資訊,並使用 Swagger 與之互動。

/api/v1 下的端點集合的原始願景最初在 SIP-17 中指定,並且不斷取得進展以涵蓋越來越多的使用案例。

可用的 API 使用 Swagger 進行文件記錄,並且可以透過在 superset_config.py 中啟用以下標誌,在 /swagger/v1 下提供文件:

FAB_API_SWAGGER_UI = True

還有其他未記錄的 [私有] 方式可以透過程式設計與 Superset 互動,這些方式不提供保證且不推薦使用,但可能暫時適合您的使用案例

  • 直接使用 ORM (SQLAlchemy)
  • 使用內部 FAB ModelView API(將在 Superset 中棄用)
  • 在您的分支中修改原始碼

如何查看使用統計資訊(例如,每月活躍使用者)?

Superset 沒有包含此功能,但是您可以提取和分析 Superset 的應用程式元數據,以查看發生了哪些操作。預設情況下,使用者活動記錄在 Superset 元數據資料庫的 logs 表中。一家公司發布了關於 他們如何分析 Superset 使用情況的文章,其中包括範例查詢

編輯資料集檢視中的「小時偏移」是什麼意思?

在編輯資料集檢視中,您可以指定時間偏移。此欄位可讓您設定要加到或減去時間欄位的時數。例如,這可用於將 UTC 時間轉換為當地時間。

Superset 是否收集任何遙測資料?

預設情況下,Superset 會使用 Scarf 來收集在安裝和/或執行 Superset 時的基本遙測資料。此資料有助於 Superset 的維護者更好地了解正在使用哪些版本的 Superset,以便優先處理修補程式/次要版本和安全性修復。我們使用 Scarf Gateway 來位於容器登錄檔之前,使用 scarf-js 套件來追蹤 npm 安裝,並使用 Scarf 像素來收集有關 Superset 頁面瀏覽的匿名分析。Scarf 會清除 PII 並提供匯總的統計資訊。Superset 使用者可以透過 此處此處 記載的各種方式輕鬆選擇退出分析。Superset 維護者也可以透過在 Superset 容器(或執行 Superset/webpack 的任何地方)中將 SCARF_ANALYTICS 環境變數設定為 false 來選擇退出遙測資料收集。Docker 使用者的其他選擇退出說明可在 Docker 安裝 頁面上找到。

Superset 是否有封存面板或垃圾桶,使用者可以從中復原已刪除的資產?

否。目前,沒有辦法從 UI 復原已刪除的 Superset 儀表板/圖表/資料集/資料庫。但是,有一個關於實施此類功能的 正在進行的討論

因此,建議定期備份元數據資料庫。若要復原,您可以使用附加備份資料庫的 Superset 伺服器啟動復原實例,並使用 Superset UI 中的「匯出儀表板」按鈕(或 superset export-dashboards CLI 命令)。然後,取得 .zip 檔案並將其匯入到目前的 Superset 實例中。

或者,您可以透過程式設計定期匯出資產作為備份。