排查 Azure 数据工厂连接器问题Troubleshoot Azure Data Factory connectors

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

本文探讨排查 Azure 数据工厂连接器问题的常见方法。This article explores common ways to troubleshoot problems with Azure Data Factory connectors.

Azure Blob 存储Azure Blob Storage

错误代码:AzureBlobOperationFailedError code: AzureBlobOperationFailed

  • 消息:“Blob 操作失败。Message: "Blob operation Failed. ContainerName: %containerName;,path: %path;。”ContainerName: %containerName;, path: %path;."

  • 原因:Blob 存储操作存在问题。Cause: A problem with the Blob Storage operation.

  • 建议:若要查看错误详细信息,请参阅 Blob 存储错误代码Recommendation: To check the error details, see Blob Storage error codes. 如需更多帮助,请联系 Blob 存储团队。For further help, contact the Blob Storage team.

执行复制活动期间属性无效Invalid property during copy activity

  • 消息:Copy activity \<Activity Name> has an invalid "source" property. The source type is not compatible with the dataset \<Dataset Name> and its linked service \<Linked Service Name>. Please verify your input against.Message: Copy activity \<Activity Name> has an invalid "source" property. The source type is not compatible with the dataset \<Dataset Name> and its linked service \<Linked Service Name>. Please verify your input against.

  • 原因:数据集中定义的类型与复制活动中定义的源或接收器类型不一致。Cause: The type defined in the dataset is inconsistent with the source or sink type that's defined in the copy activity.

  • 解决方法:编辑数据集或管道 JSON 定义以使类型一致,然后重新运行部署。Resolution: Edit the dataset or pipeline JSON definition to make the types consistent, and then rerun the deployment.

Azure Cosmos DBAzure Cosmos DB

错误消息:请求过大Error message: Request size is too large

  • 故障描述:将数据复制到具有默认写入批大小的 Azure Cosmos DB 时,遇到以下错误:Request size is too large.Symptoms: When you copy data into Azure Cosmos DB with a default write batch size, you receive the following error: Request size is too large.

  • 原因:Azure Cosmos DB 限制单个请求的大小不超过 2 MB。Cause: Azure Cosmos DB limits the size of a single request to 2 MB. 公式是“请求大小 = 单个文档大小 * 写入批大小”。The formula is request size = single document size * write batch size. 如果文档大小太大,则默认行为将导致请求大小过大。If your document size is large, the default behavior will result in a request size that's too large. 可以优化写入批大小。You can tune the write batch size.

  • 解决方法:在复制活动接收器中,减小“写入批大小”值(默认值为 10000)。Resolution: In the copy activity sink, reduce the write batch size value (the default value is 10000).

错误消息:唯一索引约束冲突Error message: Unique index constraint violation

  • 故障描述:将数据复制到 Azure Cosmos DB 时,遇到以下错误:Symptoms: When you copy data into Azure Cosmos DB, you receive the following error:

    Message=Partition range id 0 | Failed to import mini-batch. Exception was Message: {"Errors":["Encountered exception while executing function. Exception = Error: {\"Errors\":[\"Unique index constraint violation.\"]}...

  • 原因: 有两个可能的原因:Cause: There are two possible causes:

    • 原因 1:如果写入行为是“插入”,则此错误表示源数据包含 ID 相同的行或对象。Cause 1: If you use Insert as the write behavior, this error means that your source data has rows or objects with same ID.
    • 原因 2:如果写入行为是“更新插入”,且你为容器另外设置了唯一键,则此错误表示源数据中有些行或对象对定义的唯一键来说具有不同的 ID 但相同的值。Cause 2: If you use Upsert as the write behavior and you set another unique key to the container, this error means that your source data has rows or objects with different IDs but the same value for the defined unique key.
  • 解决方法Resolution:

    • 如果是原因 1,请将“更新插入”设置为写入行为。For cause 1, set Upsert as the write behavior.
    • 如果是原因 2,请确保每个文档对定义的唯一键具有不同的值。For cause 2, make sure that each document has a different value for the defined unique key.

错误消息:请求速率太大Error message: Request rate is large

  • 故障描述:将数据复制到 Azure Cosmos DB 时,遇到以下错误:Symptoms: When you copy data into Azure Cosmos DB, you receive the following error:

    Type=Microsoft.Azure.Documents.DocumentClientException, Message=Message: {"Errors":["Request rate is large"]}

  • 原因:使用的请求单位 (RU) 数量大于在 Azure Cosmos DB 中配置的可用 RU 数量。Cause: The number of used request units (RUs) is greater than the available RUs configured in Azure Cosmos DB. 若要了解 Azure Cosmos DB 如何计算 RU,请参阅 Azure Cosmos DB 中的请求单位To learn how Azure Cosmos DB calculates RUs, see Request units in Azure Cosmos DB.

  • 解决方法:尝试以下两个解决方案之一:Resolution: Try either of the following two solutions:

    • 在 Azure Cosmos DB 中,增加容器 RU 的数量。Increase the container RUs number to a greater value in Azure Cosmos DB. 此解决方案将提高复制活动性能,但会在 Azure Cosmos DB 中产生更多成本。This solution will improve the copy activity performance, but it will incur more cost in Azure Cosmos DB.
    • 将“writeBatchSize”设置为更小的值(例如 1000),将“parallelCopies”也设置为更小的值(例如 1) 。Decrease writeBatchSize to a lesser value, such as 1000, and decrease parallelCopies to a lesser value, such as 1. 此解决方案会降低复制运行性能,但不会在 Azure Cosmos DB 中产生更多成本。This solution will reduce copy run performance, but it won't incur more cost in Azure Cosmos DB.

列映射中缺少列Columns missing in column mapping

  • 故障描述:为 Azure Cosmos DB 导入架构进行列映射时,缺少一些列。Symptoms: When you import a schema for Azure Cosmos DB for column mapping, some columns are missing.

  • 原因:数据工厂根据前 10 个 Azure Cosmos DB 文档推断架构。Cause: Data Factory infers the schema from the first 10 Azure Cosmos DB documents. 如果某些文档列或属性没有任何值,则数据工厂不会检测到架构,因此不显示架构。If some document columns or properties don't contain values, the schema isn't detected by Data Factory and consequently isn't displayed.

  • 解决方法:可按下面的代码所示优化查询,强制列值以空值显示在结果集中。Resolution: You can tune the query as shown in the following code to force the column values to be displayed in the result set with empty values. 假设前 10 个文档中缺少“不可能”列。Assume that the impossible column is missing in the first 10 documents). 或者,可以手动添加要映射的列。Alternatively, you can manually add the column for mapping.

    select c.company, c.category, c.comments, (c.impossible??'') as impossible from c
    

错误消息:读取器的 GuidRepresentation 为 CSharpLegacyError message: The GuidRepresentation for the reader is CSharpLegacy

  • 故障描述:使用通用唯一标识符 (UUID) 字段从 Azure Cosmos DB MongoAPI 或 MongoDB 复制数据时,遇到以下错误:Symptoms: When you copy data from Azure Cosmos DB MongoAPI or MongoDB with the universally unique identifier (UUID) field, you receive the following error:

    Failed to read data via MongoDB client., Source=Microsoft.DataTransfer.Runtime.MongoDbV2Connector,Type=System.FormatException, Message=The GuidRepresentation for the reader is CSharpLegacy which requires the binary sub type to be UuidLegacy not UuidStandard.,Source=MongoDB.Bson,’“,

  • 原因:有两种方式来用二进制 JSON (BSON) 表示 UUID:UuidStardard 和 UuidLegacy。Cause: There are two ways to represent the UUID in Binary JSON (BSON): UuidStardard and UuidLegacy. 默认使用 UuidLegacy 来读取数据。By default, UuidLegacy is used to read data. 如果 MongoDB 中的 UUID 数据是 UuidStandard,则会遇到错误。You will receive an error if your UUID data in MongoDB is UuidStandard.

  • 解决方法:在 MongoDB 连接字符串中,添加 uuidRepresentation=standard 选项。Resolution: In the MongoDB connection string, add the uuidRepresentation=standard option. 有关详细信息,请参阅 MongoDB 连接字符串For more information, see MongoDB connection string.

Azure Cosmos DB (SQL API)Azure Cosmos DB (SQL API)

错误代码:CosmosDbSqlApiOperationFailedError code: CosmosDbSqlApiOperationFailed

  • 消息CosmosDbSqlApi operation Failed. ErrorMessage: %msg;.Message: CosmosDbSqlApi operation Failed. ErrorMessage: %msg;.

  • 原因:CosmosDbSqlApi 操作存在问题。Cause: A problem with the CosmosDbSqlApi operation.

  • 建议:若要查看错误详细信息,请参阅 Azure Cosmos DB 帮助文档Recommendation: To check the error details, see Azure Cosmos DB help document. 如需更多帮助,请联系 Azure Cosmos DB 团队。For further help, contact the Azure Cosmos DB team.

Azure Data Lake Storage Gen2Azure Data Lake Storage Gen2

错误代码:ADLSGen2OperationFailedError code: ADLSGen2OperationFailed

  • 消息:ADLS Gen2 operation failed for: %adlsGen2Message;.%exceptionData;.Message: ADLS Gen2 operation failed for: %adlsGen2Message;.%exceptionData;.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    如果该错误是由 Azure Data Lake Storage Gen2 引发的,则表明某个操作失败。If Azure Data Lake Storage Gen2 throws error indicating some operation failed. 请查看 Azure Data Lake Storage Gen2 引发的错误的详细消息。Check the detailed error message thrown by Azure Data Lake Storage Gen2. 如果错误是暂时性故障,请重试该操作。If the error is a transient failure, retry the operation. 如需更多帮助,请联系 Azure 存储支持部门并提供错误消息中的请求 ID。For further help, contact Azure Storage support, and provide the request ID in error message.
    如果错误消息包含“禁止”这一字符串,则你使用的服务主体或托管标识可能没有足够的权限访问 Azure Data Lake Storage Gen2。If the error message contains the string "Forbidden", the service principal or managed identity you use might not have sufficient permission to access Azure Data Lake Storage Gen2. 若要解决此错误,请参阅使用 Azure 数据工厂在 Azure Data Lake Storage Gen2 中复制和转换数据To troubleshoot this error, see Copy and transform data in Azure Data Lake Storage Gen2 by using Azure Data Factory.
    如果错误消息包含字符串“InternalServerError”,则该错误是由 Azure Data Lake Storage Gen2 返回的。If the error message contains the string "InternalServerError", the error is returned by Azure Data Lake Storage Gen2. 此错误可能是由暂时性故障导致的。The error might be caused by a transient failure. 如果是,请重试操作;If so, retry the operation. 如果问题仍然存在,请联系 Azure 存储支持部门并提供错误消息中的请求 ID。If the issue persists, contact Azure Storage support and provide the request ID from the error message.

“请求 Azure Data Lake Storage Gen2 帐户导致超时”错误Request to Azure Data Lake Storage Gen2 account caused a timeout error

  • 消息Message:

    • 错误代码 = UserErrorFailedBlobFSOperationError Code = UserErrorFailedBlobFSOperation
    • 错误消息 = BlobFS operation failed for: A task was canceled.Error Message = BlobFS operation failed for: A task was canceled.
  • 原因:此问题是由 Azure Data Lake Storage Gen2 接收器超时错误引起的,此错误通常发生在自承载集成运行时 (IR) 计算机上。Cause: The issue is caused by the Azure Data Lake Storage Gen2 sink timeout error, which usually occurs on the Self-hosted Integration Runtime (IR) machine.

  • 建议Recommendation:

    • 如果可能,请将自承载 IR 计算机和目标 Azure Data Lake Storage Gen2 帐户置于同一区域中。Place your Self-hosted IR machine and target Azure Data Lake Storage Gen2 account in the same region, if possible. 这可避免随机超时错误,还可提高性能。This can help avoid a random timeout error and produce better performance.

    • 检查是否有特殊的网络设置(例如 ExpressRoute),并确保网络具有足够的带宽。Check whether there's a special network setting, such as ExpressRoute, and ensure that the network has enough bandwidth. 建议在总体带宽较低时调低自承载 IR 并发作业设置。We suggest that you lower the Self-hosted IR concurrent jobs setting when the overall bandwidth is low. 这样做有助于避免跨多个并发作业的网络资源竞争。Doing so can help avoid network resource competition across multiple concurrent jobs.

    • 如果文件大小适中或较小,请为非二进制复制使用较小的块大小,以缓解此类超时错误。If the file size is moderate or small, use a smaller block size for nonbinary copy to mitigate such a timeout error. 有关详细信息,请参阅 Blob 存储放置块For more information, see Blob Storage Put Block.

      若要指定自定义块大小,请在 JSON 文件编辑器中编辑属性,如下所示:To specify the custom block size, edit the property in your JSON file editor as shown here:

      "sink": {
          "type": "DelimitedTextSink",
          "storeSettings": {
              "type": "AzureBlobFSWriteSettings",
              "blockSizeInMB": 8
          }
      }
      

Azure 文件存储Azure Files storage

错误代码:AzureFileOperationFailedError code: AzureFileOperationFailed

  • 消息Azure File operation Failed. Path: %path;. ErrorMessage: %msg;.Message: Azure File operation Failed. Path: %path;. ErrorMessage: %msg;.

  • 原因:Azure 文件存储操作存在问题。Cause: A problem with the Azure Files storage operation.

  • 建议:若要查看错误详细信息,请参阅 Azure 文件帮助Recommendation: To check the error details, see Azure Files help. 如需更多帮助,请联系 Azure 文件存储团队。For further help, contact the Azure Files team.

Azure Synapse Analytics、Azure SQL 数据库和 SQL ServerAzure Synapse Analytics, Azure SQL Database, and SQL Server

错误代码:SqlFailedToConnectError code: SqlFailedToConnect

  • 消息Cannot connect to SQL Database: '%server;', Database: '%database;', User: '%user;'. Check the linked service configuration is correct, and make sure the SQL Database firewall allows the integration runtime to access.Message: Cannot connect to SQL Database: '%server;', Database: '%database;', User: '%user;'. Check the linked service configuration is correct, and make sure the SQL Database firewall allows the integration runtime to access.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    对于 Azure SQL,如果错误消息包含字符串“SqlErrorNumber=47073”,则表示在连接设置中拒绝公共网络访问。For Azure SQL, if the error message contains the string "SqlErrorNumber=47073", it means that public network access is denied in the connectivity setting. 有关详细信息,请参阅 Azure SQL 连接设置For more information, see Azure SQL connectivity settings.
    对于 Azure SQL,如果错误消息包含 SQL 错误代码(例如“SqlErrorNumber=[errorcode]”),请查看 Azure SQL 疑难解答指南。For Azure SQL, if the error message contains an SQL error code such as "SqlErrorNumber=[errorcode]", see the Azure SQL troubleshooting guide. 有关建议,请参阅排查 Azure SQL 数据库和 Azure SQL 托管实例的连接问题和其他错误For a recommendation, see Troubleshoot connectivity issues and other errors with Azure SQL Database and Azure SQL Managed Instance.
    检查端口 1433 是否在防火墙允许列表中。Check to see whether port 1433 is in the firewall allow list. 有关详细信息,请参阅 SQL Server 使用的端口For more information, see Ports used by SQL Server.
    如果错误消息包含字符串“SqlException”,则该错误是由 SQL 数据库引发的,表示某个特定操作失败。If the error message contains the string "SqlException", SQL Database the error indicates that some specific operation failed. 有关详细信息,请按数据库引擎错误中的 SQL 错误代码进行搜索。For more information, search by SQL error code in Database engine errors. 如需更多帮助,请联系 Azure SQL 支持部门。For further help, contact Azure SQL support.
    如果这是暂时性问题(例如网络连接不稳定),请在活动策略中添加重试操作来进行缓解。If this is a transient issue (for example, an instable network connection), add retry in the activity policy to mitigate. 有关详细信息,请参阅 Azure 数据工厂中的管道和活动For more information, see Pipelines and activities in Azure Data Factory.
    如果错误消息包含“不允许 IP 地址为 '…' 的客户端访问服务器”这一字符串,并且你正在尝试连接到 Azure SQL 数据库,则该错误通常是由 Azure SQL 数据库防火墙问题引起的。If the error message contains the string "Client with IP address '...' is not allowed to access the server", and you're trying to connect to Azure SQL Database, the error is usually caused by an Azure SQL Database firewall issue. 在 Azure SQL Server 防火墙配置中,启用“允许 Azure 服务和资源访问此服务器”选项。In the Azure SQL Server firewall configuration, enable the Allow Azure services and resources to access this server option. 有关详细信息,请参阅 Azure SQL 数据库和 Azure Synapse IP 防火墙规则For more information, see Azure SQL Database and Azure Synapse IP firewall rules.

错误代码:SqlOperationFailedError code: SqlOperationFailed

  • 消息A database operation failed. Please search error to get more details.Message: A database operation failed. Please search error to get more details.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    如果错误消息包含字符串“SqlException”,则该错误是由 SQL 数据库的,表示某个特定操作失败。If the error message contains the string "SqlException", SQL Database throws an error indicating some specific operation failed. 如果 SQL 错误不明确,请尝试将数据库更改为最新的兼容性级别“150”。If the SQL error is not clear, try to alter the database to the latest compatibility level '150'. 它可能会引发最新版本 SQL 错误。It can throw the latest version SQL errors. 有关详细信息,请参阅本文档For more information, see the documentation.
    若要详细了解如何排查 SQL 问题,请按数据库引擎错误中的 SQL 错误代码进行搜索。For more information about troubleshooting SQL issues, search by SQL error code in Database engine errors. 如需更多帮助,请联系 Azure SQL 支持部门。For further help, contact Azure SQL support.
    如果错误消息包含字符串“PdwManagedToNativeInteropException”,则这通常是由于源列和接收器列的大小不匹配导致的。If the error message contains the string "PdwManagedToNativeInteropException", it's usually caused by a mismatch between the source and sink column sizes. 请检查源列和接收器列的大小。Check the size of both the source and sink columns. 如需更多帮助,请联系 Azure SQL 支持部门。For further help, contact Azure SQL support.
    如果错误消息包含字符串“InvalidOperationException”,则通常是由于输入数据无效导致的。If the error message contains the string "InvalidOperationException", it's usually caused by invalid input data. 若要确定是哪一行遇到了问题,请在复制活动上启用容错功能,该功能可将有问题的行重定向到存储,以便进一步调查。To identify which row has encountered the problem, enable the fault tolerance feature on the copy activity, which can redirect problematic rows to the storage for further investigation. 有关详细信息,请参阅 Azure 数据工厂中复制活动的容错For more information, see Fault tolerance of copy activity in Azure Data Factory.

错误代码:SqlUnauthorizedAccessError code: SqlUnauthorizedAccess

  • 消息Cannot connect to '%connectorName;'. Detail Message: '%message;'Message: Cannot connect to '%connectorName;'. Detail Message: '%message;'

  • 原因:凭据不正确,或登录帐户无法访问 SQL 数据库。Cause: The credentials are incorrect or the login account can't access the SQL database.

  • 建议:请检查确保登录帐户有足够的权限访问 SQL 数据库。Recommendation: Check to ensure that the login account has sufficient permissions to access the SQL database.

错误代码:SqlOpenConnectionTimeoutError code: SqlOpenConnectionTimeout

  • 消息Open connection to database timeout after '%timeoutValue;' seconds.Message: Open connection to database timeout after '%timeoutValue;' seconds.

  • 原因:此问题可能是 SQL 数据库暂时性故障。Cause: The problem could be a SQL database transient failure.

  • 建议:请重试操作,使用更大的连接超时值更新链接的服务连接字符串。Recommendation: Retry the operation to update the linked service connection string with a larger connection timeout value.

错误代码:SqlAutoCreateTableTypeMapFailedError code: SqlAutoCreateTableTypeMapFailed

  • 消息Type '%dataType;' in source side cannot be mapped to a type that supported by sink side(column name:'%columnName;') in autocreate table.Message: Type '%dataType;' in source side cannot be mapped to a type that supported by sink side(column name:'%columnName;') in autocreate table.

  • 原因:自动创建表无法满足源要求。Cause: The autocreation table can't meet the source requirement.

  • 建议:更新映射中的列类型,或者在目标服务器中手动创建接收器表。Recommendation: Update the column type in mappings, or manually create the sink table in the target server.

错误代码:SqlDataTypeNotSupportedError code: SqlDataTypeNotSupported

  • 消息A database operation failed. Check the SQL errors.Message: A database operation failed. Check the SQL errors.

  • 原因:如果问题发生在 SQL 源中,并且错误与 SqlDateTime 溢出有关,则数据值超出逻辑类型范围 (1753/1/1 12:00:00 AM - 9999/12/31 11:59:59 PM)。Cause: If the issue occurs in the SQL source and the error is related to SqlDateTime overflow, the data value exceeds the logic type range (1/1/1753 12:00:00 AM - 12/31/9999 11:59:59 PM).

  • 建议:在源 SQL 查询中将类型强制转换为字符串,或在复制活动列映射中将列类型更改为“字符串”。Recommendation: Cast the type to the string in the source SQL query or, in the copy activity column mapping, change the column type to String.

  • 原因:如果问题发生在 SQL 接收器上,并且错误与 SqlDateTime 溢出有关,则数据值超出了接收器表中允许的范围。Cause: If the issue occurs on the SQL sink and the error is related to SqlDateTime overflow, the data value exceeds the allowed range in the sink table.

  • 建议:在接收器表中将相应的列类型更新为“datetime2”类型。Recommendation: Update the corresponding column type to the datetime2 type in the sink table.

错误代码:SqlInvalidDbStoredProcedureError code: SqlInvalidDbStoredProcedure

  • 消息The specified Stored Procedure is not valid. It could be caused by that the stored procedure doesn't return any data. Invalid Stored Procedure script: '%scriptName;'.Message: The specified Stored Procedure is not valid. It could be caused by that the stored procedure doesn't return any data. Invalid Stored Procedure script: '%scriptName;'.

  • 原因:指定的存储过程无效。Cause: The specified stored procedure is invalid. 原因可能是存储过程没有返回任何数据。The cause might be that the stored procedure doesn't return any data.

  • 建议:使用 SQL 工具验证存储过程。Recommendation: Validate the stored procedure by using SQL Tools. 请确保存储过程可返回数据。Make sure that the stored procedure can return data.

错误代码:SqlInvalidDbQueryStringError code: SqlInvalidDbQueryString

  • 消息The specified SQL Query is not valid. It could be caused by that the query doesn't return any data. Invalid query: '%query;'Message: The specified SQL Query is not valid. It could be caused by that the query doesn't return any data. Invalid query: '%query;'

  • 原因:指定的 SQL 查询无效。Cause: The specified SQL query is invalid. 原因可能是查询没有返回任何数据。The cause might be that the query doesn't return any data.

  • 建议:使用 SQL 工具验证 SQL 查询。Recommendation: Validate the SQL query by using SQL Tools. 确保查询可返回数据。Make sure that the query can return data.

错误代码:SqlInvalidColumnNameError code: SqlInvalidColumnName

  • 消息Column '%column;' does not exist in the table '%tableName;', ServerName: '%serverName;', DatabaseName: '%dbName;'.Message: Column '%column;' does not exist in the table '%tableName;', ServerName: '%serverName;', DatabaseName: '%dbName;'.

  • 原因:配置可能有误,找不到此列。Cause: The column can't be found because the configuration might be incorrect.

  • 建议:验证查询中的列、数据集中的结构和活动中的映射 。Recommendation: Verify the column in the query, structure in the dataset, and mappings in the activity.

错误代码:SqlBatchWriteTimeoutError code: SqlBatchWriteTimeout

  • 消息Timeouts in SQL write operation.Message: Timeouts in SQL write operation.

  • 原因:此问题可能是由 SQL 数据库暂时性故障导致的。Cause: The problem could be caused by a SQL database transient failure.

  • 建议:重试操作。Recommendation: Retry the operation. 如果仍然出现此问题,请联系 Azure SQL 支持部门。If the problem persists, contact Azure SQL support.

错误代码:SqlBatchWriteTransactionFailedError code: SqlBatchWriteTransactionFailed

  • 消息SQL transaction commits failed.Message: SQL transaction commits failed.

  • 原因:如果异常详细信息持续指示事务超时,则集成运行时和数据库之间的网络延迟高于默认阈值 30 秒。Cause: If exception details constantly indicate a transaction timeout, the network latency between the integration runtime and the database is greater than the default threshold of 30 seconds.

  • 建议:使用大于等于 120 的连接超时值更新 SQL 链接服务连接字符串,然后重新运行活动。Recommendation: Update the SQL-linked service connection string with a connection timeout value that's equal to or greater than 120 and rerun the activity.

  • 原因:如果异常详细信息间歇性地显示 SQL 连接已断开,则可能只是暂时性的网络故障或 SQL 数据库端问题。Cause: If the exception details intermittently indicate that the SQL connection is broken, it might be a transient network failure or a SQL database side issue.

  • 建议:重试活动并审阅 SQL 数据库端指标。Recommendation: Retry the activity and review the SQL database side metrics.

错误代码:SqlBulkCopyInvalidColumnLengthError code: SqlBulkCopyInvalidColumnLength

  • 消息SQL Bulk Copy failed due to receive an invalid column length from the bcp client.Message: SQL Bulk Copy failed due to receive an invalid column length from the bcp client.

  • 原因:SQL 大容量复制失败,因为它从大容量复制程序实用工具 (bcp) 客户端接收到无效的列长度。Cause: SQL Bulk Copy failed because it received an invalid column length from the bulk copy program utility (bcp) client.

  • 建议:若要确定是哪一行遇到了问题,请在复制活动上启用容错功能。Recommendation: To identify which row has encountered the problem, enable the fault tolerance feature on the copy activity. 这可将有问题的行重定向到存储,以供进一步调查。This can redirect problematic rows to the storage for further investigation. 有关详细信息,请参阅 Azure 数据工厂中复制活动的容错For more information, see Fault tolerance of copy activity in Azure Data Factory.

错误代码:SqlConnectionIsClosedError code: SqlConnectionIsClosed

  • 消息The connection is closed by SQL Database.Message: The connection is closed by SQL Database.

  • 原因:在高并发运行且服务器终止连接时,SQL 数据库关闭了 SQL 连接。Cause: The SQL connection is closed by the SQL database when a high concurrent run and the server terminate the connection.

  • 建议:重试连接。Recommendation: Retry the connection. 如果仍然出现此问题,请联系 Azure SQL 支持部门。If the problem persists, contact Azure SQL support.

错误消息:将字符串转换为唯一标识符失败Error message: Conversion failed when converting from a character string to uniqueidentifier

  • 故障描述:使用暂存复制和 PolyBase 将数据从表格数据源(例如 SQL Server)复制到 Azure Synapse Analytics 时,遇到以下错误:Symptoms: When you copy data from a tabular data source (such as SQL Server) into Azure Synapse Analytics using staged copy and PolyBase, you receive the following error:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Conversion failed when converting from a character string to uniqueidentifier...

  • 原因:Azure Synapse Analytics PolyBase 无法将空字符串转换为 GUID。Cause: Azure Synapse Analytics PolyBase can't convert an empty string to a GUID.

  • 解决方法:在复制活动接收器的 PolyBase 设置下,将“使用类型默认值”选项设置为 false。Resolution: In the copy activity sink, under PolyBase settings, set the use type default option to false.

错误消息:预期的数据类型:DECIMAL(x,x),违规值Error message: Expected data type: DECIMAL(x,x), Offending value

  • 故障描述:使用暂存复制和 PolyBase 将表格数据源(例如 SQL Server)中的数据复制到 Azure Synapse Analytics 中时,遇到以下错误:Symptoms: When you copy data from a tabular data source (such as SQL Server) into Azure Synapse Analytics by using staged copy and PolyBase, you receive the following error:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Query aborted-- the maximum reject threshold (0 rows) was reached while reading from an external source: 1 rows rejected out of total 415 rows processed. (/file_name.txt) Column ordinal: 18, Expected data type: DECIMAL(x,x), Offending value:..

  • 原因:Azure Synapse Analytics PolyBase 无法将空字符串(null 值)插入十进制列。Cause: Azure Synapse Analytics PolyBase can't insert an empty string (null value) into a decimal column.

  • 解决方法:在复制活动接收器的 PolyBase 设置下,将“使用类型默认值”选项设置为 false。Resolution: In the copy activity sink, under PolyBase settings, set the use type default option to false.

错误消息:Java 异常消息:HdfsBridge::CreateRecordReaderError message: Java exception message: HdfsBridge::CreateRecordReader

  • 故障描述:使用 PolyBase 将数据复制到 Azure Synapse Analytics 时,遇到以下错误:Symptoms: You copy data into Azure Synapse Analytics by using PolyBase and receive the following error:

    Message=110802;An internal DMS error occurred that caused this operation to fail. Details: Exception: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException, Message: Java exception raised on call to HdfsBridge_CreateRecordReader. Java exception message:HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.: Error [HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.] occurred while accessing external file.....

  • 原因:这可能是架构(总列宽)太大(大于 1 MB)导致的。Cause: The cause might be that the schema (total column width) is too large (larger than 1 MB). 通过添加所有列的大小来检查目标 Azure Synapse Analytics 表的架构:Check the schema of the target Azure Synapse Analytics table by adding the size of all columns:

    • Int = 4 字节Int = 4 bytes
    • Bigint = 8 字节Bigint = 8 bytes
    • Varchar(n)、char(n)、binary(n)、varbinary(n) = n 字节Varchar(n), char(n), binary(n), varbinary(n) = n bytes
    • Nvarchar(n)、nchar(n) = n*2 字节Nvarchar(n), nchar(n) = n*2 bytes
    • Date = 6 字节Date = 6 bytes
    • Datetime/(2)、smalldatetime = 16 字节Datetime/(2), smalldatetime = 16 bytes
    • Datetimeoffset = 20 字节Datetimeoffset = 20 bytes
    • Decimal = 19 字节Decimal = 19 bytes
    • Float = 8 字节Float = 8 bytes
    • Money = 8 字节Money = 8 bytes
    • Smallmoney = 4 字节Smallmoney = 4 bytes
    • Real = 4 字节Real = 4 bytes
    • Smallint = 2 字节Smallint = 2 bytes
    • Time = 12 字节Time = 12 bytes
    • Tinyint = 1 字节Tinyint = 1 byte
  • 解决方法Resolution:

    • 请将列宽减至 1 MB 以下。Reduce column width to less than 1 MB.
    • 或者,禁用 PolyBase 来使用批量插入方法。Or use a bulk insert approach by disabling PolyBase.

错误消息:不满足使用 HTTP 条件标头指定的条件Error message: The condition specified using HTTP conditional header(s) is not met

  • 故障描述:使用 SQL 查询从 Azure Synapse Analytics 提取数据时,遇到以下错误:Symptoms: You use SQL query to pull data from Azure Synapse Analytics and receive the following error:

    ...StorageException: The condition specified using HTTP conditional header(s) is not met...

  • 原因:Azure Synapse Analytics 在查询 Azure 存储中的外部表时遇到问题。Cause: Azure Synapse Analytics encountered an issue while querying the external table in Azure Storage.

  • 解决方法:在 SQL Server Management Studio (SSMS) 中运行相同的查询,并检查是否获得相同的结果。Resolution: Run the same query in SQL Server Management Studio (SSMS) and check to see whether you get the same result. 如果需要,请打开 Azure Synapse Analytics 的支持票证,并提供 Azure Synapse Analytics 服务器和数据库名称。If you do, open a support ticket to Azure Synapse Analytics and provide your Azure Synapse Analytics server and database name.

性能层等级较低,导致复制失败Performance tier is low and leads to copy failure

  • 故障描述:将数据复制到 Azure SQL 数据库时,遇到以下错误:Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.Symptoms: You copy data into Azure SQL Database and receive the following error: Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

  • 原因:Azure SQL 数据库 s1 已达到输入/输出 (I/O) 限制。Cause: Azure SQL Database s1 has hit input/output (I/O) limits.

  • 解决方法:升级 Azure SQL 数据库性能层可解决此问题。Resolution: Upgrade the Azure SQL Database performance tier to fix the issue.

找不到 SQL 表SQL table can't be found

  • 故障描述:将数据从混合复制到本地 SQL Server 表时,遇到以下错误:Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions.Symptoms: You copy data from hybrid into an on-premises SQL Server table and receive the following error:Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions.

  • 原因:当前的 SQL 帐户没有足够的权限来执行 .NET SqlBulkCopy.WriteToServer 发出的请求。Cause: The current SQL account doesn't have sufficient permissions to execute requests issued by .NET SqlBulkCopy.WriteToServer.

  • 解决方法:切换到权限更高的一个 SQL 帐户。Resolution: Switch to a more privileged SQL account.

错误消息:字符串或二进制数据被截断Error message: String or binary data is truncated

  • 故障描述:将数据复制到本地 Azure SQL Server 表时出错。Symptoms: An error occurs when you copy data into an on-premises Azure SQL Server table.

  • 原因:Cx SQL 表架构定义包含一个或多个长度小于预期值的列。Cause: The Cx SQL table schema definition has one or more columns with less length than expected.

  • 解决方法:请尝试以下操作来解决此问题:Resolution: To resolve the issue, try the following:

    1. 若要排查哪些行出现此问题,请应用 SQL 接收器容错,尤其是“redirectIncompatibleRowSettings”)。To troubleshoot which rows have the issue, apply SQL sink fault tolerance, especially "redirectIncompatibleRowSettings."

      备注

      容错可能需要额外的执行时间,这可能导致更高的成本。Fault tolerance might require additional execution time, which could lead to higher costs.

    2. 根据 SQL 表架构列长度仔细检查重定向的数据,查看哪些列需要更新。Double-check the redirected data against the SQL table schema column length to see which columns need to be updated.

    3. 相应地更新表架构。Update the table schema accordingly.

Azure 表存储Azure Table Storage

错误代码:AzureTableDuplicateColumnsFromSourceError code: AzureTableDuplicateColumnsFromSource

  • 消息Duplicate columns with same name '%name;' are detected from source. This is NOT supported by Azure Table Storage sink.Message: Duplicate columns with same name '%name;' are detected from source. This is NOT supported by Azure Table Storage sink.

  • 原因:源列重复可能由下列原因之一导致:Cause: Duplicated source columns might occur for one of the following reasons:

    • 将数据库用作源并应用表联接。You're using the database as a source and applied table joins.
    • 你具有标题行中列名重复的非结构化 CSV 文件。You have unstructured CSV files with duplicated column names in the header row.
  • 建议:仔细检查并根据需要修复源列。Recommendation: Double-check and fix the source columns, as necessary.

DB2DB2

错误代码:DB2DriverRunFailedError code: DB2DriverRunFailed

  • 消息Error thrown from driver. Sql code: '%code;'Message: Error thrown from driver. Sql code: '%code;'

  • 原因:如果错误消息包含字符串“SQLSTATE=51002 SQLCODE=-805”,请按照 使用 Azure 数据工厂从 DB2 复制数据中的提示操作。Cause: If the error message contains the string "SQLSTATE=51002 SQLCODE=-805", follow the "Tip" in Copy data from DB2 by using Azure Data Factory.

  • 建议:尝试在 packageCollection 属性中设置“NULLID”。Recommendation: Try to set "NULLID" in the packageCollection property.

带分隔符的文本格式Delimited text format

错误代码:DelimitedTextColumnNameNotAllowNullError code: DelimitedTextColumnNameNotAllowNull

  • 消息The name of column index %index; is empty. Make sure column name is properly specified in the header row.Message: The name of column index %index; is empty. Make sure column name is properly specified in the header row.

  • 原因:在活动中设置“firstRowAsHeader”时,第一行用作列名。Cause: When 'firstRowAsHeader' is set in the activity, the first row is used as the column name. 此错误表示第一行包含空值(例如“ColumnA, ColumnB”)。This error means that the first row contains an empty value (for example, 'ColumnA, ColumnB').

  • 建议:检查第一行,如果为空则修复值。Recommendation: Check the first row, and fix the value if it is empty.

错误代码:DelimitedTextMoreColumnsThanDefinedError code: DelimitedTextMoreColumnsThanDefined

  • 消息Error found when processing '%function;' source '%name;' with row number %rowCount;: found more columns than expected column count: %expectedColumnCount;.Message: Error found when processing '%function;' source '%name;' with row number %rowCount;: found more columns than expected column count: %expectedColumnCount;.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    有问题的行的列计数大于第一行的列计数。The problematic row's column count is larger than the first row's column count. 它可能是由于数据问题或列分隔符/引号字符设置有误而导致的。It might be caused by a data issue or incorrect column delimiter or quote char settings. 请从错误消息中获取行计数,检查行的列,并修复数据。Get the row count from the error message, check the row's column, and fix the data.
    如果错误消息中预期的列计数为“1”,则你可能指定了错误的压缩或格式设置,这导致数据工厂错误地分析了文件。If the expected column count is "1" in an error message, you might have specified wrong compression or format settings, which caused Data Factory to parse your files incorrectly. 请检查格式设置,确保它们与源文件匹配。Check the format settings to make sure they match your source files.
    如果源是文件夹,则指定文件夹下的文件可能具有不同的架构。If your source is a folder, the files under the specified folder might have a different schema. 请确保指定文件夹中的文件具有相同的架构。Make sure that the files in the specified folder have an identical schema.

Dynamics 365、Common Data Service 和 Dynamics CRMDynamics 365, Common Data Service, and Dynamics CRM

错误代码:DynamicsCreateServiceClientErrorError code: DynamicsCreateServiceClientError

  • 消息This is a transient issue on Dynamics server side. Try to rerun the pipeline.Message: This is a transient issue on Dynamics server side. Try to rerun the pipeline.

  • 原因:此问题是 Dynamics 服务器端的暂时性问题。Cause: The problem is a transient issue on the Dynamics server side.

  • 建议:重新运行管道。Recommendation: Rerun the pipeline. 如果再次失败,请尝试降低并行度。If it fails again, try to reduce the parallelism. 如果问题仍然存在,请联系 Azure 支持部门。If the problem persists, contact Dynamics support.

导入架构或预览数据时缺少列Missing columns when you import a schema or preview data

  • 故障描述:导入架构或预览数据时,缺少某些列。Symptoms: Some columns are missing when you import a schema or preview data. 错误消息:The valid structure information (column name and type) are required for Dynamics source.Error message: The valid structure information (column name and type) are required for Dynamics source.

  • 原因:此问题是设计使然,因为数据工厂无法显示前 10 条记录中不包含值的列。Cause: This issue is by design, because Data Factory is unable to show columns that contain no values in the first 10 records. 请确保添加的列格式正确。Make sure that the columns you've added are in the correct format.

  • 建议:在“映射”选项卡中手动添加列。Recommendation: Manually add the columns in the mapping tab.

错误代码:DynamicsMissingTargetForMultiTargetLookupFieldError code: DynamicsMissingTargetForMultiTargetLookupField

  • 消息Cannot find the target column for multi-target lookup field: '%fieldName;'.Message: Cannot find the target column for multi-target lookup field: '%fieldName;'.

  • 原因:源或列映射中不存在目标列。Cause: The target column doesn't exist in the source or in the column mapping.

  • 建议Recommendation:

    1. 请确保源包含目标列。Make sure that the source contains the target column.
    2. 在列映射中添加目标列。Add the target column in the column mapping. 确保接收器列的格式为“{fieldName}@EntityReference”。Ensure that the sink column is in the format {fieldName}@EntityReference.

错误代码:DynamicsInvalidTargetForMultiTargetLookupFieldError code: DynamicsInvalidTargetForMultiTargetLookupField

  • 消息:The provided target: '%targetName;' is not a valid target of field: '%fieldName;'. Valid targets are: '%validTargetNames;'Message: The provided target: '%targetName;' is not a valid target of field: '%fieldName;'. Valid targets are: '%validTargetNames;'

  • 原因: 提供了错误的实体名称作为多目标查找字段的目标实体。Cause: A wrong entity name is provided as target entity of a multi-target lookup field.

  • 建议:为多目标查找字段提供有效的实体名称。Recommendation: Provide a valid entity name for the multi-target lookup field.

错误代码:DynamicsInvalidTypeForMultiTargetLookupFieldError code: DynamicsInvalidTypeForMultiTargetLookupField

  • 消息The provided target type is not a valid string. Field: '%fieldName;'.Message: The provided target type is not a valid string. Field: '%fieldName;'.

  • 原因:目标列中的值不是字符串。Cause: The value in the target column is not a string.

  • 建议:在“多目标查找目标”列中提供有效字符串。Recommendation: Provide a valid string in the multi-target lookup target column.

错误代码:DynamicsFailedToRequetServerError code: DynamicsFailedToRequetServer

  • 消息The Dynamics server or the network is experiencing issues. Check network connectivity or check Dynamics server log for more details.Message: The Dynamics server or the network is experiencing issues. Check network connectivity or check Dynamics server log for more details.

  • 原因:Dynamics 服务器不稳定或无法访问,或者网络出现问题。Cause: The Dynamics server is instable or inaccessible, or the network is experiencing issues.

  • 建议:有关详细信息,请检查网络连接或查看 Dynamics 服务器日志。Recommendation: For more details, check network connectivity or check the Dynamics server log. 如需更多帮助,请联系 Dynamics 支持部门。For further help, contact Dynamics support.

错误代码:DynamicsFailedToConnectError code: DynamicsFailedToConnect

  • 消息Failed to connect to Dynamics: %message;Message: Failed to connect to Dynamics: %message;

  • 原因:如果在错误消息中看到 Office 365 auth with OAuth failed,则表明服务器可能有一些与 OAuth 不兼容的配置。Cause: If you see Office 365 auth with OAuth failed in the error message, it means that your server might have some configurations not compatible with OAuth.

  • 建议Recommendation:

    1. 若要获取帮助,请联系 Dynamics 支持团队并提供详细的错误消息。Contact Dynamics support team with the detailed error message for help.
    2. 使用服务主体身份验证,你可以参考以下文章:示例:使用 Azure AD 服务主体和证书身份验证的 Dynamics 联机Use the service principal authentication, and you can refer to this article: Example: Dynamics online using Azure AD service-principal and certificate authentication.
  • 原因:如果在错误消息中看到 Unable to retrieve authentication parameters from the serviceUri,则表示你输入了错误的 Dynamics 服务 URL 或代理/防火墙来拦截流量。Cause: If you see Unable to retrieve authentication parameters from the serviceUri in the error message, it means that either you input the wrong Dynamics service URL or proxy/firewall to intercept the traffic.

  • 建议Recommendation:

    1. 请确保已将正确的服务 URI 置于链接服务中。Make sure you have put the correct service URI in the linked service.
    2. 如果使用自承载 IR,请确保防火墙/代理不会拦截对 Dynamics 服务器的请求。If you use the Self Hosted IR, make sure that the firewall/proxy does not intercept the requests to the Dynamics server.
  • 原因:如果在错误消息中看到 An unsecured or incorrectly secured fault was received from the other party,则表示从服务器端获得意外响应。Cause: If you see An unsecured or incorrectly secured fault was received from the other party in the error message, it means that unexpected responses were gotten from the server side.

  • 建议Recommendation:

    1. 如果使用 Office 365 身份验证,请确保用户名和密码正确。Make sure your username and password are correct if you use the Office 365 authentication.
    2. 请确保已输入正确的服务 URI。Make sure you have input the correct service URI.
    3. 如果使用区域 CRM URL(URL 在“crm”后有一个数字),请确保使用正确的区域标识符。If you use regional CRM URL (URL has a number after 'crm'), make sure you use the correct regional identifier.
    4. 请联系 Dynamics 支持团队以获得帮助。Contact the Dynamics support team for help.
  • 原因:如果在错误消息中看到 No Organizations Found,则表示你的组织名有误,或者你在服务 URL 中使用了错误的 CRM 区域标识符。Cause: If you see No Organizations Found in the error message, it means that either your organization name is wrong or you used a wrong CRM region identifier in the service URL.

  • 建议Recommendation:

    1. 请确保已输入正确的服务 URI。Make sure you have input the correct service URI.
    2. 如果使用区域 CRM URL(URL 在“crm”后有一个数字),请确保使用正确的区域标识符。If you use the regional CRM URL (URL has a number after 'crm'), make sure that you use the correct regional identifier.
    3. 请联系 Dynamics 支持团队以获得帮助。Contact the Dynamics support team for help.
  • 原因:如果看到 401 Unauthorized 和 AAD 相关的错误消息,则表示服务主体存在问题。Cause: If you see 401 Unauthorized and AAD-related error message, it means that there's an issue with the service principal.

  • 建议:按照错误消息中的指导解决服务主体问题。Recommendation: Follow the guidance in the error message to fix the service principal issue.

  • 原因:对于其他错误,问题通常出在服务器端。Cause: For other errors, usually the issue is on the server side.

  • 建议:使用 XrmToolBox 建立连接。Recommendation: Use XrmToolBox to make connection. 如果错误仍然存在,请与 Dynamics 支持团队联系以获取帮助。If the error persists, contact the Dynamics support team for help.

错误代码:DynamicsOperationFailedError code: DynamicsOperationFailed

  • 消息Dynamics operation failed with error code: %code;, error message: %message;.Message: Dynamics operation failed with error code: %code;, error message: %message;.

  • 原因:此操作在服务器端失败。Cause: The operation failed on the server side.

  • 建议:从错误消息 Dynamics operation failed with error code: {code} 中提取 Dynamics 操作的错误代码,并参阅 Web 服务错误代码一文以了解更多详细信息。Recommendation: Extract the error code of the dynamics operation from the error message: Dynamics operation failed with error code: {code}, and refer to the article Web service error codes for more detailed information. 如有必要,可联系 Dynamics 支持团队。You can contact the Dynamics support team if necessary.

错误代码:DynamicsInvalidFetchXmlError code: DynamicsInvalidFetchXml

  • 消息The Fetch Xml query specified is invalid.Message: The Fetch Xml query specified is invalid.

  • 原因:提取 XML 中存在错误。Cause: There is an error existed in the fetch XML.

  • 建议:修复提取 XML 中的错误。Recommendation: Fix the error in the fetch XML.

错误代码:DynamicsMissingKeyColumnsError code: DynamicsMissingKeyColumns

  • 消息Input DataSet must contain keycolumn(s) in Upsert/Update scenario. Missing key column(s): %column;Message: Input DataSet must contain keycolumn(s) in Upsert/Update scenario. Missing key column(s): %column;

  • 原因:源数据不包含接收器实体的键列。Cause: The source data does not contain the key column for the sink entity.

  • 建议:确认键列在源数据中或将源列映射到接收器实体上的键列。Recommendation: Confirm that key columns are in the source data or map a source column to the key column on the sink entity.

错误代码:DynamicsPrimaryKeyMustBeGuidError code: DynamicsPrimaryKeyMustBeGuid

  • 消息The primary key attribute '%attribute;' must be of type guid.Message: The primary key attribute '%attribute;' must be of type guid.

  • 原因:主键列的类型不是“Guid”。Cause: The type of the primary key column is not 'Guid'.

  • 建议:请确保源数据中的主键列是“Guid”类型。Recommendation: Make sure that the primary key column in the source data is of 'Guid' type.

错误代码:DynamicsAlternateKeyNotFoundError code: DynamicsAlternateKeyNotFound

  • 消息Cannot retrieve key information of alternate key '%key;' for entity '%entity;'.Message: Cannot retrieve key information of alternate key '%key;' for entity '%entity;'.

  • 原因:提供的备用键不存在,这可能是由错误的键名称或权限不足所引起。Cause: The provided alternate key does not exist, which may be caused by wrong key names or insufficient permissions.

  • 建议Recommendation:

    1. 更正键名称中的拼写错误。Fix typos in the key name.
    2. 请确保对该实体具有足够的权限。Make sure that you have sufficient permissions on the entity.

错误代码:DynamicsInvalidSchemaDefinitionError code: DynamicsInvalidSchemaDefinition

  • 消息The valid structure information (column name and type) are required for Dynamics source.Message: The valid structure information (column name and type) are required for Dynamics source.

  • 原因:列映射中的接收器列缺少“type”属性。Cause: Sink columns in the column mapping miss the 'type' property.

  • 建议:使用门户上的 JSON 编辑器,可在列映射中将“type”属性添加到这些列。Recommendation: You can add the 'type' property to those columns in the column mapping by using JSON editor on the portal.

FTPFTP

错误代码:FtpFailedToConnectToFtpServerError code: FtpFailedToConnectToFtpServer

  • 消息Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.Message: Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • 原因:对 FTP 服务器使用的链接服务类型可能不正确,例如使用安全 FTP (SFTP) 链接服务连接到 FTP 服务器。Cause: An incorrect linked service type might be used for the FTP server, such as using the Secure FTP (SFTP) linked service to connect to an FTP server.

  • 建议:检查目标服务器的端口。Recommendation: Check the port of the target server. FTP 使用端口 21。FTP uses port 21.

HTTPHTTP

错误代码:HttpFileFailedToReadError code: HttpFileFailedToRead

  • 消息Failed to read data from http server. Check the error from http server:%message;Message: Failed to read data from http server. Check the error from http server:%message;

  • 原因:当 Azure 数据工厂与 HTTP 服务器通信,但 HTTP 请求操作失败时,出现此错误。Cause: This error occurs when Azure Data Factory talks to the HTTP server, but the HTTP request operation fails.

  • 建议:查看错误消息中的 HTTP 状态代码,并修复远程服务器问题。Recommendation: Check the HTTP status code in the error message, and fix the remote server issue.

OracleOracle

错误代码:ArgumentOutOfRangeExceptionError code: ArgumentOutOfRangeException

  • 消息:Hour, Minute, and Second parameters describe an un-representable DateTime.Message: Hour, Minute, and Second parameters describe an un-representable DateTime.

  • 原因:在数据工厂中,支持的 DateTime 值范围为 0001-01-01 00:00:00 至 9999-12-31 23:59:59。Cause: In Data Factory, DateTime values are supported in the range from 0001-01-01 00:00:00 to 9999-12-31 23:59:59. 但是,Oracle 支持范围更广的 DateTime 值(例如公元前世纪或 min/sec>59),这导致数据工厂失败。However, Oracle supports a wider range of DateTime values, such as the BC century or min/sec>59, which leads to failure in Data Factory.

  • 建议Recommendation:

    若要查看 Oracle 中的值是否在数据工厂的范围内,请运行 select dump(<column name>)To see whether the value in Oracle is in the range of Data Factory, run select dump(<column name>).

    若要了解结果中的字节序列,请参阅如何在 Oracle 中存储日期?To learn the byte sequence in the result, see How are dates stored in Oracle?.

ORC 格式ORC format

错误代码:OrcJavaInvocationExceptionError code: OrcJavaInvocationException

  • 消息An error occurred when invoking Java, message: %javaException;.Message: An error occurred when invoking Java, message: %javaException;.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    如果错误消息包含字符串时“java.lang.OutOfMemory”、“Java 堆空间”和“doubleCapacity”,这通常是 Integration Runtime 旧版本中的内存管理问题。When the error message contains the strings "java.lang.OutOfMemory", "Java heap space", and "doubleCapacity", it's usually a memory management issue in an old version of integration runtime. 如果使用自承载集成运行时,则建议升级到最新版本。If you're using Self-hosted Integration Runtime, we recommend that you upgrade to the latest version.
    如果错误消息包含字符串“java.lang.OutOfMemory”,则集成运行时没有足够的资源来处理文件。When the error message contains the string "java.lang.OutOfMemory", the integration runtime doesn't have enough resources to process the files. 限制集成运行时中的并发运行。Limit the concurrent runs on the integration runtime. 对于自承载 IR,请纵向扩展到具有 8 GB 或更大内存的强大计算机。For Self-hosted IR, scale up to a powerful machine with memory equal to or larger than 8 GB.
    如果错误消息包含字符串“NullPointerReference”,则可能是暂时性错误导致的。When the error message contains the string "NullPointerReference", the cause might be a transient error. 请重试操作即可。Retry the operation. 如果问题仍然存在,请联系支持部门。If the problem persists, contact support.
    如果错误消息包含字符串“BufferOverflowException”,则可能是暂时性错误导致的。When the error message contains the string "BufferOverflowException", the cause might be a transient error. 请重试操作即可。Retry the operation. 如果问题仍然存在,请联系支持部门。If the problem persists, contact support.
    如果错误消息包含字符串“java.lang.ClassCastException:org.apache.hadoop.hive.serde2.io.HiveCharWritable can't be cast to org.apache.hadoop.io.Text”,则可能是 Java 运行时内部的类型转换问题导致的。When the error message contains the string "java.lang.ClassCastException:org.apache.hadoop.hive.serde2.io.HiveCharWritable can't be cast to org.apache.hadoop.io.Text", the cause might be a type conversion issue inside Java Runtime. 通常,这意味着在 Java 运行时中无法正常处理源数据。Usually, it means that the source data can't be handled well in Java Runtime. 这是数据问题。This is a data issue. 请尝试在 ORC 格式的数据中使用字符串而不是 char 或 varchar。Try to use a string instead of char or varchar in ORC format data.

错误代码:OrcDateTimeExceedLimitError code: OrcDateTimeExceedLimit

  • 消息The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.Message: The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.

  • 原因:如果 datetime 值为“0001-01-01 00:00:00”,则可能是由于 儒略历和格里历之间的差异导致的。Cause: If the datetime value is '0001-01-01 00:00:00', it could be caused by the differences between the Julian calendar and the Gregorian calendar.

  • 建议:检查时钟周期值,并避免使用日期/时间值“0001-01-01 00:00:00”。Recommendation: Check the ticks value and avoid using the datetime value '0001-01-01 00:00:00'.

Parquet 格式Parquet format

错误代码:ParquetJavaInvocationExceptionError code: ParquetJavaInvocationException

  • 消息An error occurred when invoking java, message: %javaException;.Message: An error occurred when invoking java, message: %javaException;.

  • 原因和建议:此错误可能由不同的原因导致。Causes and recommendations: Different causes may lead to this error. 请查看以下列表,了解可能的原因分析和相关建议。Check below list for possible cause analysis and related recommendation.

    原因分析Cause analysis 建议Recommendation
    如果错误消息包含字符串时“java.lang.OutOfMemory”、“Java 堆空间”和“doubleCapacity”,这通常是 Integration Runtime 旧版本中的内存管理问题。When the error message contains the strings "java.lang.OutOfMemory", "Java heap space", and "doubleCapacity", it's usually a memory management issue in an old version of Integration Runtime. 如果使用的是自承载 IR,而且版本低于 3.20.7159.1,建议升级到最新版本。If you are using Self-hosted IR and the version is earlier than 3.20.7159.1, we recommend that you upgrade to the latest version.
    如果错误消息包含字符串“java.lang.OutOfMemory”,则集成运行时没有足够的资源来处理文件。When the error message contains the string "java.lang.OutOfMemory", the integration runtime doesn't have enough resources to process the files. 限制集成运行时中的并发运行。Limit the concurrent runs on the integration runtime. 对于自承载 IR,请纵向扩展到具有 8 GB 或更大内存的强大计算机。For Self-hosted IR, scale up to a powerful machine with memory that's equal to or greater than 8 GB.
    如果错误消息包含字符串“NullPointerReference”,则可能是暂时性错误。When the error message contains the string "NullPointerReference", it might be a transient error. 请重试操作即可。Retry the operation. 如果问题仍然存在,请联系支持部门。If the problem persists, contact support.

错误代码:ParquetInvalidFileError code: ParquetInvalidFile

  • 消息File is not a valid Parquet file.Message: File is not a valid Parquet file.

  • 原因:这是一个 Parquet 文件问题。Cause: This is a Parquet file issue.

  • 建议:检查输入是否为有效的 Parquet 文件。Recommendation: Check to see whether the input is a valid Parquet file.

错误代码:ParquetNotSupportedTypeError code: ParquetNotSupportedType

错误代码:ParquetMissedDecimalPrecisionScaleError code: ParquetMissedDecimalPrecisionScale

  • 消息Decimal Precision or Scale information is not found in schema for column: %column;.Message: Decimal Precision or Scale information is not found in schema for column: %column;.

  • 原因:分析了数字的精度和小数位数,但未提供此类信息。Cause: The number precision and scale were parsed, but no such information was provided.

  • 建议:源没有返回正确的精度和小数位数信息。Recommendation: The source doesn't return the correct precision and scale information. 有关信息,请查看问题列。Check the issue column for the information.

错误代码:ParquetInvalidDecimalPrecisionScaleError code: ParquetInvalidDecimalPrecisionScale

  • 消息:Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.Message: Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.

  • 原因: 架构无效。Cause: The schema is invalid.

  • 建议:检查问题列的精度和小数位数。Recommendation: Check the issue column for precision and scale.

错误代码:ParquetColumnNotFoundError code: ParquetColumnNotFound

  • 消息Column %column; does not exist in Parquet file.Message: Column %column; does not exist in Parquet file.

  • 原因:源架构与接收器架构不匹配。Cause: The source schema is a mismatch with the sink schema.

  • 建议:检查活动中的映射。Recommendation: Check the mappings in the activity. 确保源列可映射到正确的接收器列。Make sure that the source column can be mapped to the correct sink column.

错误代码:ParquetInvalidDataFormatError code: ParquetInvalidDataFormat

错误代码:ParquetDataCountNotMatchColumnCountError code: ParquetDataCountNotMatchColumnCount

  • 消息The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.Message: The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.

  • 原因:源列计数和接收器列计数不匹配。Cause: A mismatch between the source column count and the sink column count.

  • 建议:仔细检查,确保源列计数与“映射”中的接收器列计数相同。Recommendation: Double-check to ensure that the source column count is same as the sink column count in 'mapping'.

错误代码:ParquetDataTypeNotMatchColumnTypeError code: ParquetDataTypeNotMatchColumnType

  • 消息The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.Message: The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.

  • 原因:源中的数据无法转换为接收器中定义的类型。Cause: The data from the source can't be converted to the type that's defined in the sink.

  • 建议:在 mapping.sink 中指定正确的类型。Recommendation: Specify a correct type in mapping.sink.

错误代码:ParquetBridgeInvalidDataError code: ParquetBridgeInvalidData

  • 消息%message;Message: %message;

  • 原因:数据值超出了限制。Cause: The data value has exceeded the limit.

  • 建议:重试操作。Recommendation: Retry the operation. 如果问题仍然存在,请联系我们。If the issue persists, contact us.

错误代码:ParquetUnsupportedInterpretationError code: ParquetUnsupportedInterpretation

  • 消息The given interpretation '%interpretation;' of Parquet format is not supported.Message: The given interpretation '%interpretation;' of Parquet format is not supported.

  • 原因:此方案不受支持。Cause: This scenario isn't supported.

  • 建议:“ParquetInterpretFor”不应为“sparkSql”。Recommendation: 'ParquetInterpretFor' should not be 'sparkSql'.

错误代码:ParquetUnsupportFileLevelCompressionOptionError code: ParquetUnsupportFileLevelCompressionOption

  • 消息File level compression is not supported for Parquet.Message: File level compression is not supported for Parquet.

  • 原因:此方案不受支持。Cause: This scenario isn't supported.

  • 建议:删除有效负载中的“CompressionType”。Recommendation: Remove 'CompressionType' in the payload.

错误代码:UserErrorJniExceptionError code: UserErrorJniException

  • 消息Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]Message: Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]

  • 原因:无法创建 Java 虚拟机 (JVM),因为设置了一些非法(全局)参数。Cause: A Java Virtual Machine (JVM) can't be created because some illegal (global) arguments are set.

  • 建议:登录到托管自承载 IR 的每个节点的计算机。Recommendation: Log in to the machine that hosts each node of your self-hosted IR. 检查确保系统变量设置正确,如下所示:_JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 GCheck to ensure that the system variable is set correctly, as follows: _JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G. 重启所有 IR 节点,然后重新运行该管道。Restart all the IR nodes, and then rerun the pipeline.

算术溢出Arithmetic overflow

  • 故障描述:复制 Parquet 文件时出现错误消息:Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.CommonSymptoms: Error message occurred when you copy Parquet files: Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common

  • 原因:将文件从 Oracle 复制到 Parquet 时,当前仅支持精度 <= 38 且整数部分的长度 <= 20 的十进制数。Cause: Currently only the decimal of precision <= 38 and length of integer part <= 20 are supported when you copy files from Oracle to Parquet.

  • 解决方法:若要进行解决,可将出现此问题的所有列都转换为 VARCHAR2。Resolution: As a workaround, you can convert any columns with this problem into VARCHAR2.

无枚举常量No enum constant

  • 故障描述:将数据复制为 Parquet 格式时,出现以下错误消息:java.lang.IllegalArgumentException:field ended by &apos;;&apos;java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.testSymptoms: Error message occurred when you copy data to Parquet format: java.lang.IllegalArgumentException:field ended by &apos;;&apos;, or: java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test.

  • 原因Cause:

    此问题可能是由于列名中的空格或不受支持的特殊字符(例如 ,;{}()\n\t=)导致的,因为 Parquet 不支持此类格式。The issue could be caused by white spaces or unsupported special characters (such as,;{}()\n\t=) in the column name, because Parquet doesn't support such a format.

    例如,contoso(test) 之类的列名会分析代码 Tokenizer st = new Tokenizer(schemaString, " ;{}()\n\t"); 中用括号括起的类型。For example, a column name such as contoso(test) will parse the type in brackets from code Tokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");. 由于没有这样的“测试”类型,因此了引发了错误。The error is thrown because there is no such "test" type.

    若要查看支持的类型,请转到 GitHub apache/parquet-mr 站点To check supported types, go to the GitHub apache/parquet-mr site.

  • 解决方法Resolution:

    仔细检查以查看:Double-check to see whether:

    • 接收器列名称中是否有空格。There are white spaces in the sink column name.
    • 包含空格的第一行是否用作列名。The first row with white spaces is used as the column name.
    • OriginalType 类型是否受支持。The type OriginalType is supported. 请尽量不要使用以下特殊字符:,;{}()\n\t=Try to avoid using these special characters: ,;{}()\n\t=.

RESTREST

错误代码:RestSinkCallFailedError code: RestSinkCallFailed

  • 消息Rest Endpoint responded with Failure from server. Check the error from server:%message;Message: Rest Endpoint responded with Failure from server. Check the error from server:%message;

  • 原因:当 Azure 数据工厂通过 HTTP 协议与 REST 终结点通信,并且请求操作失败时,发生此错误。Cause: This error occurs when Azure Data Factory talks to the REST endpoint over HTTP protocol, and the request operation fails.

  • 建议:查看 HTTP 状态码或错误消息中的消息,并修复远程服务器问题。Recommendation: Check the HTTP status code or the message in the error message and fix the remote server issue.

来自 REST 连接器的意外网络响应Unexpected network response from the REST connector

  • 故障描述:终结点有时从 REST 连接器收到意外响应(400、401、403、500)。Symptoms: The endpoint sometimes receives an unexpected response (400, 401, 403, 500) from the REST connector.

  • 原因:构造 HTTP 请求时,REST 源连接器使用链接服务/数据集/复制源的 URL 和 HTTP 方法/标头/正文作为参数。Cause: The REST source connector uses the URL and HTTP method/header/body from the linked service/dataset/copy source as parameters when it constructs an HTTP request. 此问题很可能是由一个或多个指定参数中的某些错误引起的。The issue is most likely caused by some mistakes in one or more specified parameters.

  • 解决方法Resolution:

    • 在命令提示窗口中使用“curl”查看该问题是否是参数导致的(应始终包含“接受”和“用户代理”标头) ):Use 'curl' in a Command Prompt window to see whether the parameter is the cause (Accept and User-Agent headers should always be included):

      curl -i -X <HTTP method> -H <HTTP header1> -H <HTTP header2> -H "Accept: application/json" -H "User-Agent: azure-data-factory/2.0" -d '<HTTP body>' <URL>

      如果命令返回相同的意外响应,请使用“curl”修复前面的参数,直到它返回预期的响应。If the command returns the same unexpected response, fix the preceding parameters with 'curl' until it returns the expected response.

      也可使用“curl--help”来更高级地使用命令。You can also use 'curl--help' for more advanced usage of the command.

    • 如果只有数据工厂 REST 连接器返回意外响应,请联系 Azure 支持进行进一步的故障排除。If only the Data Factory REST connector returns an unexpected response, contact Azure support for further troubleshooting.

    • 请注意,“curl”可能不适合重现 SSL 证书验证问题。Note that 'curl' might not be suitable to reproduce an SSL certificate validation issue. 在某些情况下,“curl”命令成功执行,没有遇到任何 SSL 证书验证问题。In some scenarios, the 'curl' command was executed successfully without encountering any SSL certificate validation issues. 但是,当在浏览器中执行相同的 URL 时,实际上不会返回任何 SSL 证书以供客户端与服务器建立信任。But when the same URL is executed in a browser, no SSL certificate is actually returned for the client to establish trust with server.

      对于上述情况,建议使用 Postman 和 Fiddler 之类的工具 。Tools like Postman and Fiddler are recommended for the preceding case.

SFTPSFTP

错误代码:SftpOperationFailError code: SftpOperationFail

  • 消息Failed to '%operation;'. Check detailed error from SFTP.Message: Failed to '%operation;'. Check detailed error from SFTP.

  • 原因:SFTP 操作出现问题。Cause: A problem with the SFTP operation.

  • 建议:检查来自 SFTP 的错误详细信息。Recommendation: Check the error details from SFTP.

错误代码:SftpRenameOperationFailError code: SftpRenameOperationFail

  • 消息Failed to rename the temp file. Your SFTP server doesn't support renaming temp file, set "useTempFileRename" as false in copy sink to disable uploading to temp file.Message: Failed to rename the temp file. Your SFTP server doesn't support renaming temp file, set "useTempFileRename" as false in copy sink to disable uploading to temp file.

  • 原因:SFTP 服务器不支持重命名临时文件。Cause: Your SFTP server doesn't support renaming the temp file.

  • 建议:在复制接收器中将“useTempFileRename”设置为 false,以禁止上传到临时文件。Recommendation: Set "useTempFileRename" as false in the copy sink to disable uploading to the temp file.

错误代码:SftpInvalidSftpCredentialError code: SftpInvalidSftpCredential

  • 消息Invalid SFTP credential provided for '%type;' authentication type.Message: Invalid SFTP credential provided for '%type;' authentication type.

  • 原因:私钥内容是从 Azure 密钥保管库或 SDK 提取的,但编码有误。Cause: Private key content is fetched from the Azure key vault or SDK, but it's not encoded correctly.

  • 建议Recommendation:

    如果私钥内容来自密钥保管库,则在将原始密钥文件直接上传到 SFTP 链接服务时,该文件有效。If the private key content is from your key vault, the original key file can work if you upload it directly to the SFTP linked service.

    有关详细信息,请参阅使用 Azure 数据工厂从/向 SFTP 服务器复制数据For more information, see Copy data from and to the SFTP server by using Azure Data Factory. 私钥内容是 base64 编码的 SSH 私钥内容。The private key content is base64 encoded SSH private key content.

    请使用 base64 编码对整个原始私钥文件进行编码,并将已编码的字符串存储在密钥保管库中。Encode entire original private key file with base64 encoding, and store the encoded string in your key vault. 如果选择从文件上传,则可在 SFTP 链接服务上使用原始私钥文件。The original private key file is the one that can work on the SFTP linked service if you select Upload from the file.

    下面是可用于生成字符串的一些示例:Here are some samples you can use to generate the string:

    • 使用 C# 代码:Use C# code:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • 使用 Python 代码:Use Python code:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • 使用第三方 base64 转换工具。Use a third-party base64 conversion tool. 建议使用编码为 Base64 格式工具。We recommend the Encode to Base64 format tool.

  • 原因:选择的密钥内容格式有误。Cause: The wrong key content format was chosen.

  • 建议Recommendation:

    当前不支持使用 PKCS#8 格式的 SSH 私钥(开头为“-----BEGIN ENCRYPTED PRIVATE KEY-----”)访问数据工厂中的 SFTP 服务器。PKCS#8 format SSH private key (start with "-----BEGIN ENCRYPTED PRIVATE KEY-----") is currently not supported to access the SFTP server in Data Factory.

    若要将密钥转换为传统的 SSH 密钥格式(开头为“-----BEGIN RSA PRIVATE KEY-----”),请运行以下命令:To convert the key to traditional SSH key format, starting with "-----BEGIN RSA PRIVATE KEY-----", run the following commands:

    openssl pkcs8 -in pkcs8_format_key_file -out traditional_format_key_file
    chmod 600 traditional_format_key_file
    ssh-keygen -f traditional_format_key_file -p
    
  • 原因:凭据或私钥内容无效。Cause: Invalid credentials or private key content.

  • 建议:若要查看密钥文件或密码是否正确,请使用 WinSCP 等工具仔细检查。Recommendation: To see whether your key file or password is correct, double-check with tools such as WinSCP.

SFTP 复制活动失败SFTP copy activity failed

  • 症状Symptoms:

    • 错误代码:UserErrorInvalidColumnMappingColumnNotFoundError code: UserErrorInvalidColumnMappingColumnNotFound
    • 错误消息:Column 'AccMngr' specified in column mapping cannot be found in source data.Error message: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • 原因:源不包含名为“AccMngr”的列。Cause: The source doesn't include a column named "AccMngr."

  • 解决方法:若要确定“AccMngr”列是否存在,请映射目标数据集列来仔细检查数据集配置。Resolution: To determine whether the "AccMngr" column exists, double-check your dataset configuration by mapping the destination dataset column.

错误代码:SftpFailedToConnectToSftpServerError code: SftpFailedToConnectToSftpServer

  • 消息Failed to connect to SFTP server '%server;'.Message: Failed to connect to SFTP server '%server;'.

  • 原因:如果错误消息包含“套接字读取操作在 30,000 毫秒后超时”这一字符串,则可能是由于对 SFTP 服务器使用了错误的链接服务类型而导致的。Cause: If the error message contains the string "Socket read operation has timed out after 30,000 milliseconds", one possible cause is that an incorrect linked service type is used for the SFTP server. 例如,你可能正在使用 FTP 链接服务连接到 SFTP 服务器。For example, you might be using the FTP linked service to connect to the SFTP server.

  • 建议:检查目标服务器的端口。Recommendation: Check the port of the target server. SFTP 默认使用端口 22。By default, SFTP uses port 22.

  • 原因:如果错误消息包含“服务器响应不包含 SSH 协议标识”这一字符串,则可能是由于 SFTP 服务器限制了连接而导致的。Cause: If the error message contains the string "Server response does not contain SSH protocol identification", one possible cause is that the SFTP server throttled the connection. 数据工厂将创建多个连接以从 SFTP 服务器并行下载,有时还会遇到 SFTP 服务器限制。Data Factory will create multiple connections to download from the SFTP server in parallel, and sometimes it will encounter SFTP server throttling. 通常,不同的服务器在遇到限制时会返回不同的错误。Ordinarily, different servers return different errors when they encounter throttling.

  • 建议Recommendation:

    将 SFTP 数据集的最大并发连接数指定为 1,然后重新运行复制活动。Specify the maximum number of concurrent connections of the SFTP dataset as 1 and rerun the copy activity. 如果活动成功,则可确定这是限制导致的。If the activity succeeds, you can be sure that throttling is the cause.

    若要提升低吞吐量,请与 SFTP 管理员联系以增加并发连接计数限制,或者可执行以下操作之一:If you want to promote the low throughput, contact your SFTP administrator to increase the concurrent connection count limit, or you can do one of the following:

    • 如果使用自承载 IR,请将自承载 IR 计算机的 IP 添加到允许列表中。If you're using Self-hosted IR, add the Self-hosted IR machine's IP to the allow list.
    • 如果使用的是 Azure IR,请添加 Azure Integration Runtime IP 地址If you're using Azure IR, add Azure Integration Runtime IP addresses. 如果不想将一系列 IP 添加到 SFTP 服务器允许列表中,请改用自承载 IR。If you don't want to add a range of IPs to the SFTP server allow list, use Self-hosted IR instead.

SharePoint Online 列表SharePoint Online list

错误代码:SharePointOnlineAuthFailedError code: SharePointOnlineAuthFailed

  • 消息The access token generated failed, status code: %code;, error message: %message;.Message: The access token generated failed, status code: %code;, error message: %message;.

  • 原因:服务主体 ID 和密钥可能设置有误。Cause: The service principal ID and key might not be set correctly.

  • 建议:检查注册的应用程序(服务主体 ID)和密钥,看看它们是否设置正确。Recommendation: Check your registered application (service principal ID) and key to see whether they're set correctly.

XML 格式XML format

错误代码:XmlSinkNotSupportedError code: XmlSinkNotSupported

  • 消息Write data in XML format is not supported yet, choose a different format!Message: Write data in XML format is not supported yet, choose a different format!

  • 原因:XML 数据集在复制活动中用作接收器数据集。Cause: An XML dataset was used as a sink dataset in your copy activity.

  • 建议:使用与接收器数据集格式不同的数据集。Recommendation: Use a dataset in a different format from that of the sink dataset.

错误代码:XmlAttributeColumnNameConflictError code: XmlAttributeColumnNameConflict

  • 消息Column names %attrNames;' for attributes of element '%element;' conflict with that for corresponding child elements, and the attribute prefix used is '%prefix;'.Message: Column names %attrNames;' for attributes of element '%element;' conflict with that for corresponding child elements, and the attribute prefix used is '%prefix;'.

  • 原因:使用了属性前缀,这导致出现冲突。Cause: An attribute prefix was used, which caused the conflict.

  • 建议:为“attributePrefix”属性设置其他值。Recommendation: Set a different value for the "attributePrefix" property.

错误代码:XmlValueColumnNameConflictError code: XmlValueColumnNameConflict

  • 消息Column name for the value of element '%element;' is '%columnName;' and it conflicts with the child element having the same name.Message: Column name for the value of element '%element;' is '%columnName;' and it conflicts with the child element having the same name.

  • 原因:其中一个子元素名用作了元素值的列名。Cause: One of the child element names was used as the column name for the element value.

  • 建议:为“valueColumn”属性设置其他值。Recommendation: Set a different value for the "valueColumn" property.

错误代码:XmlInvalidError code: XmlInvalid

  • 消息Input XML file '%file;' is invalid with parsing error '%error;'.Message: Input XML file '%file;' is invalid with parsing error '%error;'.

  • 原因:输入 XML 文件的格式不正确。Cause: The input XML file is not well formed.

  • 建议:更正 XML 文件以使其格式正确.Recommendation: Correct the XML file to make it well formed.

常规复制活动错误General copy activity error

错误代码:JreNotFoundError code: JreNotFound

  • 消息Java Runtime Environment cannot be found on the Self-hosted Integration Runtime machine. It is required for parsing or writing to Parquet/ORC files. Make sure Java Runtime Environment has been installed on the Self-hosted Integration Runtime machine.Message: Java Runtime Environment cannot be found on the Self-hosted Integration Runtime machine. It is required for parsing or writing to Parquet/ORC files. Make sure Java Runtime Environment has been installed on the Self-hosted Integration Runtime machine.

  • 原因:自承载 IR 找不到 Java 运行时。Cause: The self-hosted IR can't find Java Runtime. 读取特定的源时需要 Java 运行时。Java Runtime is required for reading particular sources.

  • 建议:检查集成运行时环境,具体请参阅 使用自承载集成运行时Recommendation: Check your integration runtime environment, see Use Self-hosted Integration Runtime.

错误代码:WildcardPathSinkNotSupportedError code: WildcardPathSinkNotSupported

  • 消息Wildcard in path is not supported in sink dataset. Fix the path: '%setting;'.Message: Wildcard in path is not supported in sink dataset. Fix the path: '%setting;'.

  • 原因:接收器数据集不支持通配符值。Cause: The sink dataset doesn't support wildcard values.

  • 建议:检查接收器数据集并重写路径(不使用通配符值)。Recommendation: Check the sink dataset, and rewrite the path without using a wildcard value.

FIPS 问题FIPS issue

  • 故障描述:复制活动在启用了 FIPS 的自承载 IR 计算机上失败,错误消息如下:This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.Symptoms: Copy activity fails on a FIPS-enabled self-hosted IR machine with the following error message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

  • 原因:使用 Azure Blob 和 SFTP 等连接器复制数据时,可能会发生此错误。Cause: This error might occur when you copy data with connectors such as Azure Blob, SFTP, and so on. 美国联邦信息处理标准 (FIPS) 定义了允许使用的一组特定加密算法。Federal Information Processing Standards (FIPS) defines a certain set of cryptographic algorithms that are allowed to be used. 当计算机上启用了 FIPS 模式时,某些情况下会阻止复制活动所依赖的某些加密类。When FIPS mode is enabled on the machine, some cryptographic classes that copy activity depends on are blocked in some scenarios.

  • 解决方案:了解为什么我们不再推荐“FIPS 模式”,并评估你是否可在自承载 IR 计算机上禁用 FIPS。Resolution: Learn why we're not recommending “FIPS Mode” anymore, and evaluate whether you can disable FIPS on your self-hosted IR machine.

    如果只想让 Azure 数据工厂绕过 FIPS 并使活动运行成功,请执行以下操作:Alternatively, if you only want to let Azure Data Factory bypass FIPS and make the activity runs succeed, do the following:

    1. 打开安装自承载 IR 的文件夹。Open the folder where Self-hosted IR is installed. 路径通常是 C:\Program Files\Microsoft Integration Runtime <IR version>\Shared。The path is usually C:\Program Files\Microsoft Integration Runtime <IR version>\Shared.

    2. 打开 diawp.exe.config 文件,然后在 <runtime> 部分的末尾添加 <enforceFIPSPolicy enabled="false"/>,如下所示:Open the diawp.exe.config file and then, at the end of the <runtime> section, add <enforceFIPSPolicy enabled="false"/>, as shown here:

      显示已禁用 FIPS 的 diawp.exe.config 文件部分的屏幕截图。

    3. 保存文件,然后重启自承载 IR 计算机。Save the file, and then restart the Self-hosted IR machine.

后续步骤Next steps

尝试通过以下资源获得故障排除方面的更多帮助:For more troubleshooting help, try these resources: