對累加式重新整理和實時數據進行疑難解答

實作累加式重新整理和實時數據解決方案時,有兩個階段,第一個階段是在Power BI Desktop 中設定參數、篩選和定義原則,第二個階段是在服務中初始語意模型重新整理作業和後續重新整理。 本文將分別討論每個階段的疑難解答。

在 Power BI 服務 中分割數據表之後,請務必記住,使用 DirectQuery 取得實時數據的累加式重新整理數據表現在在混合模式中運作,這表示它們同時在匯入和 DirectQuery 模式中運作。 任何與這類累加式重新整理混合式數據表關聯性的數據表都必須使用雙重模式,如此才能在匯入和 DirectQuery 模式中使用,而不會造成效能損失。 此外,報表視覺效果可能會快取結果,以避免將查詢傳回數據源,這可防止數據表實時挑選最新的數據更新。 最後的疑難解答一節涵蓋這些混合模式問題。

在針對累加式重新整理和實時數據進行疑難解答之前,請務必先檢閱增量重新整理,以取得模型和實時數據的累加式重新整理,以及設定累加式重新整理和實時數據中的逐步資訊。

在 Power BI Desktop 中設定

設定累加式重新整理和實時數據時發生的大部分問題都必須與查詢折疊相關聯。 如模型的累加式重新整理概觀 - 支持的數據源中所述 ,您的數據源必須支持查詢折疊。

問題:載入數據需要太長的時間

在 Power Query 編輯器 中,選取 [套用] 之後,載入數據需要大量的時間和計算機資源。 有幾個可能的原因。

原因:數據類型不符

此問題可能是數據類型不相符,其中 Date/Time 是 和 RangeEnd 參數的必要數據類型RangeStart,但套用篩選的數據表日期數據行不是Date/Time數據類型,反之亦然。 參數數據類型和篩選的數據行都必須是 Date/Time 數據類型,而且格式必須相同。 如果沒有,則無法折疊查詢。

解決方案:驗證數據類型

確認累加式重新整理數據表的日期/時間數據行為 Date/Time 數據類型。 如果您的數據表不包含資料類型的數據Date/Time行,而是改用整數數據類型,您可以建立函式,以轉換 和 RangeEnd 參數中的RangeStart日期/時間值,以符合數據源數據表的整數代理索引鍵。 若要深入瞭解,請參閱 設定累加式重新整理 - 將 DateTime 轉換為整數

原因:數據源不支持查詢折疊

如模型的累加式重新整理和實時數據中所述 - 需求,累加式重新整理是針對支持查詢折疊的數據源所設計。 在發佈至服務之前,請確定數據源查詢在Power BI Desktop 中折疊,其中查詢折迭問題可能會大幅增加。 此方法在累加式重新整理原則中包含實時數據時特別重要,因為即時 DirectQuery 分割區需要查詢折疊。

解決方案:驗證和測試查詢

在大部分情況下,[累加式重新整理原則] 對話框中會顯示警告,指出針對數據源執行的查詢是否不支持查詢折疊。 不過,在某些情況下,可能需要進一步確保查詢折疊可行。 可能的話,請使用 SQL Profiler 之類的工具來監視要傳遞至數據源的查詢。 以 篩選為基礎的 RangeStart 查詢,且 RangeEnd 必須在單一查詢中執行。

您也可以在 和 RangeEnd 參數中RangeStart指定簡短的日期/時間週期,其中包含不超過數千個數據列。 如果從數據源到模型的篩選數據載入需要很長的時間,而且需要大量處理,則表示查詢不會折疊。

如果您判斷查詢未折疊,請參閱 Power BI Desktop 中的查詢折疊指引和 Power Query 查詢折 疊,以協助識別可能防止查詢折疊和查詢折疊的方式,或數據源甚至可以支持查詢折疊。

服務中的語意模型重新整理

針對服務中的累加式重新整理問題進行疑難解答,視您的模型發佈至的容量類型而有所不同。 進階版 容量上的語意模型支援使用 SQL Server Management Studio (SSMS) 之類的工具來檢視和選擇性地重新整理個別分割區。 另一方面,Power BI Pro 模型不會透過 XMLA 端點提供工具存取,因此針對累加式重新整理問題進行疑難解答可能需要更多試驗和錯誤。

問題:初始重新整理逾時

共用容量上Power BI Pro模型的排程重新整理有兩個小時的時間限制。 進階版 容量的模型,此時間限制會增加到5小時。 數據源系統也可能強加查詢傳回大小限制或查詢逾時。

原因:數據源查詢未折疊

雖然在發佈至服務之前,通常會在Power BI Desktop 中判斷查詢折疊的問題,但模型重新整理查詢可能並未折疊,導致過度重新整理時間和查詢混搭引擎資源使用率。 這種情況會發生,因為會針對模型中的每個分割區建立查詢。 如果查詢未折疊,且數據未在數據源進行篩選,則引擎會嘗試篩選數據。

解決方案:驗證查詢折疊

使用數據源的追蹤工具來判斷每個分割區所傳遞的查詢是單一查詢,其中包含以 RangeStart 和 RangeEnd 參數為基礎的篩選。 如果沒有,請在將少量篩選的數據載入模型時,確認Power BI Desktop模型中發生查詢折疊。 如果沒有,請先在模型中修正它、只對模型執行元數據更新(使用 XMLA 端點),或如果 Power BI Pro 模型位於共用容量上,請刪除服務中不完整的模型、重新發佈,然後再試一次初始重新整理作業。

如果您判斷查詢未折疊,請參閱 Power BI Desktop 中的查詢折疊指引和 Power Query 查詢折疊 ,以協助識別可能防止查詢折疊的內容。

原因:載入數據分割的數據太大

解決方案:減少模型大小

在許多情況下,逾時是由必須查詢並載入至模型分割區的數據量所造成,超過容量所施加的時間限制。 減少模型的大小或複雜度,或考慮將模型分成較小的部分。

解決方案:啟用大型模型儲存格式

對於發行至 進階版 容量的模型,如果模型成長超過 1 GB 或更多,您可以改善重新整理作業效能,並藉由啟用大型模型儲存格式,確保模型不會在服務中執行第一次重新整理作業之前,啟用大小上限。 若要深入瞭解,請參閱 Power BI 中的大型模型 進階版

解決方案:啟動程式初始重新整理

針對發行至 進階版 容量的模型,您可以啟動初始重新整理作業。 啟動載入可讓服務建立模型的數據表和數據分割物件,但不會將歷程記錄數據載入到任何分割區中。 若要深入瞭解,請參閱 進階累加式重新整理 - 防止初始完整重新整理逾時。

原因:數據源查詢逾時

查詢可以受限於數據源的預設時間限制。

解決方案:覆寫查詢表示式中的時間限制

許多數據源都允許覆寫查詢表達式中的時間限制。 若要深入瞭解,請參閱 模型的累加式重新整理 - 時間限制

問題:重新整理因為重複值而失敗

原因:日期已變更

使用重新整理作業時,模型中只會重新整理數據源變更的數據。 由於數據除以日期,因此建議不會變更張貼(交易)日期。

如果意外變更日期,則會發生兩個問題:使用者注意到歷程記錄數據中變更的總計(不應該發生),或在重新整理期間傳回錯誤,指出唯一值實際上並不是唯一的。 針對後者,當已設定累加式重新整理的數據表用於與另一個數據表做為1端的關聯性,而且應該具有唯一1:N值時,就可能發生這種情況。 當特定標識碼的數據變更時,該標識碼就會出現在另一個分割區中,且引擎偵測到值不是唯一的。

解決方案:重新整理特定分割區

當企業需要從日期變更一些過去的數據時,可能的解決方法是使用SSMS,從變更所在點重新整理到目前重新整理數據分割的所有分割區,因此讓 1 關聯性一側保持唯一。

問題:數據遭到截斷

原因:已超過數據源查詢限制

某些數據源,例如 Azure 數據總管、Log Analytics 和 Application Insights,對於可針對外部查詢傳回的數據,限制為 64 MB(已壓縮)。 Azure 數據總管可能會傳回明確的錯誤,但對於Log Analytics和Application Insights等其他人而言,傳回的數據會遭到截斷。

解決方案:指定較小的重新整理和儲存期間

在原則中指定較小的重新整理和儲存期間。 例如,如果您指定了一年的重新整理期間,並傳回查詢錯誤或傳回的數據被截斷,請嘗試重新整理期間為12 個月。 您想要確保根據重新整理和存放區期間,目前重新整理數據分割或任何歷程記錄數據分割的查詢不會傳回超過 64 MB 的數據。

問題:重新整理因分割區索引鍵衝突而失敗

原因:數據源日期數據行中的日期已更新

日期數據行上的篩選可用來動態分割數據到 Power BI 服務 中的期間範圍。 累加式重新整理的設計不是為了支援在來源系統中更新篩選日期數據行的情況。 更新會解譯為插入和刪除,而不是實際的更新。 如果刪除發生在歷程記錄範圍中,而不是累加範圍,則不會挑選它,這可能會導致數據重新整理失敗,因為分割區索引鍵衝突。

服務中的混合模式 (預覽)

當 Power BI 使用即時數據套用累加式重新整理原則時,它會將累加式重新整理的數據表轉換成在匯入和 DirectQuery 模式中運作的混合式數據表。 請注意下列範例數據表之分割區清單結尾的 DirectQuery 分割區。 DirectQuery 分割區的存在會影響查詢此數據表的相關數據表和報表視覺效果。

混合式數據表的螢幕快照。

問題:查詢效能不佳

在匯入和 DirectQuery 模式中同時運作的混合式數據表需要任何相關數據表才能以雙重模式運作,以便根據提交至 Power BI 模型的查詢內容,以做為快取或不快取的數據表。 雙重模式可讓Power BI減少模型中有限關聯性的數目,併產生有效率的數據源查詢,以確保效能良好。 無法將有限的關聯性推送至需要 Power BI 擷取比必要數據更多的數據源。 因為雙重數據表可以做為 DirectQuery 或 Import 數據表,因此可以避免這種情況。

設定累加式重新整理原則時,Power BI Desktop 會在您選取 [使用 DirectQuery 即時取得最新數據] 時,提醒您將任何相關數據表切換為雙重模式(僅限 進階版)。 此外,請確定您在模型檢視中檢閱所有現有的數據表關聯性。

顯示將相關數據表轉換成雙重模式的螢幕快照。

目前在 DirectQuery 模式中運作的數據表很容易切換為雙重模式。 在數據表屬性的 [進階] 下,從 [儲存體 模式] 列表框中選取 [雙重]。 不過,目前在匯入模式中運作的數據表需要手動工作。 雙數據表的功能條件約束與 DirectQuery 數據表相同。 因此,Power BI Desktop 無法轉換匯入數據表,因為它們可能依賴雙重模式中無法使用的其他功能。 您必須在 DirectQuery 模式中手動重新建立這些數據表,然後將這些數據表轉換成雙重模式。 若要深入瞭解,請參閱 在Power BI Desktop中管理儲存模式。

問題:報表視覺效果不會顯示最新的數據

原因:Power BI 快取查詢結果可改善效能並減少後端負載

根據預設,Power BI 會快取查詢結果,因此即使報表視覺效果的查詢是以 DirectQuery 為基礎,也能快速處理。 避免不必要的數據源查詢可改善效能並降低數據源負載,但也可能表示來源的最新數據變更不會包含在結果中。

解決方案:設定自動頁面重新整理

若要繼續從來源擷取最新的數據變更,請在 Power BI 服務 中設定報表的自動頁面重新整理。 可以固定間隔執行自動頁面重新整理,例如五秒或十分鐘。 達到該特定間隔時,該頁面中的所有視覺效果都會傳送更新查詢至數據源並據以更新。 或者,您可以根據偵測數據中的變更,重新整理頁面上的視覺效果。 此方法需要Power BI接著用來輪詢數據源是否有變更的變更偵測量值。 只有在屬於 進階版 容量的工作區中,才支援變更偵測。 若要深入瞭解,請參閱 Power BI中的自動頁面重新整理。