Share via


標準數據流的欄位對應考慮

將數據載入 Dataverse 數據表時,您會將資料流編輯體驗中的來源查詢數據行對應至目的地 Dataverse 資料表數據行。 除了數據對應之外,還有其他考慮和最佳做法需要考慮。 在本文中,我們將討論控制數據流重新整理行為的不同數據流設定,以及目的地數據表中的數據。

控制數據流是否建立或更新插入記錄每次重新整理

每次重新整理數據流時,它會從來源擷取記錄,並將其載入 Dataverse。 如果您執行資料流一次以上,視您設定資料流的方式而定,您可以:

  • 建立每個數據流重新整理的新記錄,即使這類記錄已存在於目的地數據表中也一樣。
  • 如果數據表中還沒有新記錄,請建立新的記錄,或如果現有記錄已存在於數據表中,請加以更新。 此行為稱為 upsert

使用索引鍵數據行會指示數據流將記錄向上插入目的地數據表,而未選取索引鍵表示數據流以在目的地數據表中建立新記錄。

索引鍵數據行是數據表中數據列的唯一且具決定性的數據行。 例如,在 Orders 數據表中,如果 Order ID 是索引鍵數據行,則不應該有兩個具有相同訂單標識符的數據列。 此外,一個訂單標識碼—假設標識符為 345 的訂單應該只代表數據表中的一個數據列。 若要從數據流選擇 Dataverse 中資料表的索引鍵數據行,您必須在對應數據表體驗中設定索引鍵欄位。

建立新數據表時選擇主要名稱和索引鍵欄位

下圖顯示如何在數據流中建立新數據表時,選擇要從來源填入的索引鍵數據行。

主鍵和替代索引鍵相同。

您在欄位對應中看到的主要名稱欄位是針對標籤欄位;此欄位不需要是唯一的。 用於檢查重複之數據表中的欄位是您在 [替代索引鍵] 欄位中設定的欄位。

在數據表中擁有主鍵可確保即使您在對應至主鍵的欄位中有重複的數據,重複的專案也不會載入數據表中。 此行為會保留數據表中數據的高品質。 根據數據表建置報表解決方案時,高質量數據至關重要。

主要名稱欄位

主要名稱欄位是 Dataverse 中使用的顯示欄位。 此欄位用於預設檢視,以顯示其他應用程式中資料表的內容。 此欄位不是主鍵欄位,因此不應視為此欄位。 此欄位可以有重複的值,因為它是顯示欄位。 不過,最佳做法是使用串連字段來對應至主要名稱字段,因此名稱是完整說明的。

替代索引鍵欄位是做為主鍵使用的專案。

載入至現有數據表時選擇索引鍵欄位

將數據流查詢對應至現有的 Dataverse 數據表時,您可以選擇將數據載入目的地數據表時,是否應該使用哪一個索引鍵。

下圖顯示如何將記錄向上插入現有 Dataverse 資料表時,選擇要使用的索引鍵數據行:

選取索引鍵以將數據向上插入Dataverse資料表。

設定數據表的唯一標識符數據行,並將其作為將記錄向上插入現有 Dataverse 數據表的索引鍵欄位

所有 Microsoft Dataverse 數據表數據列都有定義為 GUID 的唯一識別碼。 這些 GUID 是每個數據表的主鍵。 根據預設,數據表的主鍵無法由數據流設定,而且會在建立記錄時由 Dataverse 自動產生。 有進階使用案例,例如,利用數據表的主鍵是可取的,例如,將數據與外部來源整合,同時在外部數據表和 Dataverse 數據表中保留相同的主鍵值。

注意

  • 只有在將數據載入現有的數據表時,才能使用這項功能。
  • 唯一標識符欄位只接受包含 GUID 值的字串,任何其他資料類型或值都會導致記錄建立失敗。

若要利用數據表的唯一標識符字段,請在撰寫數據流時,選取 [對應數據表] 頁面中的 [載入現有的數據表]。 在後續影像中顯示的範例中,它會將數據 載入 CustomerTransactions 數據表,並使用 數據源中的 TransactionID 數據行作為數據表的唯一標識符。

請注意,在 [ 選取索引鍵 ] 下拉式清單中,可以選取數據表的唯一標識碼—一律命名為 “tablename + id”。 由於數據表名稱為 「CustomerTransactions」,因此唯一標識符字段的名稱為 「CustomerTransactionId」。。

選取將數據向上插入 Dataverse 資料表的主鍵。

選取之後,數據行對應區段會更新為包含唯一標識符做為目的地數據行。 然後,您可以對應源數據行,代表每個記錄的唯一標識符。

將數據對應至 [唯一標識符] 數據行。

關鍵領域的好候選項目是什麼

索引鍵欄位是代表數據表中唯一數據列的唯一值。 請務必擁有此欄位,因為它可協助您避免數據表中有重複的記錄。 此欄位可以來自三個來源:

  • 來源系統中的主鍵(例如先前範例中的 OrderID)。 透過數據流中的Power Query 轉換所建立的串連字段。

    合併數據列以建立串連的唯一數據行。

  • 要選取於 [替代索引鍵] 選項中的欄位組合。 做為索引鍵欄位的欄位組合也稱為 複合索引鍵

    透過欄位對應建立複合索引鍵。

拿掉已不存在的數據列

如果您想要讓數據表中的數據一律與來源系統的數據同步處理,請選擇 [刪除查詢輸出中不再存在的數據列] 選項。 不過,此選項會讓數據流變慢,因為需要根據主鍵進行數據列比較(數據流欄位對應中的替代索引鍵),才能執行此動作。

此選項表示,如果數據表中的數據列不存在於下一個數據流重新整理的查詢輸出中,該數據列就會從數據表中移除。

刪除已不存在的數據列。

注意

標準 V2 資料流依賴 createdonmodifiedon 欄位,以便從目的地資料表移除資料流輸出中不存在的數據列。 如果目的地數據表中沒有這些數據行,則不會刪除記錄。

已知的限制

  • 目前不支持對應至 多型查閱 欄位。
  • 目前不支持對應至多層級查閱欄位,此查閱指向另一個數據表的查閱欄位。
  • 目前不支援 [狀態] 和 [狀態原因] 字段對應。
  • 不支援將數據對應到包含換行符的多行文字,而且會移除換行符。 相反地,您可以使用換行符標記 <br> 來載入及保留多行文字。
  • 只有在特定情況下,才支援以多重選取選項設定的 [選擇] 字段對應。 數據流只會將數據載入 已啟用多個選取選項的 [選擇 ] 字段,並使用標籤的逗號分隔值清單(整數)。 例如,如果標籤為 「Choice1, Choice2, Choice3」,且對應的整數值為 「1, 2, 3」,則數據行值應該是 「1,3」 以選取第一個和最後一個選項。
  • 標準 V2 資料流依賴 createdonmodifiedon 欄位,以便從目的地資料表移除資料流輸出中不存在的數據列。 如果目的地數據表中沒有這些數據行,則不會刪除記錄。
  • 對應至 IsValidForCreate 屬性設定為 false 的欄位不受支援(例如聯繫人實體的 [帳戶] 字段)。