Я только начинаю изучать фабрику данных, и у меня есть очень простой конвейер, который загружает файл CSV из хранилища BLOB-объектов Azure в хранилище данных SQL Azure.
Исходный столбец 3 CSV-файла содержит даты в формате MM/dd/yyyy
, а в моей целевой таблице SQL DW этот столбец указан как дата.
Мой конвейер завершается ошибкой со следующей ошибкой, предположительно потому, что я не нахожусь в США, и поэтому неявное преобразование типов не будет работать:
Активность BlobToSQLDW завершилась неудачно: ErrorCode = FailedDbOperation, 'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message = Ошибка при загрузке данных в хранилище данных SQL., Source = Microsoft.DataTransfer.ClientLibrary,' 'Type = System .Data.SqlClient.SqlException, Message = HdfsBridge :: recordReaderFillBuffer - Обнаружена непредвиденная ошибка при заполнении буфера считывателя записей: HadoopSqlException: Ошибка преобразования типа данных VARCHAR в DATETIME., Источник = .Net SqlClient Поставщик данных, SqlErrorNumber = 1090, Ошибка 1670 = 1070 = -2146232060, State = 1, Errors = [{Class = 16, Number = 107090, State = 1, Message = HdfsBridge :: recordReaderFillBuffer - Обнаружена непредвиденная ошибка при заполнении буфера чтения записей: HadoopSqlException: Ошибка преобразования типа данных VARCHAR в DATETIME., }], '
Я попытался внести изменения в схему для источника BLOB-объекта, включая настройку формата и языка (см. Скриншот ниже), но пока безрезультатно.
Скриншот схемы хранилища BLOB-объектов Azure:
Мне удалось обойти эту проблему, создав промежуточную таблицу в SQL DW со всеми столбцами, типизированными как varchar, и изменив конвейер ADF, указав вместо этого целевой объект, а затем я выполняю задачу в SQL DW, используя вставку T-SQL ( подготовка к цели) для преобразования типов.
Я уверен, что есть правильный способ сделать это в ADF. Кто-нибудь может посоветовать, пожалуйста?