Ошибка неверного имени столбца при попытке обновить строку с помощью приемника потока данных - PullRequest
0 голосов
/ 24 сентября 2019

Фактический вариант использования более сложен (и основан на шаблонном конвейере SCD Type 2), но, пытаясь отладить свою ошибку, я создал новый упрощенный поток данных следующего формата:

Источник данных (набор данных представляет собой таблицу базы данных SQL Azure с столбцом первичного ключа и несколькими другими столбцами NULLable)
Производный столбец (при создании нового столбца с именем "NewRowStatus" устанавливается значениебуквенная строка 'Historic')
Alter Row (для одного условия «Update If» установлено значение true (), поэтому все строки будут обновляться)
Sink для одного и того же набора данныхмы начали с сопоставления "NewRowStatus" со столбцом базы данных «Статус строки» и с моим первичным ключом в качестве столбца ключей, что позволяет обновлять.

Предварительный просмотр данных успешно выполняется для каждого шага в потоке данных, но когдаЯ запускаю весь поток данных через конвейер отладки и получаю следующую ошибку:

"error": {
        "code": 400,
        "message": "Job '[jobID] failed due to reason: DF-SYS-01 at Sink 'sink1': java.sql.BatchUpdateException: Invalid column name '{[My Key Column]}'.\njava.sql.BatchUpdateException: Invalid column name '{[My Key Column]}'...

(мои квадратные скобки)

Я пытался использовать разные (неключевые) столбцы дляпосмотреть, если это безумиеКакая-то разница, но пока мне не удалось ни одного успешного обновления.Я не уверен, что я упускаю что-то действительно очевидное, или это проблема с ADF, который все еще находится в предварительном просмотре, но любые мысли будут оценены.

1 Ответ

1 голос
/ 25 сентября 2019

Таким образом, пытаясь получить несколько нечувствительных скриншотов, я создал еще более простой новый поток данных, и , с которым работал нормально.После небольшой копки кажется, что ADF не нравится, когда в вашем ключевом поле в приемнике есть пробел.Изменив ключевой столбец таблицы измерений, чтобы он не содержал пробела, и повторно запустите исходный поток данных, теперь все работает как положено.

...