2

我创建了一个使用 Copy 活动将数据从 Blob 移动到 SQL Datawarehouse 的管道。

Azure Blob Dataset:
"name": "TradeData",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "HDInsightStorageLinkedService",
    "structure": [],
    "typeProperties": {
      "folderPath": "hdinsight/hive/warehouse/tradesummary/",
      "format": {
        "type": "OrcFormat"
      }
    },
SQL DW Dataset:
 "name": "TradeDataRepository",
  "properties": {
    "type": "AzureSqlDWTable",
    "linkedServiceName": "AzureSQLDataWarehouseLinkedService",
    "typeProperties": {
      "tableName": "tradesummary"
    },

Pipeline:
"activities": [
      {
        "name": "CopyActivityTemplate",
        "type": "Copy",
        "inputs": [
          {
            "name": "TradeData"
          }
        ],
        "outputs": [
          {
            "name": "TradeDataRepository"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "BlobSource",
            "skipHeaderLineCount": 0
          },
          "sink": {
            "type": "SqlDWSink",
            "allowPolyBase": false
        }

当我执行管道时,出现以下错误:

数据库操作失败。
来自数据库执行的错误消息: ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=将数据加载到 SQL 数据仓库时发生错误。,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,消息=110802;发生内部 DMS 错误,导致此操作失败。详细信息:异常:Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException,消息:调用 HdfsBridge_CreateRecordReader 时引发 Java 异常:错误 [HdfsBridge::CreateRecordReader - 创建记录读取器时遇到意外错误。] 访问外部文件时发生 [ /hive/warehouse/tradesummary/000000_0][0].,Source=.Net SqlClient 数据提供者,SqlErrorNumber=110802,Class=16,ErrorCode=-2146232060,State=1,Errors=[{Class=16,Number=110802 ,状态=1, 消息=110802;发生内部 DMS 错误,导致此操作失败。详细信息:异常:Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException,消息:调用 HdfsBridge_CreateRecordReader 时引发 Java 异常:错误 [HdfsBridge::CreateRecordReader - 创建记录读取器时遇到意外错误。] 访问外部文件时发生 [ /hive/warehouse/tradesummary/000000_0][0].,},],'.

任何指针将不胜感激。

4

1 回答 1

0

错误消息表明问题出在您的接收器(SQL 数据仓库),而不是 ADF。当资源池中的系统内存不足时,这可能是一个临时问题。

要仔细检查,请尝试在 ADF 复制活动中激活和禁用“跳过不兼容的行”选项,并进行几次测试运行,看看您是否经常看到问题。

正如wBob根据 MSDN文章所述,还有其他几个原因,可能是源数据包含位或唯一标识时,似乎位问题已解决,但唯一标识符尚未解决。您能否检查其中一种数据类型是否存在于您的源数据中。作为一种解决方法,可以将 GUID 转换为 varchar。

于 2021-09-30T06:01:50.450 回答