Вывод ошибки, отображаемый в консоли ADF, постоянно: «Операция с целевым объектом Copy_7dp не выполнена: Type = Npgsql.PostgresException, Message = 08P01: неверный формат сообщения, Source = Npgsql, '"
Вы можете найти некоторые подсказки в этом старом случае , которое похоже на вашу трассировку ошибок. Смотрите решение в приведенной выше ссылке: https://github.com/npgsql/npgsql/issues/189#issuecomment-67001166
По сути, если строковое значение, которое мы пытаемся сохранить с помощью Npgsql, было получено из MemoryStream.GetBuffer (), оно взорвется, но если оно получено из MemoryStream.ToArray () он будет работать нормально.
Это объясняется в официальном документе :
Обратите внимание, что буфер содержит выделенные байты, которые могут быть неиспользованными. Например, если строка «test» записана в объект MemoryStream, длина буфера, возвращаемого из GetBuffer, составляет 256, а не 4, при этом 252 байта не используются. Чтобы получить только данные в буфере, используйте метод ToArray;однако ToArray создает копию данных в памяти.
Однако я подозреваю, что это дефект коннектора ADF Postgresql, и мы не смогли настроить какой-либо исходный код передачи на уровне использования. (Конечно, вы могли быотправьте отзыв в команду Azure Adf, чтобы получить официальное заявление)
На данный момент, в качестве обходного пути, вы можете использовать CSV-файл в качестве посредника. Перенос данных из локальной базы данных в файлы CSV в хранилище BLOB-объектов Azure. Затем перенесите данные в базу данных postgresql назначения.