Azure Synapse Link 中的進階組態選項

Azure Synapse Link 提供多種方法來撰寫和讀取資料,以符合不同的分析案例。

注意

Azure Synapse Link for Dataverse 先前被稱為匯出至 Data Lake。 服務的重新命名已在 2021 年 5 月生效,並將繼續匯出資料至 Azure Data Lake 以及 Azure Synapse Analytics。

此文章涵蓋:

  1. 就地更新與限附加寫入。
  2. 使用者指定的資料分割。

就地更新與限附加寫入

在根據 createdOn 值 (即建立記錄的日期和時間) 將 Dataverse 資料表資料寫入 Azure 資料湖時,有兩種不同的設定可選擇。 分別是就地更新僅附加

預設設定 (適用於可使用 createdOn 的資料表) 是對目的地中的增量資料進行就地更新或更新插入 (更新或插入)。 如果變更是新的,且在資料湖中不存在相應的資料列,則在建立的情況下,掃描目標文件,並將變更插入資料湖中的相應檔案分割區。 如果是更新的變更,且資料湖中具有資料列,則使用增量資料更新資料湖中的相應文件,而不是插入。 換句話說,Dataverse 資料表中所有 CUD (建立、更新、刪除) 變更的預設設定 (可使用 createdOn),是在 Azure 資料湖中的目的地進行就地更新。

您可以使用名為僅附加的選擇性設定來切換就地更新的預設行為。 而不是就地更新,而是在僅附加模式下,Dataverse 資料表的增量資料將附加到資料湖中相應的檔案分割區。 這是每個資料表設定,在進階 > 顯示進階組態設定下可以作為核取方塊使用。 對於已啟用僅附加的 Dataverse 資料表,所有 CUD 變更都將逐步附加到資料湖相應的目的地檔案中。 選擇此選項時,分割區策略預設為年份,且當資料寫入資料湖時,會依年度進行分割區。 僅附加也是沒有 createdOn 值的 Dataverse 資料表的預設設定。

下表說明了如何針對各資料寫入選項的 CUD 事件,在資料湖中處理資料列。

活動 就地更新 僅附加
建立​​ 該資料列會插入分割檔案中,並以該資料列行上的 createdOn 值為基礎。 該資料列會新增到分割檔案的結尾,並以記錄的 createdOn 值為基礎。
更新 如果該資料列存在於分割區檔案中,則其會由更新的資料取代或更新。 如果不存在,則將其插入檔案中。 該資料列以及更新的版本將新增到分割檔案的結尾。
Delete 如果該資料列存在於分割檔案中,則將其從檔案中移除。 該資料列以 IsDelete column = True 新增分割檔案的結尾。

注意

對於已啟用僅附加的 Dataverse 資料表,刪除來源中的資料列將不會刪除或移除資料湖中的資料列。 相反地,已刪除的資料列會做為新資料列附加到資料湖中,並將 isDeleted 資料行設為 True

「僅附加」模式會啟用無伺服器的髒讀 (ALLOW_INCONSISTENT_READS)。 ALLOW_INCONSISTENT_READS 表示使用者可以讀取可在 SELECT 查詢執行時不斷修改的檔案。 結果將會一致,並相當於讀取檔案的快照集。 (這不等同於資料庫快照集隔離,因為快照集產生時間並不相同)。

並非所有的 CUD 變更都會在僅附加模式下擷取:Synapse Link 會在將資料發佈至資料湖之前,依群組或「批次」處理資料中的變更。 因此,如果使用者在較短時間間隔內進行變更,則並非所有的 CUD 變更都會擷取到資料湖中。

以下是有關何時使用任一選項的更多詳細資料。

  • 就地更新:此選項是預設設定,只有在您想要直接連到資料湖中的資料,並需要目前的狀態 (不是歷史或增量變更) 時,才建議使用此選項。 該檔案包含完整資料集,可透過 Power BI 或複製 ETL (擷取、傳輸、載入) 管線的整個資料集來使用。
  • 僅附加:如果您不想直接連線到資料湖中的資料,而是想使用 ETL 管線將資料逐步複製到另一個目標,請選擇此選項。 此選項提供啟用 AI 和 ML 案例的變更歷程記錄。

您可以在 Azure Synapse Link for Dataverse 中的進階下切換顯示進階組態設定,以自訂資料分割策略,並選取要寫入 Azure 資料湖的選項。

顯示進階組態。

資料分割

當您使用 Azure Synapse Link 將 Dataverse 資料表資料寫入至 Azure Data Lake Storage 時,會根據來源中每一列的 createdOn 值來分割 (而不是單一檔案)。 預設分割策略依月份分割,資料依每個月在 Azure 資料湖中分割。

您可以根據 Dataverse 資料表磁碟區和資料分佈,選擇依年份分割資料。 使用此選項將 Dataverse 資料表資料寫入 Azure 資料湖時,將根據來源中每一資料列的 createdOn 值每年對其進行分割。 對於沒有 createdOn 資料行的資料表,會以每 5,000,000 筆記錄建立一個新檔案的方式對資料列進行分割。 這是每個資料表設定,在進階 > 顯示進階組態設定下可以作為核取方塊使用。

更多詳細資料以及如何使用年度或每月分割區策略在資料湖中處理資料的範例:

分割策略。

請參閱

Azure Synapse Link for Dataverse

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。