Datastream 支援從 Microsoft Dataverse 執行個體複製異動事件。Dataverse 是雲端資料平台,可讓您安全地儲存及管理商務應用程式使用的資料。
本頁面提供以下資訊:
- 從 Dataverse 複製資料時,您需要瞭解的重要用語。
- Datastream 處理從來源 Dataverse 環境擷取資料的行為。
- Datastream 支援的 Dataverse 版本。
- 使用 Dataverse 做為來源時的已知限制。
重要詞彙
Dataverse 的運作方式如下:
- 資料表 (舊稱「實體」) 類似於關聯式資料庫中的資料表。Dataverse 預設包含標準表格,但您也可以建立自訂表格。
- 資料欄 (舊稱「欄位」) 是資料表的屬性,類似於關聯式資料庫中的資料欄。
- 資料列是資料表中的特定記錄,類似於關聯式資料庫中的資料列。
行為
Datastream 中的 Dataverse 來源支援功能依賴 Dataverse Web API,後者使用開放資料通訊協定 (OData)。Datastream 會根據您設定的時間間隔,輪詢來源的變更。
從 Dataverse 來源複製資料時,會出現下列情況:
- API 互動:Datastream 會使用 RESTful 要求與 Dataverse Web API 互動。基礎環境網址為
https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/。 使用標準標頭 (Accept: application/json、OData-MaxVersion: 4.0、OData-Version: 4.0)。 - 驗證:Datastream 會使用 OAuth 2.0 搭配用戶端憑證授權類型處理驗證。Datastream 會從 Microsoft Identity Platform 取得權杖。
結構定義探索:Dataverse 結構定義是動態的。Datastream 會查詢
/EntityDefinitions端點,找出物件名稱和結構定義。- 物件名稱:資料串流會將
GET請求傳送至/EntityDefinitions實體集路徑,並使用$filter=TableType ne 'Virtual' and IsPrivate eq false篩選器和$select=EntitySetName參數,擷取物件名稱。 - 物件結構定義:資料串流會將
GET要求傳送至/EntityDefinitions實體集路徑,並使用$expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName)參數和$filter=EntitySetName eq '[objectName]'篩選器,為每個實體擷取物件結構定義。
- 物件名稱:資料串流會將
資料複製:
- Datastream 會複製標準和自訂的 Dataverse 資料表。不包括虛擬和私人資料表。
- 歷來資料補充作業:如果為串流設定這項作業,Datastream 會複製所含資料表的所有歷來資料。方法是將初始
GET要求傳送至實體集,並使用 API 回應中提供的@odata.nextLink屬性,逐一查看所有頁面。使用Prefer: odata.maxpagesize=5000標頭。 - 增量同步:Datastream 會複製插入和更新事件。這項作業是透過時間戳記同步功能完成,並篩選
modifiedon欄位大於上次同步時間 ($filter=modifiedon gt [last_sync_timestamp]) 的記錄。資料串流不會擷取刪除事件。
輪詢間隔:Datastream 會根據您建立串流時設定的輪詢間隔,輪詢變更。資料更新間隔會反映在串流的資料更新間隔指標中。
所有複製的物件都支援使用 modifiedon 欄位進行增量同步,以及完整回填。
版本
Datastream 使用 Dataverse Web API v9.1 版。
已知限制
使用 Dataverse 做為來源時,已知限制包括:
- 以
modifiedon時間戳記為準的增量同步方法不會擷取刪除事件。 - Datastream 不支援使用差異連結 (
@odata.deltaLink) 的 Dataverse 建議變更追蹤功能,因為系統不支援儲存後續增量提取所需的差異連結網址。 - 複製功能僅適用於標準和自訂表格。不支援虛擬和私有資料表。
- 請務必正確更新來源資料表中的
modifiedon欄位,確保累加同步處理功能正常運作。 - 如要擷取
Picklist欄位的標籤,資料要求必須包含Prefer: data.include-annotations="*"標頭,而不只是整數值。
後續步驟
- 瞭解如何設定 Dataverse 來源,以便搭配 Datastream 使用。