無論時間桶寬度和數據大小如何,經過良好調整的 ETL 報告流程的 T 和 L 階段是否應該花費相同的時間?
對於 ETL 報告系統,15 分鐘無數據拉取的總執行時間類似於 24 小時有數據拉取的總執行時間是否正常?
我曾預計沒有數據時 ETL 的總時間會更短,但這不是 15 分鐘到 24 小時拉動之間的情況。但我必須承認,我對報表伺服器中 T 和 L 階段的內部結構一無所知。
有人可以闡明 T 和 L 階段的持續時間是否通常是固定的(直到某個點)?
Transform和Load的抽象概念沒有什麼具體可量化的,只有它們的具體實現是可測量的。為了能夠對您的案例發表評論,我們需要具體了解您的轉換和載入過程實際上在做什麼。顯然,某些轉換可能需要比其他轉換更長的時間。
但一般來說,正在處理的數據量肯定會影響ETL流程的整體執行時間。如果 24 小時時間範圍和 15 分鐘時間範圍之間的數據量存在顯著差異,但您的ETL流程在兩種情況下的平均執行時間大致相同,那麼肯定有問題,這是不正常的。
即使在這兩種情況下都發生了索引掃描,如果數據量存在顯著差異,總執行時間肯定會反映出來。索引掃描的執行時間是線性的(一般來說),基於索引中的行數。
我還將添加一些關於 Power BI 的內容。
通常在 Power BI 模型中,您將使用“導入數據”模式。在這種情況下,當您更新源數據中的幾行時,Power BI 儲存引擎將創建所有源數據的全新完整副本(或者如果僅優化特定分區的過程)。Power BI 使用與不可更新列儲存索引相同的引擎,因此每次更改後都需要重建整個索引分區。
您可以在此處閱讀有關 Power BI 刷新的更多資訊:https ://docs.microsoft.com/en-us/power-bi/connect-data/refresh-data 。
通常您不會使用小於 1 天的分區,因此預計 15 分鐘或 24 小時刷新會導致相同分區的重建,而 ETL 的這一階段將花費相似的時間。
當然,這只是 ETL 過程的階段之一,但通常是最長的一個。