排查 Azure 数据工厂中的映射数据流问题 (ADF)

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文探讨了排查 Azure 数据工厂中的映射数据流问题的常见方法。

一般故障排除指南

  1. 检查数据集连接状态。 在每个源转换和接收器转换中,转到要使用的每个数据集的链接服务,然后测试连接。
  2. 在数据流设计器中,检查文件和表连接的状态。 在调试模式下,在源转换中选择“数据预览”,以确保能够访问数据。
  3. 如果数据预览中一切正常,请转到管道设计器,并将数据流置于管道活动中。 调试管道,以进行端到端测试。

内部服务器错误

可能导致内部服务器错误的特定情况如下所示。

情况 1:未选择适当的计算大小/类型和其他因素

数据流的成功执行取决于许多因素,包括计算大小/类型、要处理的源/接收器的数量、分区规范、所涉及的转换、数据集的大小、数据倾斜度等。

有关详细信息,请参阅集成运行时性能

情况 2:结合使用调试会话与并行活动

使用数据流调试会话通过管道中的 ForEach 之类的构造触发运行时,可以将多个并行运行提交给同一群集。 由于内存不足等资源问题,在运行时,这种情况可能会导致出现群集故障问题。

若要在发布更改后,使用在管道活动中定义的适当集成运行时配置提交运行,请选择立即触发调试>使用活动运行时

情况 3:暂时性问题

执行中涉及的微服务的暂时性问题可能导致运行失败。

在管道活动中配置重试可解决暂时性问题引起的问题。 有关详细信息,请参阅活动策略

常见错误代码和消息

本部分列出了 Azure 数据工厂中映射数据流报告的常见错误代码和消息以及相关的原因和建议。

错误代码:DF-AdobeIntegration-InvalidMapToFilter

  • 消息:自定义资源只能有一个映射到筛选器的键/ID。
  • 原因:提供的配置无效。
  • 建议:在 AdobeIntegration 设置中,确保自定义资源只能有一个映射到筛选器的键/ID。

错误代码:DF-AdobeIntegration-InvalidPartitionConfiguration

  • 消息:仅支持单分区。 分区架构可以是 RoundRobin 或 Hash。
  • 原因:提供的分区配置无效。
  • 建议:在 AdobeIntegration 设置中,确认仅设置了单个分区,分区架构可以是 RoundRobin 或 Hash。

错误代码:DF-AdobeIntegration-InvalidPartitionType

  • 消息:分区类型必须为 roundRobin。
  • 原因:提供的分区类型无效。
  • 建议:请更新 AdobeIntegration 设置,使分区类型为 RoundRobin。

错误代码:DF-AdobeIntegration-InvalidPrivacyRegulation

  • 消息:目前支持的隐私法规只有“GDPR”。
  • 原因:提供的隐私配置无效。
  • 建议:在仅支持隐私“GDPR”时,请更新 AdobeIntegration 设置。

错误代码:DF-AdobeIntegration-KeyColumnMissed

  • 消息:对于不可插入的操作,必须指定键。
  • 原因:缺少键列。
  • 建议:更新 AdobeIntegration 设置以确保为不可插入操作指定键列。

错误代码:DF-AzureDataExplorer-InvalidOperation

  • 消息:早期的存储帐户不支持 Blob 操作。 创建新的存储帐户可能会解决此问题。
  • 原因:该操作不受支持。
  • 建议:更改“更新方法”配置,因为 Azure 数据资源管理器不支持删除、更新和更新插入。

错误代码:DF-AzureDataExplorer-ReadTimeout

  • 消息:在读取数据时,操作超时。
  • 原因:在读取数据时,操作超时。
  • 建议:在源转换设置中提高“超时”选项中的值。

错误代码:DF-AzureDataExplorer-WriteTimeout

  • 消息:在写入数据时,操作超时。
  • 原因:在写入数据时,操作超时。
  • 建议:在接收器转换设置中提高“超时”选项中的值。

错误代码:DF-Blob-FunctionNotSupport

  • 消息:此终结点不支持 BlobStorageEvents、SoftDelete 或 AutomaticSnapshot。 若要使用此终结点,请禁用这些帐户功能。
  • 原因:如果 Azure Blob 存储链接服务是使用服务主体或托管标识身份验证创建的,则数据流中不支持 Azure Blob 存储事件、软删除或自动快照
  • 建议:在 Azure Blob 帐户中禁用 Azure Blob 存储事件、软删除或自动快照功能,或者使用密钥身份验证创建链接服务

错误代码:DF-Blob-InvalidAccountConfiguration

  • 消息:应指定帐户密钥或 SAS 令牌中的任一个。
  • 原因:Azure Blob 链接服务中提供的凭据无效。
  • 建议:使用 Azure Blob 链接服务的帐户密钥或 SAS 令牌。

错误代码:DF-Blob-InvalidAuthConfiguration

  • 消息:只能指定两种身份验证方法(密钥、SAS)之一。
  • 原因:链接服务中提供的身份验证方法无效。
  • 建议:使用 Azure Blob 链接服务的密钥或 SAS 身份验证。

错误代码:DF-Blob-InvalidCloudType

  • 消息:云类型无效。
  • 原因:提供的云类型无效。
  • 建议:请检查相关 Azure Blob 链接服务中的云类型。

错误代码:DF-Cosmos-DeleteDataFailed

  • 消息:重试 3 次后,未能从 Azure Cosmos DB 中删除数据。
  • 原因:Azure Cosmos DB 集合的吞吐量较小,导致发生限制,或者 Azure Cosmos DB 中不存在行数据。
  • 建议:若要解决此问题,请执行以下操作:
    • 如果错误为 404,请确保 Azure Cosmos DB 集合中存在相关的行数据。
    • 如果错误是“受到限制”,请增加 Azure Cosmos DB 集合吞吐量或将其设置为“自动缩放”。
    • 如果错误是“请求超时”,请将 Azure Cosmos DB 接收器中的“批大小”设置为更小的值,例如 1000。

错误代码:DF-Cosmos-FailToResetThroughput

  • 消息:由于正在进行另一个缩放操作,因此无法执行 Azure Cosmos DB 吞吐量缩放操作,请稍后重试
  • 原因:由于正在进行另一个缩放操作,因此无法执行 Azure Cosmos DB 的吞吐量缩放操作。
  • 建议:登录到 Azure Cosmos DB 帐户,手动将容器吞吐量更改为自动缩放或在映射数据流后添加自定义活动以重置吞吐量。

错误代码:DF-Cosmos-IdPropertyMissed

  • 消息:对于更新和删除操作,应映射“id”属性。
  • 原因:更新和删除操作缺少 id 属性。
  • 建议:确保 Cosmos DB 接收器转换设置中的输入数据具有 id 列。 如果没有,请使用 select 列转换或派生列转换在接收器转换之前生成此列。

错误代码:DF-Cosmos-InvalidAccountConfiguration

  • 消息:应指定 accountName 或 accountEndpoint。
  • 原因:提供的帐户信息无效。
  • 建议:在 Azure Cosmos DB 链接服务中,指定帐户名或帐户终结点。

错误代码:DF-Cosmos-InvalidAccountKey

  • 消息:输入授权令牌无法为请求提供服务。 请检查是否根据协议生成了预期的有效负载,并检查所使用的密钥。
  • 原因:权限不足,无法读取/写入 Azure Cosmos DB 数据。
  • 建议:请使用读写密钥来访问 Azure Cosmos DB

错误代码:DF-Cosmos-InvalidConnectionMode

  • 消息:连接模式无效。
  • 原因:提供的连接模式无效。
  • 建议:确认 Azure Cosmos DB 设置中支持的模式为“网关”和“DirectHttps”。

错误代码:DF-Cosmos-InvalidPartitionKey

  • 消息:对于更新和删除操作,分区键路径不能为空。
  • 原因:对于更新和删除操作,分区键路径为空。
  • 建议:使用 Azure Cosmos DB 接收器设置中提供的分区键。
  • 消息:对于删除和更新操作,未在接收器中映射分区键。
  • 原因:提供的分区键无效。
  • 建议:在 Azure Cosmos DB 接收器设置中,使用与容器的分区键相同的适当分区键。

错误代码:DF-Cosmos-InvalidPartitionKeyContent

  • 消息:分区键应该以“/”开头。
  • 原因:提供的分区键无效。
  • 建议:确保 Azure Cosmos DB 接收器设置中的分区键以 / 开头,例如 /movieId

错误代码:DF-Cosmos-PartitionKeyMissed

  • 消息:应为更新和删除操作指定分区键路径。
  • 原因:Azure Cosmos DB 接收器中缺少分区键路径。
  • 建议:在 Azure Cosmos DB 接收器设置中提供分区键。

错误代码:DF-Cosmos-ShortTypeNotSupport

  • 消息:Azure Cosmos DB 不支持短数据类型。
  • 原因:Azure Cosmos DB 实例不支持短数据类型
  • 建议:添加派生列转换,以先将相关列从短数据类型转换为整数类型,然后再在 Azure Cosmos DB 接收器转换中使用这些列。

错误代码:DF-CSVWriter-InvalidQuoteSetting

  • 消息:写入数据时作业失败,并出现错误:如果列值包含列分隔符,则引号字符和转义符不能为空
  • 原因:当列值包含列分隔符时,引号字符和转义字符均为空。
  • 建议:设置引号字符或转义字符。

错误代码:DF-Delimited-ColumnDelimiterMissed

  • 消息:分析需要列分隔符。
  • 原因:缺少列分隔符。
  • 建议:在 CSV 设置中,确认具有分析所需的列分隔符。

错误代码:DF-Delimited-InvalidConfiguration

  • 消息:应指定空行或自定义标头中的任一个。
  • 原因:提供的分隔配置无效。
  • 建议:请更新 CSV 设置,以指定空行或自定义标头中的任一个。

错误代码:DF-DELTA-InvalidConfiguration

  • 消息:不能同时设置时间戳和版本。
  • 原因:不能同时设置时间戳和版本。
  • 建议:在增量设置中设置时间戳或版本。

错误代码:DF-Delta-InvalidProtocolVersion

错误代码:DF-DELTA-InvalidTableOperationSettings

  • 消息:无法同时指定重新创建和截断选项。
  • 原因:无法同时指定重新创建和截断选项。
  • 建议:更新增量设置,以执行重新创建或截断操作。

错误代码:DF-DELTA-KeyColumnMissed

  • 消息:应为不可插入操作指定键列。
  • 原因:不可插入的操作缺少键列。
  • 建议:若要执行不可插入的操作,请在增量接收器上指定键列。

错误代码:DF-Dynamics-InvalidNullAlternateKeyColumn

  • 消息:备用键的任何列值都不能为 NULL。
  • 原因:备用键列值不能为 null。
  • 建议:确认备用键的列值不为 NULL。

错误代码:DF-Dynamics-TooMuchAlternateKey

  • 原因:具有多个备用键引用的一个查找字段无效。
  • 建议:检查架构映射并确认每个查找字段都有一个备用键。

错误代码:DF-Excel-DifferentSchemaNotSupport

  • 消息:目前不支持读取具有不同架构的 Excel 文件。
  • 原因:目前不支持读取具有不同架构的 Excel 文件。
  • 建议:若要解决此问题,请应用以下选项之一:
    • 使用 ForEach + 数据流活动逐个读取 Excel 工作表。
    • 在读取数据之前,手动更新每个工作表架构,使其具有相同的列。

错误代码:DF-Excel-InvalidDataType

  • 消息:数据类型不受支持。
  • 原因:数据类型不受支持。
  • 建议:请将相关输入数据列的数据类型更改为“字符串”

错误代码:DF-Excel-InvalidFile

  • 消息:提供了无效的 Excel 文件,仅支持 .xlsx 和 .xls。
  • 原因:提供的 Excel 文件无效。
  • 建议:读取数据前,使用通配符筛选和获取 .xls.xlsx Excel 文件。

错误代码:DF-Excel-InvalidRange

错误代码:DF-Excel-InvalidWorksheetConfiguration

  • 消息:Excel 工作表名称和索引不能同时存在。
  • 原因:同时提供 Excel 工作表名称和索引。
  • 建议:若要读取 Excel 数据,请检查参数值并指定工作表名称或索引。

错误代码:DF-Excel-WorksheetConfigMissed

  • 消息:需要指定 Excel 工作表名称或索引。
  • 原因:提供的 Excel 工作表配置无效。
  • 建议:若要读取 Excel 数据,请检查参数值并指定工作表名称或索引。

错误代码:DF-Excel-WorksheetNotExist

  • 消息:Excel 工作表不存在。
  • 原因:提供的工作表名称或索引无效。
  • 建议:若要读取 Excel 数据,请检查参数值,并指定有效的工作表名称或索引。

错误代码:DF-Executor-AcquireStorageMemoryFailed

  • 消息:将展开内存传输到存储内存失败。 群集在执行过程中内存不足。 使用具有更多内核和/或内存优化计算类型的集成运行时重试。
  • 原因:群集内存不足。
  • 建议:使用具有更多内核和/或内存优化计算类型的集成运行时。

错误代码:DF-Executor-BlockCountExceedsLimitError

  • 消息:未提交的块数不能超过上限值(100,000 个块)。 检查 blob 配置。
  • 原因:Blob 中未提交的最大块数为 100,000。
  • 建议:有关此问题的更多详细信息,请与 Azure 产品团队联系。

错误代码:DF-Executor-BroadcastFailure

  • 消息:在广播交换期间数据流执行失败。 可能的原因包括源中的连接配置不当,或发生了广播联接超时错误。 为确保正确配置源,在数据流调试会话中测试连接或运行源数据预览。 若要避免广播联接超时,可以在 Join/Exists/Lookup 转换中选择“关闭”以关闭广播选项。 如果你想要使用广播选项来提高性能,请确保广播流可以在 60 秒(针对调试运行)或 300 秒(针对作业运行)内生成数据。 如果问题仍然存在,请与客户支持部门联系。

  • 原因

    1. 源连接/配置错误可能导致 join/exists/lookup 转换中发生广播失败。
    2. 广播在调试运行中的默认超时为 60 秒,在作业运行中的默认超时为 300 秒。 在广播联接中,为广播选择的流似乎太大,无法在此限制内生成数据。 如果不使用广播联接,则数据流执行的默认广播可以达到相同的限制。
  • 建议

    • 在源中执行数据预览,以确认是否正确配置了源。
    • 关闭广播选项,或避免广播其处理时间可能超过 60 秒的大型数据流。 相反,应选择更小的流进行广播。
    • 大型 SQL/数据仓库表和源文件通常是不适当的候选项。
    • 缺少广播联接时如果发生该错误,请使用较大的群集。
    • 如果问题仍然存在,请与客户支持部门联系。

错误代码:DF-Executor-BroadcastTimeout

  • 消息:广播联接超时错误。 请确保在调试运行中广播流在 60 秒内生成数据,在作业运行中广播流在 300 秒内生成数据。

  • 原因:在调试运行中,广播的默认超时为 60 秒,而在作业运行中为 300 秒。 为广播选择的流太大,无法在此限制内生成数据。

  • 建议:检查 join、exists 和 lookup 的数据流转换中的“优化”选项卡。 广播的默认选项为“自动”。如果已设置“自动”,或你要手动将左侧或右侧设置为“固定”下的广播,可以设置较大的 Azure Integration Runtime (IR) 配置,或关闭广播 。 为了在数据流中获得最佳性能,建议允许 Spark 使用“自动”进行广播,并使用内存优化的 Azure IR。

    如果要通过调试管道运行在调试测试执行中运行数据流,则可能会更频繁地遇到这种情况。 错误的发生频率更高是因为 Azure 数据工厂将广播超时限制为 60 秒,以维持更快的调试体验。 可将超时延长为触发的运行的 300 秒超时。 为此,可以使用“调试”>“使用活动运行时”选项来利用“执行数据流”管道活动中定义的 Azure IR。

  • 消息:广播联接超时错误。 可以在联接/存在/查找转换中选择广播选项的“关闭”,以避免此问题。 如果你想要广播联接选项来提高性能,请确保广播流可以在 60 秒(在调试运行中)或 300 秒(在作业运行中)内生成数据。

  • 原因:广播在调试运行中的默认超时为 60 秒,在作业运行中的默认超时为 300 秒。 在广播联接中,为广播选择的流太大,无法在此限制内生成数据。 如果不使用广播联接,则数据流完成的默认广播可以达到相同的限制。

  • 建议:关闭广播选项,或避免广播其处理时间可能超过 60 秒的大型数据流。 选择更小的流进行广播。 大型 Azure SQL 数据仓库表和源文件通常不是很好的选择。 缺少广播联接时如果发生此错误,请使用更大的群集。

错误代码:DF-Executor-ColumnNotFound

  • 消息:表达式中使用的列名不可用或无效。
  • 原因:表达式中使用的列名无效或不可用。
  • 建议:检查表达式中使用的列名。

错误代码:DF-Executor-Conversion

  • 消息:无法转换为日期或时间,因为字符无效
  • 原因:数据未采用预期的格式。
  • 建议:使用正确的数据类型。

错误代码:DF-Executor-DriverError

  • 消息:INT96 是旧式时间戳类型,ADF Dataflow 不支持此类型。 请考虑将列类型升级到最新类型。
  • 原因:驱动程序错误。
  • 建议:INT96 是旧式时间戳类型,不受 Azure 数据工厂数据流的支持。 请考虑将列类型升级到最新类型。

错误代码:DF-Executor-FieldNotExist

  • 消息:结构中的字段不存在。
  • 原因:表达式中使用的字段名称无效或不可用。
  • 建议:检查表达式中使用的字段名称。

错误代码:DF-Executor-illegalArgument

  • 消息:请确保链接服务中的访问密钥正确
  • 原因:帐户名称或访问密钥不正确。
  • 建议:请确保链接服务中指定的帐户名或访问密钥正确。

错误代码:DF-Executor-IncorrectLinkedServiceConfiguration

  • 消息:可能的原因包括:
    • 链接服务被错误地配置为类型“Azure Blob 存储”而不是“Azure DataLake Storage Gen2”,并且启用了“分层命名空间”。 为相关存储帐户创建新的“Azure DataLake Storage Gen2”类型的链接服务。
    • 在启用了“分层命名空间”的存储帐户上使用 Blob 链接服务时,“清除文件夹”、非默认“文件名选项”、“键”分区的任何组合的某些场景可能会失败。 如果你不想创建新的 Gen2 链接服务,可以禁用这些数据流设置(如果已启用),然后重试。
  • 原因:Azure Data Lake Storage Gen2 帐户上的删除操作失败,因为其链接服务被错误地配置为 Azure Blob 存储。
  • 建议:为存储帐户创建新的 Azure Data Lake Storage Gen2 链接服务。 如果这不可行,一些已知场景(如“清除文件夹”、非默认“文件名选项”、“键”分区的任何组合)可能会由于在启用了分层命名空间的存储帐户上使用 Azure Blob 存储链接服务而失败。 如果你启用了这些数据流设置,可以将其禁用并重试。

错误代码:DF-Executor-InternalServerError

  • 消息:由于内部服务器错误,无法执行数据流,请稍后重试。 如果问题持续出现,请联系 Microsoft 支持人员获取更多帮助。
  • 原因:由于系统错误,数据流执行失败。
  • 建议:若要解决此问题,请参阅内部服务器错误

错误代码:DF-Executor-InvalidColumn

  • 消息:需要在查询中指定列名称。如果使用的是 SQL 函数,请设置别名。
  • 原因:未指定列名。
  • 建议:如果使用 min() 或 max() 等 SQL 函数,请设置别名。

错误代码:DF-Executor-InvalidInputColumns

  • 消息:在源数据的架构中找不到源配置中的列。
  • 原因:源中提供的列无效。
  • 建议:检查源配置中的列并确保其为源数据架构的子集。

错误代码:DF-Executor-InvalidOutputColumns

  • 消息:结果包含 0 个输出列。 请确保至少映射一列。
  • 原因:未映射列。
  • 建议:请检查接收器架构,以确保至少映射一列。

错误代码:DF-Executor-InvalidPartitionFileNames

  • 消息:文件名选项按分区设置时,文件名不能有空值。
  • 原因:提供的分区文件名无效。
  • 建议:请检查接收器设置,以获得正确的文件名值。

错误代码:DF-Executor-InvalidPath

  • 消息:路径未解析为任何文件。 请确保文件/文件夹存在且未隐藏。
  • 原因:提供的文件/文件夹路径无效,无法找到或访问。
  • 建议:请检查文件/文件夹路径,确保其存在,且可以在存储中进行访问。

错误代码:DF-Executor-InvalidStageConfiguration

  • 消息:暂存中不支持使用用户分配的托管标识身份验证的存储。
  • 原因:由于暂存配置无效,发生异常。
  • 建议:暂存中不支持用户分配的托管标识身份验证。 使用不同的身份验证创建 Azure Data Lake Storage Gen2 或 Azure Blob 存储链接服务,然后将其用作映射数据流中的暂存。

错误代码:DF-Executor-InvalidType

  • 消息:请确保参数类型与传入的值类型匹配。 当前不支持从管道传递 float 参数。
  • 原因:声明的类型与实际参数值之间的数据类型不兼容。
  • 建议:检查传入到数据流中的参数值是否与声明的类型匹配。

错误代码:DF-Executor-OutOfDiskSpaceError

  • 消息:内部服务器错误
  • 原因:群集磁盘空间不足。
  • 建议:重试管道。 如果这样做仍然无法解决问题,请与客户支持联系。

错误代码:DF-Executor-OutOfMemoryError

  • 消息:群集在执行期间遇到内存不足问题,请使用具有更大核心数和/或内存优化计算类型的集成运行时重试
  • 原因:群集内存不足。
  • 建议:调试群集仅用于开发。 请使用数据采样和适当的计算类型与大小来运行有效负载。 有关性能提示,请参阅映射数据流性能指南

错误代码:DF-Executor-OutOfMemorySparkBroadcastError

  • 消息:使用“左/右”选项显式广播的数据集应足够小,以适合节点的内存。 可以在加入/存在/查找转换中选择“关闭”广播选项,以避免此问题,或使用具有更高内存的集成运行时。
  • 原因:广播表的大小远远超过了节点内存的限制。
  • 建议:广播左/右选项只能用于较小的数据集大小,这些大小可以容纳到节点的内存中。 请确保正确配置节点大小或关闭广播选项。

错误代码:DF-Executor-OutOfMemorySparkError

  • 消息:数据可能太大,无法容纳在内存中。
  • 原因:数据的大小远远超过了节点内存的限制。
  • 建议:增加核心数量并切换到内存优化计算类型。

错误代码:DF-Executor-ExpressionParseError

  • 消息:无法分析表达式。
  • 原因:由于格式不正确,表达式生成了分析错误。
  • 建议:检查表达式中的格式。

错误代码:DF-Executor-PartitionDirectoryError

  • 消息:指定的源路径要么包含多个分区目录(例如 <源路径>/<分区根目录 1>/a=10/b=20、<源路径>/<分区根目录 2>/c=10/d=30),要么包含具有其他文件的分区目录,要么包含非分区目录(例如 <源路径>/<分区根目录 1>/a=10/b=20、<源路径>/Directory 2/file1),请从源路径中删除分区根目录并通过单独的源转换读取该目录。
  • 原因:源路径要么包含多个分区目录或具有其他文件的分区目录,要么包含非分区目录。
  • 建议:从源路径中删除分区根目录,并通过单独的源转换读取该目录。

错误代码:DF-Executor-RemoteRPCClientDisassociated

  • 消息:作业因为阶段失败而中止。 远程 RPC 客户端已解除关联。 可能是由于容器超过阈值或网络问题。
  • 原因:由于暂时性的网络问题或 Spark 群集中的某个节点内存不足,数据流活动运行失败。
  • 建议:使用以下选项解决此问题
    • 选项 1:使用强大的群集(驱动器和执行器节点都有足够的内存,可以处理大数据)来运行数据流管道,并将“计算类型”设置为“内存优化”。 下图显示了设置。

      显示“计算类型”配置的屏幕截图。

    • 选项 2:使用更大的群集(例如 48 个核心)运行数据流管道。 可通过以下文档详细了解群集大小:群集大小

    • 选项 3:将输入数据重新分区。 对于在数据流 Spark 群集上运行的任务,一个分区就是一个任务,并在一个节点上运行。 如果一个分区中的数据太大,则节点上运行的相关任务需要消耗的内存就比节点本身消耗的内存还多,从而导致失败。 因此,可以使用重新分区来避免数据倾斜,确保每个分区的数据大小是均衡的,并且内存消耗量不会过大。

      显示分区配置的屏幕截图。

      注意

      需要评估输入数据的数据大小或分区数,然后在“优化”下设置合理的分区数。 例如,在数据流管道执行中使用的群集为 8 个核心,每个核心的内存为 20GB,但输入数据为 1000GB 并分布在 10 个分区中。 如果你直接运行数据流,则会出现 OOM 问题,因为 1000GB/10 > 20GB,因此最好将重新分区数设置为 100 (1000GB/100 < 20GB)。

    • 选项 4:调整并优化源/接收器/转换设置。 例如,尝试将所有文件复制到一个容器,且不使用通配符模式。 有关详细信息,请参阅映射数据流性能和优化指南

错误代码:DF-Executor-SourceInvalidPayload

  • 消息:数据预览、调试和管道数据流执行失败,因为容器不存在。
  • 原因:数据集包含存储中不存在的容器。
  • 建议:确保数据集中引用的容器存在并可访问。

错误代码:DF-Executor-StoreIsNotDefined

  • 消息:未定义存储配置。 此错误可能是管道中的参数赋值无效造成的。
  • 原因:提供的存储配置无效。
  • 建议:检查管道中的参数赋值。 参数表达式可能包含无效字符。

错误代码:DF-Executor-StringValueNotInQuotes

  • 消息:文本表达式中不允许使用列操作数。
  • 原因:字符串参数的值或预期字符串值未括在单引号中。
  • 建议:在数据流脚本中提及的行号附近,确保将字符串参数的值或预期字符串值括在单引号中。

错误代码:DF-Executor-SystemImplicitCartesian

  • 消息:用于 INNER 联接的隐式笛卡尔乘积不受支持。 请改用 CROSS JOIN。 联接中使用的列应为行创建唯一键。
  • 原因:逻辑计划之间 INNER 联接的隐式笛卡尔乘积不受支持。 如果要在联接中使用列,请创建一个唯一键。
  • 建议:对于基于不相等性的联接,请使用 CROSS JOIN。

错误代码:DF-Executor-SystemInvalidJson

  • 消息:JSON 分析错误、编码不受支持或多行
  • 原因:JSON 文件可能存在的问题:编码不受支持、字节损坏或在多个嵌套行上使用 JSON 源作为单文档。
  • 建议:验证 JSON 文件的编码是否受支持。 在使用 JSON 数据集的源转换中展开“JSON 设置”,然后打开“单一文档”。

错误代码:DF-Executor-UnauthorizedStorageAccess

  • 原因:由于缺少托管标识/服务主体身份验证或网络防火墙设置的角色,不允许访问存储帐户。

  • 建议:使用托管标识/服务主体身份验证时,

    1. 对于源:在存储资源管理器中,至少授予托管标识/服务主体对所有上游文件夹和文件系统的“执行”权限,以及要复制的文件的“读取”权限。 或者,在访问控制 (IAM) 中,授予托管标识/服务主体至少“存储 Blob 数据读者”角色。
    2. 对于接收器:在存储资源管理器中,至少授予托管标识/服务主体对所有上游文件夹和文件系统的“执行”权限,以及接收器文件夹的“写入”权限。 或者,在访问控制 (IAM) 中,授予托管标识/服务主体至少“存储 Blob 数据参与者”角色。

    此外,请确保存储帐户中的网络防火墙设置已正确配置,因为默认启用存储帐户的防火墙规则会阻止传入数据请求,除非请求源自 Azure 虚拟网络 (VNet) 中运行的服务或来自允许的公共 IP 地址。

错误代码:DF-Executor-UnreachableStorageAccount

  • 消息:系统无法解析主机的 IP 地址。 请验证主机名是否正确,或者检查 DNS 服务器是否能够成功将主机解析为 IP 地址
  • 原因:无法访问给定的存储帐户。
  • 建议:检查存储帐户的名称,并确保存储帐户存在。

错误代码:DF-Executor-UserError

  • 消息:由于以下原因导致作业失败:GetjobStatus、作业失败 - com.microsoft.dataflow.issues:DF-MICROSOFT365-CONSENTPENDING
  • 原因:复制数据需要特权访问审批。 这是用户配置问题。
  • 建议:让租户管理员在特权访问管理 (PAM) 模块中批准 Office365 中的“数据访问请求”。

错误代码:DF-Executor-DSLParseError

  • 消息:无法分析数据流脚本。
  • 原因:数据流脚本存在分析错误。
  • 建议:检查数据流脚本中所提及行号附近是否存在错误(例如:缺少符号、不需要的符号)。

错误代码:DF-Executor-IncorrectQuery

  • 消息:语法不正确。 从给定表读取或执行给定查询时遇到 SQL Server 错误。
  • 原因:所提交查询的语法不正确。
  • 建议:检查给定查询的语法是否正确。 在将查询字符串引用为管道参数时,请确保包括一个未带引号的查询字符串。

错误代码:DF-Executor-ParameterParseError

  • 消息:参数流存在分析错误。 不遵循参数的数据类型可能是原因之一。
  • 原因:在给定参数中分析错误。
  • 建议:检查存在错误的参数,确保使用适当的函数,并遵循给定的数据类型。

错误代码:DF-File-InvalidSparkFolder

  • 消息:无法读取文件的页脚。
  • 原因:文件夹 _spark_metadata 由结构化流作业创建。
  • 建议:删除 _spark_metadata 文件夹(如果存在)。

错误代码:DF-GEN2-InvalidAccountConfiguration

  • 消息:应指定帐户密钥、SAS 令牌、tenant/spnId/spnCredential/spnCredentialType、userAuth 或 miServiceUri/miServiceToken 之一。
  • 原因:Azure Data Lake Storage (ADLS) Gen2 链接服务中提供的凭据无效。
  • 建议:更新 ADLS Gen2 链接服务,以获得正确的凭据配置。

错误代码:DF-GEN2-InvalidAuthConfiguration

  • 消息:只能指定三种身份验证方法(密钥、服务主体和 MI)之一。
  • 原因:ADLS Gen2 链接服务中提供的身份验证方法无效。
  • 建议:更新 ADLS Gen2 链接服务,以获得密钥、服务主体和 MI 三种身份验证方法之一。

错误代码:DF-GEN2-InvalidCloudType

  • 消息:云类型无效。
  • 原因:提供的云类型无效。
  • 建议:检查相关 ADLS Gen2 链接服务中的云类型。

错误代码:DF-GEN2-InvalidServicePrincipalCredentialType

  • 消息:服务主体凭据类型无效。
  • 原因:服务主体凭据类型无效。
  • 建议:请更新 ADLS Gen2 链接服务,以设置正确的服务主体凭据类型。

错误代码:DF-GEN2-InvalidStorageAccountConfiguration

  • 消息:早期的存储帐户不支持 Blob 操作。 创建新的存储帐户可能会解决此问题。
  • 原因:存储帐户太旧。
  • 建议:创建新的存储帐户。

错误代码:DF-Hive-InvalidBlobStagingConfiguration

  • 消息:应指定 Blob 存储暂存属性。
  • 原因:配置单元中提供的暂存配置无效。
  • 建议:请检查在用于暂存的相关 Blob 链接服务中,帐户密钥、帐户名和容器是否设置正确。

错误代码:DF-Hive-InvalidDataType

  • 消息:不受支持的列。
  • 原因:提供了不受支持的列。
  • 建议:更新输入数据的列,以匹配配置单元支持的数据类型。

错误代码:DF-Hive-InvalidGen2StagingConfiguration

  • 消息:ADLS Gen2 存储暂存仅支持服务主体密钥凭据。

  • 原因:配置单元中提供的暂存配置无效。

  • 建议:请更新用作暂存的相关 ADLS Gen2 链接服务。 目前仅支持服务主体密钥凭据。

  • 消息:应指定 ADLS Gen2 存储暂存属性。 需要密钥或 tenant/spnId/spn Credential/spnCredentialType 或 miServiceUri/miServiceToken 之一。

  • 原因:配置单元中提供的暂存配置无效。

  • 建议:使用在配置单元中用作暂存的正确凭据,更新相关 ADLS Gen2 链接服务。

错误代码:DF-Hive-InvalidStorageType

  • 消息:存储类型可以是 blob,也可以是 gen2。
  • 原因:仅支持 Azure Blob 或 ADLS Gen2 存储类型。
  • 建议:从 Azure Blob 或 ADLS Gen2 中选择正确的存储类型。

错误代码:DF-JSON-ErrorDocumentForm

  • 消息:在架构推理中检测到格式不正确的记录。 分析模式:FAILFAST。 这可能是因为在分析 json 文件时选择了错误的文档形式。 请在 json 源上尝试其他“文档窗体”(单个文档/每行一个文档/文档数组)。
  • 原因:选择了错误的文档形式来分析 JSON 文件。
  • 建议:在 JSON 设置中尝试使用不同的“文档形式”(“单个文档”/“每行一个文档”/“文档数组”)。 出现分析错误的大多数情况都是由于配置错误导致的。

错误代码:DF-MICROSOFT365-CONSENTPENDING

  • 消息:管理员同意处于挂起状态。
  • 原因:缺少管理员同意。
  • 建议:提供同意,然后重新运行管道。 要提供同意,请参阅 PAM 请求

错误代码:DF-MSSQL-ErrorRowsFound

  • 原因:写入 Azure SQL 数据库接收器时发现了错误/无效行。
  • 建议:请在拒绝的数据存储位置(如果已配置)查找错误行

错误代码:DF-MSSQL-ExportErrorRowFailed

  • 消息:将错误行写入存储时出现异常。
  • 原因:将错误行写入存储时发生异常。
  • 建议:检查拒绝的数据链接服务配置。

错误代码:DF-MSSQL-InvalidAuthConfiguration

  • 消息:只能指定三种身份验证方法(密钥、ServicePrincipal 和 MI)中的一种。
  • 原因:MSSQL 链接服务中提供的身份验证方法无效。
  • 建议:在相关 MSSQL 链接服务中,只能指定三种身份验证方法(密钥、服务主体和 MI)之一。

错误代码:DF-MSSQL-InvalidCloudType

  • 消息:云类型无效。
  • 原因:提供的云类型无效。
  • 建议:检查相关 MSSQL 链接服务中的云类型。

错误代码:DF-MSSQL-InvalidCredential

  • 消息:应指定 user/pwd 或 tenant/spnId/spnKey 或 miServiceUri/miServiceToken 之一。
  • 原因:MSSQL 链接服务中提供的凭据无效。
  • 建议:请使用正确的凭据更新相关 MSSQL 链接服务,并且应指定 user/pwd 或 tenant/spnId/spnKey 或 miServiceUri/miServiceToken 之一。

错误代码:DF-MSSQL-InvalidDataType

  • 消息:不受支持的字段。
  • 原因:提供了不受支持的字段。
  • 建议:修改输入数据列,使其与 MSSQL 支持的数据类型相匹配。

错误代码:DF-MSSQL-InvalidFirewallSetting

  • 消息:与主机的 TCP/IP 连接失败。 请确保 SQL Server 实例正在主机上运行并在端口接受 TCP/IP 连接。 请确保防火墙未阻止到端口的 TCP 连接。
  • 原因:SQL 数据库的防火墙设置阻止了要访问的数据流。
  • 建议:请检查 SQL 数据库的防火墙设置,并允许 Azure 服务和资源访问此服务器。

错误代码:DF-MSSQL-InvalidCertificate

  • 消息:SQL Server 配置错误,请在服务器上安装受信任的证书,或者将 encrypt 连接字符串设置更改为 false,将“trustServerCertificate”连接字符串设置更改为 true。
  • 原因:SQL 服务器管理错误。
  • 建议:在 SQL Server 上安装受信任的证书,或者将 encrypt 连接字符串设置更改为 false,将 trustServerCertificate 连接字符串设置更改为 true。

错误代码:DF-PGSQL-InvalidCredential

  • 消息:应指定用户/密码。
  • 原因:缺少用户/密码。
  • 建议:确保在相关的 PostgreSQL 链接服务中具有正确的凭据设置。

错误代码:DF-SAPODATA-InvalidRunMode

  • 消息:在无效的运行模式下执行数据流失败。
  • 原因:可能的原因包括:
    1. enableCdc 为 false 时,只能指定读取模式 fullLoad
    2. enableCdc 为 true 时,只能指定运行模式 incrementalLoadfullAndIncrementalLoad
    3. 只能指定 fullLoadincrementalLoadfullAndIncrementalLoad
  • 建议:重新配置活动并再次运行。 如果问题持续出现,请联系 Azure 支持人员获取更多帮助。

错误代码:DF-SAPODATA-StageLinkedServiceMissed

  • 消息:DSL 中不存在暂存链接服务时,执行数据流失败。 请重新配置活动并再次运行。 如果问题持续存在,请联系 Azure 支持人员获取更多帮助。
  • 原因:DSL 中不存在暂存链接服务。
  • 建议:重新配置活动并再次运行。 如果问题持续出现,请联系 Azure 支持人员获取更多帮助。

错误代码:DF-SAPOODATA-StageContainerMissed

  • 消息:暂存存储需要容器或文件系统。
  • 原因:没有为暂存存储指定容器或文件系统。
  • 建议:为暂存存储指定容器或文件系统。

错误代码:DF-SAPODATA-StageFolderPathMissed

  • 消息:暂存存储需要文件夹路径。
  • 原因:没有为暂存存储指定文件夹路径。
  • 建议:为暂存存储指定文件夹路径。

错误代码:DF-SAPODATA-ODataServiceOrEntityMissed

  • 消息:导入架构、预览数据和读取数据操作都需要 SAP servicePath 和 entityName。
  • 原因:导入架构、预览数据或读取数据时,“服务路径”和“实体名称”不能为 null。
  • 建议:导入架构、预览数据或读取数据时,指定“服务路径”和“实体名称”。

错误代码:DF-SAPODATA-TimeoutInvalid

  • 消息:超时无效,应不超过 7 天。
  • 原因:超时不能超过 7 天。
  • 建议:指定有效的超时。

错误代码:DF-SAPODATA-ODataServiceMissed

  • 消息:浏览实体名称时需要 SAP servicePath。
  • 原因:浏览实体名称时,“服务路径”不能为 null。
  • 建议:指定“服务路径”。

错误代码:DF-SAPODATA-SystemError

  • 消息:系统错误: 未能从 SAP 获取 deltaToken。 请联系 Azure 支持人员以获得更多帮助。
  • 原因:从 SAP 获取增量令牌失败。
  • 建议:请联系 Azure 支持人员以获得更多帮助。

错误代码:DF-SAPODATA-StageAuthInvalid

  • 消息:提供的客户端密码无效
  • 原因:暂存存储的服务主体凭据不正确。
  • 建议:测试暂存存储链接服务中的连接,并确认暂存存储中的身份验证设置是否正确。

错误代码:DF-SAPODATA-NotReached

  • 原因和建议:创建到请求 URL 的 OData 连接失败。 不同的原因可能都会导致此问题。 请查看以下列表,了解可能的原因和相关建议。

    原因分析 建议
    SAP 服务器已关闭。 检查 SAP 服务器是否已启动。
    自承载集成运行时代理问题。 检查自承载集成运行时代理。
    参数输入错误(例如,SAP 服务器名称或 密码错误) 检查输入参数:SAP 服务器名称、密码。

错误代码:DF-SAPODATA-NoneODPService

  • 消息:当前 odata 服务不支持提取 ODP 数据,请为此服务启用 ODP
  • 原因:当前 OData 服务不支持提取 ODP 数据。
  • 建议:为服务启用 ODP。

错误代码:DF-SAPODP-AuthInvalid

  • 消息:SapOdp 名称或密码不正确
  • 原因:输入名称或密码不正确。
  • 建议:确认输入名称或密码正确无误。

错误代码:DF-SAPODP-ContextInvalid

  • 原因:SAP OPD 中不存在上下文值。
  • 建议:检查上下文值并确保其有效。

错误代码:DF-SAPODP-ContextMissed

  • 消息:需要上下文

  • 原因和建议:此错误可能由不同的原因导致。 请查看以下列表,了解可能的原因分析和相关建议。

    原因分析 建议
    读取数据时,上下文值不能为空。 指定上下文。
    浏览对象名称时,上下文值不能为空。 指定上下文。

错误代码:DF-SAPODP-DataflowSystemError

  • 建议:重新配置活动并再次运行它。 如果问题持续出现,可以联系 Azure 支持获取更多帮助。

错误代码:DF-SAPODP-DataParsingFailed

  • 原因:大多数情况下,SAP 表中有隐藏的列设置。 使用 SAP 映射数据流从 SAP 服务器读取数据时,它将返回所有架构(列,包括隐藏的列),但返回的数据不包含相关值。 因此,发生了数据不一致,并导致分析值问题或错误的数据值问题。
  • 建议:针对此问题,有两条建议:
    1. 通过 SAP 用户界面删除相关列的隐藏设置。
    2. 如果要保持现有 SAP 设置不变,请使用 SAP 映射数据流中的隐藏功能(在脚本中手动添加 DSL 属性 enableProjection:true),以筛选隐藏列,并继续读取数据。

错误代码:DF-SAPODP-ObjectInvalid

  • 原因:找不到或未释放对象名称。
  • 建议:检查对象名称并确保其有效并已释放。

错误代码:DF-SAPODP-ObjectNameMissed

  • 消息:需要“objectName”(SAP 对象名称)
  • 原因:从 SAP ODP 读取数据时必须定义对象名称。
  • 建议:指定 SAP ODP 对象名称。

错误代码:DF-SAPODP-SAPSystemError

  • 原因:这是 SAP 系统错误:user id locked
  • 建议:联系 SAP 管理员以获取帮助。

错误代码:DF-SAPODP-SessionTerminate

  • 消息:内部会话终止时出现运行时错误 RAISE_EXCEPTION(请参阅 ST22)
  • 原因:SLT 对象的暂时性问题。
  • 建议:重新运行数据流活动。

错误代码:DF-SAPODP-SHIROFFLINE

  • 原因:自承载集成运行时处于脱机状态。
  • 建议:检查自承载集成运行时状态并确认其处于联机状态。

错误代码:DF-SAPODP-SLT-LIMITATION

  • 消息:SLT 系统中不支持预览
  • 原因:上下文或对象位于不支持预览的 SLT 系统中。 这是一个 SAP ODP SLT 系统限制。
  • 建议:直接运行数据流活动。

错误代码:DF-SAPODP-StageAuthInvalid

  • 消息:提供的客户端密码无效
  • 原因:暂存存储的服务主体证书凭据不正确。
  • 建议:在暂存存储链接服务中检查测试连接是否成功,并确认暂存存储的身份验证设置正确无误。
  • 消息:无法对发送到存储的请求进行身份验证
  • 原因:暂存存储的密钥不正确。
  • 建议:在暂存存储链接服务中检查测试连接是否成功,并确认暂存 Azure Blob 存储的密钥正确无误。

错误代码:DF-SAPODP-StageBlobPropertyInvalid

  • 消息:从暂存存储读取失败:暂存 Blob 存储身份验证属性无效。
  • 原因:暂存 Blob 存储属性无效。
  • 建议:检查暂存链接服务中的身份验证设置。

错误代码:DF-SAPODP-StageContainerInvalid

  • 消息:无法创建 Azure Blob 容器
  • 原因:暂存存储中不存在输入容器。
  • 建议:为暂存存储输入有效的容器名称。 重新选择另一个存在的容器名称,或使用输入名称手动创建一个新容器。

错误代码:DF-SAPODP-StageContainerMissed

  • 消息:暂存存储需要容器或文件系统。
  • 原因:没有为暂存存储指定容器或文件系统。
  • 建议:为暂存存储指定容器或文件系统。

错误代码:DF-SAPODP-StageFolderPathMissed

  • 消息:暂存存储需要文件夹路径
  • 原因:未指定暂存存储文件夹路径。
  • 建议:指定暂存存储文件夹。

错误代码:DF-SAPODP-StageGen2PropertyInvalid

  • 消息:从暂存存储读取失败:暂存 Gen2 存储身份验证属性无效。
  • 原因:暂存 Azure Data Lake Storage Gen2 的身份验证属性无效。
  • 建议:检查暂存链接服务中的身份验证设置。

错误代码:DF-SAPODP-StageStorageServicePrincipalCertNotSupport

  • 消息:从暂存存储读取失败:暂存存储身份验证不支持服务主体证书。
  • 原因:暂存存储不支持服务主体证书凭据。
  • 建议:将身份验证更改为不使用服务主体证书凭据。

错误代码:DF-SAPODP-StageStorageTypeInvalid

  • 消息:SapOdp 的暂存存储类型无效
  • 原因:SAP ODP 暂存仅支持 Azure Blob 存储和 Azure Data Lake Storage Gen2。
  • 建议:选择 Azure Blob 存储或 Azure Data Lake Storage Gen2 作为暂存存储。

错误代码:DF-SAPODP-SubscriberNameMissed

  • 消息:选择“启用变更数据捕获”选项时需要“subscriberName”
  • 原因:选择“启用变更数据捕获”选项时需要 SAP 链接服务属性 subscriberName
  • 建议:在 SAP ODP 链接服务中指定 subscriberName

错误代码:DF-SAPODP-SystemError

  • 原因:此错误是数据流系统错误或 SAP 服务器系统错误。
  • 建议:检查错误消息。 如果它包含 SAP 服务器相关的错误堆栈跟踪,请联系 SAP 管理员以获取帮助。 否则,请联系 Azure 支持部门以获取进一步的帮助。

错误代码:DF-SAPODP-NotReached

  • 消息:未到达合作伙伴“.*”

  • 原因和建议:这是连接问题。 不同的原因可能都会导致此问题。 请查看以下列表,了解可能的原因分析和相关建议。

    原因分析 建议
    SAP 服务器已关闭。 检查 SAP 服务器是否已启动。
    自承载集成运行时的 IP 或端口不在 SAP 网络安全规则中。 检查自承载集成运行时的 IP 或端口是否在 SAP 网络安全规则中。
    自承载集成运行时代理问题。 检查自承载集成运行时代理。
    参数输入错误(例如,SAP 服务器名称或 IP 错误)。 检查输入参数:SAP 服务器名称、IP。

错误代码:DF-SAPODP-DependencyNotFound

  • 消息:无法加载文件或程序集 'sapnco, Version=*
  • 原因:未在自承载集成运行时的计算机上安装 SAP .NET 连接器。
  • 建议:按照设置自承载集成运行时,为 SAP 变更数据捕获 (CDC) 连接器设置自承载集成运行时。

错误代码:DF-SAPODP-NoAuthForFunctionModule

  • 消息:函数模块 RODPS_REPL_CONTEXT_GET_LIST 没有 REF 授权
  • 原因:缺少执行相关函数模块的授权。
  • 建议:按照此 SAP 说明将所需的授权配置文件添加到 SAP 帐户。

错误代码:DF-SAPODP-OOM

  • 消息:没有更多内存可用于向内部表添加行
  • 原因:SAP 表连接器对大型表提取具有限制。 SAP 基础表依赖于 RFC,该 RFC 会将表中的所有数据读取到 SAP 系统内存中,因此在提取大型表时,会出现内存不足 (OOM) 问题。
  • 建议:使用 SAP CDC 连接器直接从源系统执行完全加载,然后在发布不含增量的初始化后,将增量移动到 SAP 横向转换复制服务器 (SLT)。

错误代码:DF-SAPODP-SourceNotSupportDelta

  • 消息:源 .* 不支持增量
  • 原因:指定的 ODP 上下文/ODP 名称不支持增量。
  • 建议:为 SAP 源启用增量模式,或选择“每次运行时已满”作为数据流中的运行模式。 有关详细信息,请参阅此文档

错误代码:DF-SAPODP-SAPI-LIMITATION

  • 消息:错误编号 518,找不到源 .*,未发布或未获授权
  • 原因:检查上下文是否为 SAP 服务 API (SAPI)。 如果是这样,在 SAPI 上下文中,只能提取 SAP 表的相关提取程序。
  • 建议:请参阅此文档

错误代码:DF-SAPODP-KeyColumnsNotSpecified

  • 消息:应为不可插入操作(更新/删除)指定键列
  • 原因:跳过选择接收器表中的“键列”时,会出现此错误。
  • 建议:允许删除、向上插入和更新选项需要指定键列。 为接收器中的行匹配指定一个或多个列。

错误代码:DF-SAPODP-InsufficientResource

  • 消息:数据库操作中发生了短转储
  • 原因:SAP 系统耗尽了资源,导致 SAP 服务器中发生短转储。
  • 建议:请与 SAP 管理员联系,以解决 SAP 实例中的问题,然后重试。

错误代码:DF-SAPODP-ExecuteFuncModuleWithPointerFailed

  • 消息:使用指针 .* 执行函数模块 .* 失败
  • 原因:SAP 系统问题。
  • 建议:转到 SAP 实例并检查 ST22(短转储,类似于 Wndows 转储)并查看发生错误的代码。 在大多数情况下,SAP 提示了各种可能性,以进行进一步故障排除。

错误代码:DF-Snowflake-IncompatibleDataType

  • 消息:表达式类型与列数据类型不匹配,需要 VARIANT,但获得的是 VARCHAR。
  • 原因:输入数据(字符串)的列类型与 Snowflake 接收器转换中的相关列类型 (VARIANT) 不同。
  • 建议:对于 Snowflake VARIANT,它只能接受类型为结构、映射或数组的数据流值。 如果输入数据列的值为 JSON 或 XML 或其他字符串,请在 Snowflake 接收器转换之前使用分析转换将值转换为结构、映射或数组类型。

错误代码:DF-Snowflake-InvalidDataType

  • 消息:Snowflake 中不支持此 Spark 类型。
  • 原因:Snowflake 中提供的数据类型无效。
  • 建议:在应用 Snowflake 接收器之前,请使用派生转换将输入数据的相关列更新为字符串类型。

错误代码:DF-Snowflake-InvalidStageConfiguration

  • 消息:仅 blob 存储类型可用作 snowflake 读/写操作的阶段。

  • 原因:Snowflake 中提供的暂存配置无效。

  • 建议:更新 Snowflake 暂存设置,以确保仅使用 Azure Blob 链接服务。

  • 消息:应通过 Azure Blob + SAS 身份验证指定 Snowflake 阶段属性。

  • 原因:Snowflake 中提供的暂存配置无效。

  • 建议:确保在 Snowflake 暂存设置中仅指定 Azure Blob + SAS 身份验证。

错误代码:DF-SQLDW-ErrorRowsFound

  • 原因:写入 Azure Synapse Analytics 接收器时发现了错误/无效行。
  • 建议:请在已拒绝的数据存储位置(如果已配置)中查找错误行。

错误代码:DF-SQLDW-ExportErrorRowFailed

  • 消息:将错误行写入存储时出现异常。
  • 原因:将错误行写入存储时发生异常。
  • 建议:检查拒绝的数据链接服务配置。

错误代码:DF-SQLDW-IncorrectLinkedServiceConfiguration

  • 消息:链接服务错误地配置为“Azure Synapse Analytics”类型而不是“Azure SQL 数据库”。 请创建类型为“Azure SQL Database”的新链接服务
    注意:请检查给定数据库的类型是否为适用于链接服务类型“Azure Synapse Analytics”的“专用 SQL 池(以前为 SQL 数据仓库)”。
  • 原因:链接服务错误地配置为 Azure Synapse Analytics 类型,而不是 Azure SQL 数据库。 
  • 建议:创建类型为 Azure SQL 数据库的新链接服务,并检查给定数据库的类型是否为适用于连接服务类型 Azure Synapse Analytics 的专用 SQL 池(以前为 SQL DW)。

错误代码:DF-SQLDW-InternalErrorUsingMSI

  • 消息:在 Azure Synapse Analytics 实例中对托管服务标识进行身份验证时发生内部错误。 如果此问题仍然存在,请重启 Azure Synapse Analytics 实例,或联系 Azure Synapse Analytics 专用 SQL 池支持部门。
  • 原因:Azure Synapse Analytics 中出现内部错误。
  • 建议:如果此问题仍然存在,请重启 Azure Synapse Analytics 实例,或联系 Azure Synapse Analytics 专用 SQL 池支持部门。

错误代码:DF-SQLDW-InvalidBlobStagingConfiguration

  • 消息:应指定 Blob 存储暂存属性。
  • 原因:提供的 Blob 存储暂存设置无效
  • 建议:请检查用于暂存的 Blob 链接服务是否具有正确的属性。

错误代码:DF-SQLDW-InvalidConfiguration

  • 消息:应指定 ADLS Gen2 存储暂存属性。 需要密钥或 tenant/spnId/spnCredential/spnCredentialType 或 miServiceUri/miServiceToken 之一。
  • 原因:提供的 ADLS Gen2 暂存属性无效。
  • 建议:请更新 ADLS Gen2 存储暂存设置,以获得密钥或 tenant/spnId/spnCredential/spnCredentialType 或 miServiceUri/miServiceToken 之一。

错误代码:DF-SQLDW-InvalidGen2StagingConfiguration

  • 消息:ADLS Gen2 存储暂存仅支持服务主体密钥凭据。
  • 原因:为 ADLS Gen2 存储暂存提供的凭据无效。
  • 建议:使用用于暂存的 Gen2 链接服务的服务主体密钥凭据。

错误代码:DF-SQLDW-InvalidStorageType

  • 消息:存储类型可以是 blob,也可以是 gen2。
  • 原因:为暂存提供的存储类型无效。
  • 建议:检查用于暂存的链接服务的存储类型,并确保类型为 Blob 或 Gen2。

错误代码:DF-SQLDW-StagingStorageNotSupport

  • 消息:如果启用暂存,则不支持启用了分区 DNS 的暂存存储。 请使用 Synapse Analytics 取消选中“启用接收器中的暂存”。
  • 原因:如果启用暂存,则不支持启用了分区 DNS 的暂存存储。
  • 建议:使用 Azure Synapse Analytics 时取消选中“启用接收器中的暂存”。

错误代码:DF-SQLDW-DataTruncation

  • 消息:目标表具有 (n)varchar 或 (n)varbinary 类型的列,其列长度限制小于实际数据,请调整目标表中的列定义或更改源数据。
  • 原因:目标表具有 varchar 或 varbinary 类型的列,其列长度限制小于实际数据。
  • 建议:调整目标表中的列定义或更改源数据。

错误代码:DF-Synapse-DBNotExist

  • 原因:数据库不存在。
  • 建议:检查数据库是否存在。

错误代码:DF-Synapse-InvalidDatabaseType

  • 消息:数据库类型不受支持。
  • 原因:数据库类型不受支持。
  • 建议:检查数据库类型,将其更改为正确的类型。

错误代码:DF-Synapse-InvalidFormat

  • 消息:格式不受支持。
  • 原因:格式不受支持。
  • 建议:检查格式,将其更改为正确的格式。

错误代码:DF-Synapse-InvalidOperation

  • 原因:操作不受支持。
  • 建议:更改“更新方法”配置,因为工作区 DB 不支持删除、更新和更新插入。

错误代码:DF-Synapse-InvalidTableDBName

  • 消息:表/数据库名称不是表/数据库的有效名称。 有效名称仅包含字母字符、数字和 _。
  • 原因:表/数据库名称无效
  • 建议:更改为有效的表/数据库名称。 有效名称仅包含字母字符、数字和 _

错误代码:DF-Synapse-StoredProcedureNotSupported

  • 消息:对于无服务器(按需)池,不支持使用“存储过程”作为源。
  • 原因:无服务器池存在限制。
  • 建议:重试使用“查询”作为源或将存储过程保存为视图,然后使用“表”作为源以直接从视图读取数据。

错误代码:DF-Xml-InvalidDataField

  • 消息:损坏的记录的字段必须是字符串类型,并且可为空。
  • 原因:XML 源中提供的列 \"_corrupt_record\" 数据类型无效。
  • 建议:请确保 XML 源中的列 \"_corrupt_record\" 具有字符串数据类型且可为空。

错误代码:DF-Xml-InvalidElement

  • 消息:XML 元素具有无法转换的子元素或属性。
  • 原因:XML 元素具有无法转换的子元素或属性。
  • 建议:更新 XML 文件,以使 XML 元素具有正确的子元素或属性。

错误代码:DF-Xml-InvalidReferenceResource

  • 消息:无法解析 XML 数据文件中的参考资源。
  • 原因:无法解析 XML 数据文件中的参考资源。
  • 建议:检查 XML 数据文件中的引用资源。

错误代码:DF-Xml-InvalidSchema

  • 消息:架构验证失败。
  • 原因:XML 源中提供的架构无效。
  • 建议:检查 XML 源中的架构设置,确保其为源数据的子集架构。

错误代码:DF-Xml-InvalidValidationMode

  • 消息:提供了无效的 xml 验证模式。
  • 原因:提供的 XML 验证模式无效。
  • 建议:检查参数值并指定正确的验证模式。

错误代码:DF-Xml-MalformedFile

  • 消息:FAILFAST 模式中,带有路径的 XML 格式错误。
  • 原因:FAILFAST 模式中,带有路径的 XML 格式错误。
  • 建议:将 XML 文件的内容更新为正确的格式。

错误代码:DF-Xml-UnsupportedExternalReferenceResource

  • 消息:不支持 xml 数据文件中的外部参考资源。
  • 原因:不支持 XML 数据文件中的外部参考资源。
  • 建议:当外部引用资源现在不受支持时,更新 XML 文件内容。

错误代码:GetCommand OutputAsync 失败

  • 消息:在数据流调试和数据预览期间:GetCommand OutputAsync 失败,出现...
  • 原因:此错误为后端服务错误。
  • 建议:重试操作并重启调试会话。 如果重试和重启不能解决问题,请与客户支持联系。

错误代码:InvalidTemplate

  • 消息:无法评估管道表达式。
  • 原因:由于语法错误,未正确处理传入到数据流活动中的管道表达式。
  • 建议:检查数据流活动名称。 检查活动监视中的表达式以验证表达式。 例如,数据流活动名称不能有空格或连字符。

错误代码: 127

  • 消息:数据流的 Spark 作业已完成,但运行时状态为 null 或仍为 InProgress。
  • 原因:执行中涉及的暂时性微服务问题可能会导致运行失败。
  • 建议:请参阅方案 3 暂时性问题

错误代码:2011

  • 消息:活动在 Azure Integration Runtime 中运行,无法通过自承载集成运行时解密数据存储或联网计算的凭据。 请检查与此活动关联的链接服务的配置,并确保使用正确的集成运行时类型。
  • 原因:数据流不支持自承载集成运行时中的链接服务。
  • 建议:将数据流配置为在托管虚拟网络集成运行时中运行。

错误代码:4502

  • 消息:存在大量的并发 MappingDataflow 执行,导致集成运行时引发限制,进而导致失败。
  • 原因:大量数据流活动运行在集成运行时中并发出现。 有关详细信息,请参阅 Azure 数据工厂限制
  • 建议:若要并行运行更多的数据流活动,请将其分配到多个集成运行时。

错误代码:4503

  • 消息:存在大量并发 MappingDataflow 执行,导致失败,因为订阅 "%subscriptionId;" 下存在限制;ActivityId: "%activityId;"。
  • 原因:达到限制阈值。
  • 建议:在等待时间后重试请求。

错误代码:4506

  • 消息:无法为 "%activityId;" 预配群集,因为请求计算机超过最大并发计数,即 200。 集成运行时 "%IRName;"
  • 原因:暂时性错误
  • 建议:在等待时间后重试请求。

错误代码:4507

  • 消息:计算类型和/或核心计数值不受支持。
  • 原因:提供的计算类型和/或核心计数值不受支持。
  • 建议:使用此文档中给定的受支持的计算类型和/或核心计数值之一。

错误代码:4508

  • 消息:找不到 Spark 群集。
  • 建议:重启调试会话。

错误代码:4509

  • 消息:分配计算资源时遇到意外故障,请重试。 如果此问题仍然存在,请联系 Azure 支持
  • 原因:暂时性错误
  • 建议:在等待时间后重试请求。

错误代码:4510

  • 消息:在执行过程中意外失败。
  • 原因:由于调试群集的工作方式不同于作业群集,过多的调试运行可能导致群集在一段时间内经受损耗,从而导致内存问题和突发性重启。
  • 建议:重启调试群集。 如果你在调试会话期间运行多个数据流,请改用活动运行,因为活动级别的运行会创建单独的会话,而不会给主调试群集造成过重的负担。

错误代码:4511

  • 消息:java.sql.SQLTransactionRollbackException。 尝试获取锁时发现死锁;请尝试重启事务。 如果此问题仍然存在,请联系 Azure 支持
  • 原因:暂时性错误
  • 建议:在等待时间后重试请求。

其他故障排除提示

  • 问题:发生意外的异常,执行失败。

    • 消息:在数据流活动执行期间:遇到了意外异常,执行失败。
    • 原因:此错误为后端服务错误。 重试操作并重启调试会话。
    • 建议:如果重试和重启不能解决问题,请与客户支持联系。
  • 问题:在预览调试数据期间未输出有关联接的数据。

    • 消息:存在大量的 null 值或缺失值,这可能是因为采样的行太少。 尝试更新调试行限制并刷新数据。
    • 原因:联接条件与任何行都不匹配,或者在预览数据期间导致了大量的 null 值。
    • 建议:在“调试设置”中增加源行限制中的行数。 确保选择的 Azure IR 的数据流群集足够大,可以处理更多数据。
  • 问题:包含多行 CSV 文件的源发生验证错误。

    • 消息:可能会出现以下错误消息之一:
      • 最后一列为 NULL 或缺失。
      • 源上的架构验证失败。
      • 架构导入无法在 UX 中正确显示,并且最后一列的名称中包含换行符。
    • 原因:在映射数据流中,如果使用 \r\n 作为行分隔符,多行 CSV 源文件目前无法正常工作。 有时,在回车符处使用多余的行可能导致错误。
    • 建议:使用 \n(而不是 \r\n)作为行分隔符在源中生成文件。 或者使用复制活动将 CSV 文件转换为使用 \n 作为行分隔符。

数据流中 CSV/CDM 格式的改进

如果在 Azure 数据工厂 V2 中使用分隔文本或 CDM 格式映射数据流,由于从 2021 年 5 月 1 日开始对数据流中的分隔文本/CDM 进行改进,你可能会面临现有管道的行为变更。

改进之前,可能会遇到以下问题,但改进之后,问题已修复。 阅读以下内容,以确定此改进是否对你有影响。

场景 1:遇到意外的行分隔符问题

如果处于以下情况,则会受到影响:

  • 使用多行设置设置为 True 或将 CDM 设置为源的分隔文本。
  • 第一行超过 128 个字符。
  • 数据文件中的行分隔符不是 \n

改进之前,由于在多行设置设置为 True 时,行分隔符设置会失效,而且会基于前 128 个字符自动检测行分隔符,因此,默认的行分隔符 \n 可能会意外地用于分析分隔文本文件。 如果无法检测到实际的行分隔符,则会返回到 \n

改进后,\r\n\r\n 这三个行分隔符中的任何一个都应有效。

改进后的一项管道行为变更如下例所示:

示例
对于以下列:
C1, C2, {long first row}, C128\r\n
V1, V2, {values………………….}, V128\r\n

改进之前,\r 保留在列值中。 分析后的列结果为:
C1 C2 {long first row} C128\r
V1 V2 {values………………….} V128\r

改进之后,分析后的列结果应为:
C1 C2 {long first row} C128
V1 V2 {values………………….} V128

场景 2:遇到错误读取包含“\r\n”的列值的问题

如果处于以下情况,则会受到影响:

  • 使用多行设置设置为 True 或将 CDM 设置为源的分隔文本。
  • 行分隔符为 \r\n

改进之前,读取列值时,其中的 \r\n 可能会错误地替换为 \n

改进之后,列值中的 \r\n 将不会替换为 \n

改进后的一项管道行为变更如下例所示:

示例

对于以下列:
"A\r\n", B, C\r\n

改进之前,分析后的列结果为:
A\n B C

改进之后,分析后的列结果应为:
A\r\n B C

场景 3:遇到错误地写入包含“\n”的列值的问题

如果处于以下情况,则会受到影响:

  • 使用分隔文本作为接收器。
  • 列值包含 \n
  • 行分隔符已设为 \r\n

改进之前,写入列值时,其中的 \n 可能会错误地替换 \r\n

改进之后,列值中的 \n 将不会替换为 \r\n

改进后的一项管道行为变更如下例所示:

示例

对于以下列:
A\n B C

改进之前,CSV 接收器为:
"A\r\n", B, C\r\n

改进之后,CSV 接收器应为:
"A\n", B, C\r\n

场景 4:遇到将空字符串误读为 NULL 的问题

如果处于以下情况,则会受到影响:

  • 使用分隔文本作为源。
  • NULL 值设置为非空值。
  • 列值为空字符串,且不带引号。

改进之前,不带引号的空字符串的列值读取为 NULL。

改进之后,空字符串不会被分析为 NULL 值。

改进后的一项管道行为变更如下例所示:

示例

对于以下列:
A, ,B,

改进之前,分析后的列结果为:
A null B null

改进之后,分析后的列结果应为:
A "" (empty string) B "" (empty string)

在故障排除时如需更多帮助,请参阅以下资源: