Получение исключения при попытке скопировать данные из BLOB-объекта Azure в SQL Datawarehouse с использованием DataFactory

Я создал конвейер, который использует операцию копирования для перемещения данных из 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,Message=110802; Произошла внутренняя ошибка DMS, которая привела к сбою этой операции. Подробности: Исключение: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException, Сообщение: Возникла исключительная ситуация Java при вызове HdfsBridge_CreateRecordReader: Ошибка [HdfsBridge::CreateRecordReader - при обращении к внешнему файлу [] возникла непредвиденная ошибка.] /hive/warehouse/tradesummary/000000_0][0].,Source=.Net поставщик данных SqlClient,SqlErrorNumber=110802, класс =16, код ошибки =-2146232060, состояние =1, ошибки =[{Class=16, номер =110802,State=1,Message=110802; Произошла внутренняя ошибка DMS, которая привела к сбою этой операции. Details: Exception: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException, Message: Java exception raised on call to HdfsBridge_CreateRecordReader: Error [HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.] occurred while accessing external file [/hive/warehouse/tradesummary/000000_0][0].,},],'.

Любые указатели будут оценены.

1 ответ

Сообщение об ошибке указывает, что проблема связана с вашим приемником (хранилищем данных SQL), а не с ADF. Если в пуле ресурсов недостаточно системной памяти, это может быть временной проблемой.

Чтобы еще раз проверить, попробуйте активировать и отключить параметр «Пропускать несовместимые строки» в действии копирования ADF и выполнить несколько тестовых запусков, чтобы убедиться, что проблема возникает регулярно.

Как заявил wBob в соответствии со статьей MSDN, есть несколько других причин, которые могут быть связаны с тем, что исходные данные включают бит или уникальную идентификацию. Похоже, что проблема с битом была решена, а уникальный идентификатор - нет. Можете ли вы проверить, что один из этих типов данных существует в ваших исходных данных. В качестве обходного пути идентификаторы GUID можно преобразовать в varchar.

Другие вопросы по тегам