排查引入错误或损坏数据

注意

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 客户透视 - Data 中使用 Azure Data Lake Storage 或 Power Query 时数据引入错误或损坏数据的常见原因。

使用 Azure Data Lake Storage 引入错误或损坏数据

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

架构或数据类型不匹配

如果数据不符合架构,引入过程会完成,但会显示错误。

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

缺少分区文件

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

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

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

datetime表中的字段不采用 ISO 8601 或en-US格式。 Dynamics 365 客户透视 中的默认datetime格式 - 数据为 en-USdatetime表中的所有字段应采用相同的格式。 客户透视支持在模型或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格式。 在属性级别,在"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 转换中使用更改类型>使用区域设置的正确区域设置。 例如:

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

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

详细信息