針對擷取錯誤或損毀的數據進行疑難解答
注意
我們已於 2023 年 9 月 1 日合併並重新命名 Dynamics 365 Marketing 和 Dynamics 365 Customer Insights。 Dynamics 365 Marketing 現在稱為 Dynamics 365 Customer Insights - Journeys。 Dynamics 365 Customer Insights 現在稱為 Dynamics 365 Customer Insights - Data。 如需詳細資訊,請參閱 Dynamics 365 Customer Insights 常見問題。
本文介紹在 Microsoft Dynamics 365 Customer Insights - Data 中使用 Azure Data Lake Storage 或 Power Query 時,數據擷取錯誤或損毀數據的常見原因。
使用 Azure Data Lake Storage 擷取錯誤或損毀數據
在資料擷取期間,記錄可能會被視為已損毀的一些最常見原因包括:
- 源檔案與架構之間的數據類型和域值不相符。
- 原始程式檔中的數據行數目不符合架構。
- 與預期的結構描述相比,欄位包含會造成資料行偏斜的字元。 例如,格式不正確的引號、未逸出的引號、換行符或製表元。
- 分割區檔案遺失。
datetime
、date
或datetimeoffset
欄位不符合標準格式。
結構描述或資料類型不相符
如果資料不符合結構描述,擷取過程會完成但帶有錯誤。
若要解決此問題,請更正源數據或架構,然後重新內嵌數據。
遺失分區檔案
如果擷取程式成功且沒有任何損毀的記錄,但您無法看到任何數據,請編輯 您的model.json 或 manifest.json 檔案,以確定已指定分割區。 然後,重新整理資料來源。
如果在自動排程重新整理期間重新整理數據源時發生數據擷取,分割區檔案可能是空的,或無法供系統進程使用。 若要讓上游重新整理排程,請變更系統重新整理排程或資料來源的重新整理排程。 調整計時,讓重新整理不會同時發生。
日期時間欄位的格式錯誤
datetime
數據表中的欄位不是 ISO 8601 或en-US
格式。 Dynamics 365 Customer Insights - 數據中的預設 datetime
格式為 en-US
。 datetime
數據表中的所有欄位都應該使用相同的格式。 Customer Insights 支援在模型或manifest.json的來源或數據表層級建立其他格式的批注或特性。 例如:
Model.json
"annotations": [
{
"name": "ci:CustomTimestampFormat",
"value": "yyyy-MM-dd'T'HH:mm:ss:SSS"
},
{
"name": "ci:CustomDateFormat",
"value": "yyyy-MM-dd"
}
]
在manifest.json檔案中,datetime
可以在數據表層級或屬性層級指定格式。 在數據表層級,使用 "exhibitsTraits"
*.manifest.cdm.json 中的數據表來定義 datetime
格式。 在屬性層級,在 "appliedTraits"
屬性中使用 tablename.cdm.json。
資料表層級的 Manifest.json
"exhibitsTraits": [
{
"traitReference": "is.formatted.dateTime",
"arguments": [
{
"name": "format",
"value": "yyyy-MM-dd'T'HH:mm:ss"
}
]
},
{
"traitReference": "is.formatted.date",
"arguments": [
{
"name": "format",
"value": "yyyy-MM-dd"
}
]
}
]
屬性層級的 table.json
{
"name": "PurchasedOn",
"appliedTraits": [
{
"traitReference": "is.formatted.date",
"arguments" : [
{
"name": "format",
"value": "yyyy-MM-dd"
}
]
},
{
"traitReference": "is.formatted.dateTime",
"arguments" : [
{
"name": "format",
"value": "yyyy-MM-ddTHH:mm:ss"
}
]
}
],
"attributeContext": "POSPurchases/attributeContext/POSPurchases/PurchasedOn",
"dataFormat": "DateTime"
}
使用 Power Query 擷取錯誤或損毀數據
日期時間值剖析不正確或發生剖析失敗
最常見的資料類型不符發生在日期欄位未設定為正確的日期格式時。 這種不相符的原因可能是格式不正確的源數據或不正確的 地區設定所造成。
不正確地區設定問題的徵兆:
當使用的地區設定無法剖析源數據時,就會發生擷取失敗。 例如,如果 「29/08/2023」 剖析為 「MM/DD/YYYY」,則擷取會失敗,因為它無法剖析 29 個月。
使用不正確的地區設定成功剖析源數據時,日期時間值不正確。 例如,源數據會格式化為 「MM/DD/YYYY」,而在擷取期間用來剖析數據的預設地區設定會使用 「DD/MM/YYYY」。。因此,“2023 年 12 月 8 日” 被擷取為 “2023 年 8 月 12 日”。
解決方法
若要修正不正確的格式,請更新源數據並重新內嵌。
若要修正不正確的地區設定,請變更所有日期時間欄位的類型,以在 Power Query 轉換中使用變更類型>使用地區設定的正確地區設定。 例如:
如需詳細資訊,請參閱 檔或專案地區設定。