Azure Synapse Link for Dataverse 常見問題集

本文提供有關將 Microsoft Dataverse 資料表資料匯出至 Azure Synapse Analytics 及 Azure Data Lake 的常見問題集資訊。

我可以手動執行工作,例如在已連接的 Azure 儲存體中建立、更新,或設定資料檔案的自動刪除原則嗎?

客戶不應修改資料檔案,且資料資料夾中不應放置任何客戶檔案。

注意

若要在不中斷 Azure Synapse Link 的情況下,刪除資料湖中的陳舊和停滯資料,請考慮使用查詢和分析增量更新功能

如何存取我的資料表關聯?

若要存取多對多關聯,該關係將以表格形式提供,以便從新增表格頁面中選取新連結,並從管理表格中選取既存的連結。

注意

以 CSV 格式寫入時,根據預設,所有關聯資料都是僅附加模式。

Azure Synapse Link 是一項具有 Dataverse 的免費功能。 使用 Azure Synapse Link for Dataverse 不會在 Dataverse 底下產生額外費用。 但是,請考慮 Azure 服務的潛在成本:

當我新增資料行時,會發生什麼事?

將新資料行新增至來源中的表格時,該資料行也將新增到目的地檔案中相應檔案分割區的檔案結尾。 雖然在新增資料行之前存在的資料列不會顯示新資料行,但新增或更新的資料列將顯示新增的資料行。

當我刪除資料行時,會發生什麼事?

當您從來源中的表格刪除資料行時,該資料行不會從目的地中刪除。 相反地,這些資料列不會再更新,並且在保留先前資料列的同時被標記為 Null。

若變更資料行的資料類型會發生什麼事?

變更資料行的資料類型是中斷性變更,您將需要取消連接並重新連接。

當我刪除資料列時,會發生什麼事?

根據所選資料的寫入選項,刪除資料列的處理方式也有所不同:

  • CSV 格式的就地更新:這是預設模式。 當您在此模式下刪除表格資料列時,該資料列也會從 Azure Data Lake 的相應資料分割區中刪除。 換句話說,資料很難從目的地刪除。
  • 透過 CSV 格式和增量資料夾更新僅附加:在此模式下,刪除 Dataverse 表格資料列時,不會從目的地刪除資料列。 而是會在 Azure Data Lake 相應資料分割區的檔案中新增一個資料列,並將其設為 isDeleted=True
  • 匯出到增量湖格式:Azure Synapse Link 會在下一個增量同步週期中,對資料執行軟刪除,然後在 30 天後執行硬刪除。

為何在匯出的檔案中看不到行標題?

Azure Synapse Link 依照 Common Data Model 來讓資料和其意義可在多個應用程式和商務程序 (例如,Microsoft Power Apps、Power BI、Dynamics 365 和 Azure) 之間共用。 在每個 CDM 資料夾中,中繼資料 (如行標題) 會儲存在 model.json 檔案中。 詳細資訊:Common Data Model 和 Azure Data Lake Storage Gen2 | Microsoft Learn

為什麼 Model.json 檔案會隨資料類型而增加或變更長度,而不保持 Dataverse 中定義的內容?

Model. json 不因資料行大小改變而變更資料庫長度。 Dataverse 對每個資料行都有資料庫長度的設想。 如果您建立大小為 200 的資料行,後來又將其縮減為 100,則 Dataverse 仍然允許現有資料存在於 Dataverse 中。 它透過保持 DBLength 為 200 和 MaxLength 為100 來做到這一點。 您在 Model.json 中看到的是 DBLength ,且如果您將其用於下游流程,您將永遠不會為您的 Dataverse 行佈建較少的空間。

注意

備註欄位定義為 varchar(max),其預設最大長度為 9999。

已匯出 Dataverse 資料表中可以使用哪些日期和時間格式?

已匯出 Dataverse 資料表中可以使用三種日期和時間格式。

資料行名稱 格式 資料類型 範例
SinkCreatedOnSinkModifiedOn M/d/yyyy H:mm:ss tt datetime 2021/6/28 下午 4:34:35
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
所有其他資料行 yyyy-MM-dd'T'HH:mm:ss'Z' datetime 2021-06-25T16:21:12Z

注意

CreatedOn 資料類型在 2022 年 7 月 29 日從 datetime 變更為 datetimeOffset。 若要在變更前,編輯先前建立之表格的資料類型格式,請刪除並重新新增該表。

您可以在 Dataverse 中選擇「日期和時間」資料行的其他資料行行為,這會更新資料類型格式。 其他資訊: 日期及時間資料行的行為與格式

為什麼我看到某些 Dataverse 表格的 1.csv 或 1_001.csv 檔名,而不是正常的日期時間分割檔名?

當您選擇僅附加匯出模式且表格不具備有效的 CreatedOn 行時,預期會出現此行為。 Blob 被組織成檔案,例如 1.csv、2.csv (由於缺少有效的建立日期而採用自訂資料分割)。 當任何資料分割接近 MaxBlockPerBlobLimit 的 95% 時,系統會自動生成一個新檔案—在此處表示為 1_001.csv。

何時該使用每年或每月分割策略?

對於一年內有大量資料的 Dataverse 資料表,建議使用每月分割。 如此可以減小檔案大小並提高效能。 此外,如果 Dataverse 資料表中的資料列經常更新,則拆分為多個較小的文件有助於在就地更新方案的情況下提高效能。 Delta Lake 僅提供年度分割區,因為它與 CSV 格式相比,具有卓越的效能。

什麼是「僅附加」模式,而「僅附加」與「就地更新」模式之間有何區別?

在僅附加模式下,Dataverse 資料表的增量資料會附加至資料湖中對應的檔案分割區。 其他資訊:Azure Synapse Link 中的進階設定選項

何時使用僅附加模式來檢視變更歷程記錄?

建議使用「僅附加模式」,將 Dataverse 資料表資料寫入資料湖,特別是當分割中的資料量很大且資料頻繁變更時。 同樣,這是企業客戶常用的且強烈推薦的選項。 此外,在想漸進式查看 Dataverse 變更,和處理 ETL、AI 和 ML 變更的情況下,您可以選擇使用此模式。 僅附加模式提供變更歷程記錄,而不是最新變更或就地更新,並啟用 AI 案例的多個時間序列,例如根據歷史值所做的預測或預測分析。

在僅附加模式下匯出資料時,如何擷取每個記錄最新的資料列,並排除已刪除的資料列?

在僅附加模式下,您應該使用 VersionNumberSinkModifiedOn,用相同識別碼找出最新版本的記錄,然後在最新版本上套用 isDeleted=0

使用僅限附加模式匯出資料時,為什麼會看到重複的版本號碼?

對於僅附加模式,如果 Azure Synapse Link for Dataverse 由於網路延遲等任何原因,未從 Azure 資料湖取得資料已提交的確認, Azure Synapse Link 將在這些情境下重試並再次提交資料。 下游消耗應透過使用 SinkModifiedOn篩選資料來對此案例有復原性。

為什麼我看到 Sinkmodifiedon 和 Modifiedon 行間存在差異?

這是預期內行為。 Modifiedon 是紀錄在 Dataverse 中被變更的日期時間;Sinkmodifiedon 是記錄在資料湖中被修改的日期和時間。

哪些 Dataverse 表格不支援匯出?

除了下列系統表格外,將不支援已啟用變更追蹤的任何表格:

  • 附件
  • 行事曆
  • 行事曆規則

注意

您可以使用 Azure Synapse Link for Dataverse 新增稽核表進行匯出。 但是,稽核表的匯出僅支援增量湖概況

我正在使用匯出到增量湖功能,我可以停止 Apache Spark 工作或變更執行時間嗎?

當設定的時間間隔內發生資料更改時,將觸發 Delta Lake 轉換工作。 沒有停止或暫停 Apache Spark 集區的選項。 但是,您可以在連結建立後,在「管理表格s > 進階時間間隔」底下修改時間間隔>

只有當查詢欄位是位於同一個表格中時,才支援計算的資料行。 資料更新只會發生在觸發變更追蹤時:根表格上的查找值只有在根表格記錄變更時,才會變更。 為了更適切反映查找欄位的值,建議與原始表格相聯結以獲得最新值。

哪些 Dataverse 資料表預設會使用僅附加模式?

根據預設,所有未具有 createdOn 欄位的表格都會使用僅附加模式進行同步處理。 這包括關聯資料表以及 ActivityParty 資料表。

為什麼我會看到錯誤訊息 - 無法列出路徑上的目錄內容?

  • Dataverse 資料會連接的儲存體容器中。 您需要所連結儲存體帳戶中的「儲存體機器人資料餐與者」角色,才能透過 Synapse 工作區執行讀取和查詢作業。
  • 如果您選擇使用 Delta Lake 格式資料,則在增量湖轉換後會清理您的 CSV 檔案。 您需要透過 Synapse 工作區使用 non_partitioned 表格來查詢資料。

為何會看到錯誤訊息 - 因為檔案不完整或無法讀取 (僅 CSV 檔案),所以無法大量載入?

Dataverse 資料可以透過建立、更新和刪除交易持續變更。 當您從中讀取資料時,變更了基礎檔案,就會造成此錯誤。 因此,對於持續變更的表格,請您變更消耗管道,以使用快照集資料 (分區表格) 來消耗。 詳細資訊: 疑難排解無伺服器 SQL 集區

Azure Synapse Link for Dataverse 是專為分析目的而設計的。 我們建議客戶使用長期保留來完成封存目的。 其他資訊:Dataverse 長期資料保留概述