排查引入错误或数据损坏问题
注意
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 - Data 中的默认 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
可以在表级别或属性级别指定格式。 在表级别,在 *.manifest.cdm.json 的表中使用 "exhibitsTraits"
来定义 datetime
格式。 在属性级别,在 tablename.cdm.json 中的 属性中使用"appliedTraits"
。
表级别的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 引入错误或损坏数据
日期时间值分析不正确或发生分析失败
当日期字段未设置为正确的日期格式时,会发生最常见的数据类型不匹配。 这种不匹配可能是由格式不正确的源数据或不正确的 区域设置引起的。
错误区域设置问题的症状:
当源数据无法按使用的区域设置进行分析时,将发生引入失败。 例如,如果使用“MM/DD/YYYY”分析“29/08/2023”,则引入失败,因为它无法分析第 29 个月。
使用不正确的区域设置成功分析源数据时,datetime 值不正确。 例如,源数据的格式设置为“MM/DD/YYYY”,而用于在引入期间分析数据的默认区域设置使用“DD/MM/YYYY”。因此,“2023 年 12 月 8 日”被引入为“2023 年 8 月 12 日”。
解决方案
若要修复不正确的格式,请更新源数据并重新引入。
若要修复不正确的区域设置,请将所有日期/时间字段的类型更改为使用 Power Query 转换中的 “更改类型>”使用区域设置的正确区域 设置。 例如:
有关详细信息,请参阅 文档或项目区域设置。