Получение исключения при попытке скопировать данные из 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.