排查引入错误或数据损坏问题

注意

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 引入错误或损坏数据

在数据引入期间,记录可能被视为损坏的一些最常见原因包括:

架构或数据类型不匹配

如果数据不符合架构,则引入过程完成并出现错误。

若要解决此问题,请更正源数据或架构并重新引入数据。

缺少分区文件

  • 如果引入过程成功且没有任何损坏的记录,但看不到任何数据,请编辑 model.jsonmanifest.json 文件以确保指定分区。 然后, 刷新数据源

  • 如果在自动计划刷新期间刷新数据源的同时进行数据引入,则分区文件可能为空或对系统进程不可用。 若要与上游刷新计划保持一致,请更改 数据源的系统刷新计划 或刷新计划。 对齐计时,以便刷新不会同时发生。

日期/时间字段的格式不正确

datetime表中的字段不采用 ISO 8601 或en-US格式。 Dynamics 365 Customer Insights - Data 中的默认 datetime 格式为 en-USdatetime表中的所有字段应采用相同的格式。 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 转换中的 “更改类型>”使用区域设置的正确区域 设置。 例如:

    显示如何在 Power Query 中使用区域设置更改数据类型的屏幕截图。

    有关详细信息,请参阅 文档或项目区域设置

更多信息