【问题标题】:Getting exception when i try to copy data from Azure Blob to SQL Datawarehouse using DataFactory当我尝试使用数据工厂将数据从 Azure Blob 复制到 SQL 数据仓库时出现异常
【发布时间】:2017-02-26 04:13:54
【问题描述】:

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

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 数据时发生错误Warehouse.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=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 ,State=1,Message=110802;发生内部 DMS 错误导致此操作失败。详细信息:异常:Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException,消息:调用 HdfsBridge_CreateRecordReader 时引发 Java 异常:错误 [HdfsBridge::CreateRecordReader - 创建记录读取器时遇到意外错误。] 访问外部文件时发生 [ /hive/warehouse/tradesummary/000000_0][0].,},],'.

任何指针将不胜感激。

【问题讨论】:

  • 此 MSDN article 列出了相同错误的几个原因,其中源数据包含位或唯一标识符。它表明位问题已修复,但唯一标识符未修复。您能否确认您的源数据是否包含这些数据类型中的任何一种?解决方法是为 guid 转换为 varchar。否则我会从一个简单的文件开始,一行一列,从那里开始构建。
  • 不,我们没有带有位或唯一标识符的列
  • 嗨,Madhu,你在这里提到的问题有什么解决方案吗

标签: azure-data-factory azure-sqldw


【解决方案1】:

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

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

正如wBob 根据 MSDN article 所述,还有其他几个原因,可能是源数据包含位或唯一标识不是。您能否检查其中一种数据类型是否存在于您的源数据中。作为一种解决方法,可以将 GUID 转换为 varchar。

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 2018-08-08
    • 1970-01-01
    • 2016-10-02
    • 2018-09-20
    • 2019-10-09
    • 2019-08-05
    • 2013-04-19
    • 2019-01-23
    相关资源
    最近更新 更多