查詢過去存在的資料 (預覽)
適用於:Microsoft Fabric 的倉儲
Microsoft Fabric 中的倉儲提供查詢過去存在的歷程記錄數據的功能。 從特定時間戳查詢數據的能力在數據倉儲產業中已知為 時間移動。 此功能目前為預覽功能。
- 時間移動可藉由維護一段時間內數據的一致性和正確性,來促進穩定的報告。
- 時間移動可透過查詢各種過去時間點來啟用歷史趨勢分析,並協助預測未來的趨勢。
- 時間移動可簡化舊版數據之間的低成本比較。
- 時間旅行有助於分析一段時間的效能。
- 時間移動可讓組織隨著時間稽核數據變更,通常是為了合規性目的而需要。
- 時間移動有助於重現機器學習模型的結果。
- 時間移動可以查詢數據表,因為它們存在於相同工作區中多個倉儲的特定時間點。
什麼是時間旅行?
數據倉儲中的時間移動是低成本且有效率的功能,可快速查詢舊版的數據。
Microsoft Fabric 目前允許以下列方式擷取過去的數據狀態:
TIME TRAVEL WITH TIMESTAMP AS OF T-SQL 命令
在倉儲專案中,您可以使用 OPTION FOR TIMESTAMP AS OF T-SQL 語法來查詢數據表,以擷取過去時間點的數據。 子 FOR TIMESTAMP AS OF
句會影響整個語句,包括所有聯結的倉儲數據表。
從時間移動查詢取得的結果原本就是唯讀的。 使用 FOR TIMESTAMP AS OF 查詢提示時,無法執行 INSERT、UPDATE 和 DELETE 等寫入作業。
使用 OPTION 子句來指定 FOR TIMESTAMP AS OF 查詢提示。 查詢會傳回資料,其與時間戳上完全相同,指定為 YYYY-MM-DDTHH:MM:SS[.fff]
。 例如:
SELECT *
FROM [dbo].[dimension_customer] AS DC
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28'); --March 13, 2024 at 7:39:35.28 PM UTC
使用 CONVERT
語法,以取得具有樣式 126 的必要日期時間格式。
時間戳只能指定一次,使用 OPTION
子句進行查詢、預存程式、檢視等等。OPTION
會套用至 SELECT 語句內的所有專案。
如需範例,請參閱 如何:使用時間移動查詢。
保留數據歷程記錄
在 Microsoft Fabric 中,倉儲會自動保留及維護各種數據版本,最多 預設保留期間為七個行事歷天。 這可讓您查詢數據表,就像任何先前的時間點一樣。 保留對數據倉儲所做的所有插入、更新和刪除。 保留會從建立倉儲的那一刻開始自動開始。 到期的檔案會在保留閾值之後自動刪除。
- 目前,
SELECT
具有查詢提示的FOR TIMESTAMP AS OF
語句會 傳回最新 版的數據表架構。 - 如果刪除是在保留期間內,可以在刪除之前查詢資料表中刪除的任何記錄。
- 對數據表架構所做的任何修改,包括但不限於新增或移除數據表中的數據行,都無法在架構變更之前查詢。 同樣地,卸除並重新建立具有相同數據的數據表會移除其歷程記錄。
時間旅行案例
請考慮在下列案例中將時間移至先前數據的能力:
穩定報告
經常執行擷取、轉換和載入 (ETL) 作業,對於跟上不斷變化的數據環境至關重要。 時間移動的能力可藉由確保數據完整性,同時根據過去時間點傳回的查詢結果,例如前一天晚上傳回的查詢結果,提供彈性來產生報告,同時進行背景處理。
ETL 活動可以在查詢與先前的時間點相同的數據表時同時執行。
歷史趨勢和預測性分析
時間移動可簡化歷史數據的分析,透過查詢過去時間範圍的數據,協助找出寶貴的趨勢和模式。 這可藉由啟用歷程記錄數據集的實驗和預測模型的定型,來促進預測性分析。 它有助於預測未來的趨勢,並協助做出明智的數據驅動決策。
分析和比較
時間旅行提供有效率且符合成本效益的疑難解答功能,提供歷史鏡頭進行分析和比較,有助於識別根本原因。
效能分析
時間移動有助於分析倉儲查詢加班的效能。 這有助於根據可優化查詢的效能降低趨勢來識別效能降低趨勢。
稽核與合規性
時間移動可讓稽核員瀏覽數據歷程記錄,以簡化稽核和合規性程式。 這不僅有助於保持符合法規規範,也有助於增強保證和透明度。
機器學習模型
時間移動功能可協助重現機器學習模型的結果,方法是協助分析歷史數據和模擬真實世界案例。 這可增強模型的整體可靠性,以便做出精確的數據驅動決策。
設計考量
OPTION FOR TIMESTAMP AS OF 查詢提示的考慮:
- 查詢
FOR TIMESTAMP AS OF
提示無法用來建立檢視,就像保留期間內任何先前的時間點一樣。 它可用來在保留期間內查詢過去時間點的檢視。 - 查詢
FOR TIMESTAMP AS OF
提示只能在語句內使用一SELECT
次。 - 查詢
FOR TIMESTAMP AS OF
提示可以在預存程式中的SELECT
語句內定義。
時間移動的許可權
任何具有 管理員、成員、參與者或查看器工作區角色的使用者,都可以查詢數據表,從過去的時間點開始。 當使用者查詢數據表時,數據行層級安全性 (CLS)、數據列層級安全性 (RLS) 或動態數據遮罩 (DDM) 所施加的限制會自動加總。
限制
- 在時間戳中最多提供三位數的小數秒數。 如果您提供更高的精確度,您會收到錯誤訊息
An error occurred during timestamp conversion. Please provide a timestamp in the format yyyy-MM-ddTHH:mm:ss[.fff]. Msg 22440, Level 16, State 1, Code line 29
。 - 目前,只會使用國際標準時間(UTC)時區進行時間旅行。
- 目前,時間旅行查詢的數據保留期為七天。
FOR TIMESTAMP AS OF
子句中的OPTION
值必須具決定性。 如需參數化的範例,請參閱 預存程式中的時間移動。- Lakehouse 的 SQL 分析端點不支持時間移動。
- 語法
OPTION FOR TIMESTAMP AS OF
只能在以SELECT
語句開頭的查詢中使用。 和之類的INSERT INTO SELECT
CREATE TABLE AS SELECT
查詢無法與OPTION FOR TIMESTAMP AS OF
一起使用。 請考慮在某個時間點複製倉儲數據表的能力。 - 檢視定義不能包含
OPTION FOR TIMESTAMP AS OF
語法。 您可以使用 語法來查詢SELECT .. FROM <view> ... OPTION FOR TIMESTAMP AS OF
檢視。 不過,在檢視建立檢視之前,您無法從 檢視中查詢數據表的過去數據。 FOR TIMESTAMP AS OF
Power BI Desktop Direct 查詢模式或 瀏覽此資料 選項目前不支持時間移動的語法。
後續步驟
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應