У меня возникают проблемы при использовании параметризованных наборов данных при обращении через поток данных отображения фабрики данных.
Я пытаюсь написать общий конвейер ELT, который будет читать из CSV-файла в хранилище больших двоичных объектов и записыватьэто к таблице в базе данных SQL Azure.
При использовании операции копирования все работает хорошо (см. конвейер «Импорт файла CSV в общую таблицу SQL с помощью операции копирования»).
Файл CSV (имя файла, переданное в конвейер фабрики данных в качестве параметра) читается из хранилища BLOB-объектов. Структура файла CSV определяется с помощью действия Get Metadata.
Структура файла CSV передается хранимой процедуре SQL Server, которая находит представление с такой же структурой, что и файл CSV. Если представление с такой же структурой не существует, создается таблица и представление. В любом случае имя схемы и имя представления передаются обратно в конвейер. Содержимое файла CSV затем читается и записывается в представление SQL Server.
Это хорошо работает, но у меня нет возможности добавлять метаданные в каждую записанную строку. Поэтому я создал сопоставление потока данных, который будет добавлять метаданные (имя фабрики данных, имя конвейера фабрики данных, идентификатор запуска конвейера фабрики данных) с использованием производного преобразования столбца.
Когда я пытаюсь отладить поток данных, я получаюошибка "An error occurred, please view notification for more details."
Я не могу найти никаких уведомлений, которые дают информацию об ошибке.
Поток данных работает, когда я использую наборы данных с жестко закодированным именем файла. Когда я переключаюсь на параметризованный поток данных (передавая такие параметры, как pipe (). DataFactory и т. Д.), Именно тогда я получаю сообщение об ошибке.
Я пытался жестко кодировать значения параметров потока данных отображения, нобез радости.
Шаблон прошел проверку, но если я попытаюсь запустить конвейер «Импортировать файл CSV в общую таблицу SQL с помощью потока данных», запустив конвейер, он очень быстро завершится сбоем и выдаст мне загадочное сообщение об ошибке. :
ErrorCode=InvalidTemplate, ErrorMessage=Unable to parse expression 'body('Copy Generic CSV Source to Generic SQL SinkComposeRuntimeVariables')?.Copy Generic CSV Source to Generic SQL Sinkd7ea532482e64afc88501b46924214b3?.ReadFromSourceCSVFileInBlobStorage.FileName'
Любые эксперты Azure Data Factory готовы протянуть руку?
Весь исходный код доступен по адресу https://github.com/marc-jellinek/AzureDataFactoryDemo_GenericSqlSink
Заранее спасибо!