Добрый день,
Мы импортируем следующий формат JSON через COPY DATA (REST TO TABLE STORAGE) в Data Factory v2:
[
{
"ERROR":false,
"USERNAME":"DUMMY"
},
[
{
"A":1,
"B":2,
"C":3
},
{
"A":1,
"B":0,
"C":3
}
]
]
Значение ключа раздела: USE SOURCE COLUMN
Столбец ключа раздела: C
Отображение правильно установлено для A B and C
. ОШИБКА и ИМЯ ПОЛЬЗОВАТЕЛЯ - Не включены -.
При отладке выдает следующую ошибку:
"errorCode": "2200", "message": "Сбой произошел на стороне 'Sink'.
ErrorCode = UserErrorAzureTableKeyColumnWithNullValue, 'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message = Column
«C» содержит значение «NULL», поэтому его нельзя использовать как «PartitionKey» для
Лазурный стол.
Я понимаю, почему возникает ошибка, инструмент COPY DATA пытается создать три строки:
1.Первая строка основана на ОШИБКАХ и ИМЯ ПОЛЬЗОВАТЕЛЯ. Эта строка действительно имеет значение null для C
2. Вторая строка основана на A, B и C. Эта строка верна, поскольку для C. нет нулевых значений.
3. Третья строка основана на A, B и C. Эта строка верна, поскольку для C. нет нулевых значений.
Отказоустойчивость включена: пропускает несовместимые строки, но не решает проблему.
Мы знаем выше, потому что он работает со значением ключа раздела по умолчанию:
Снимок экрана в два ряда
Мы не можем изменить формат ввода. Что мы можем сделать в фабрике данных, чтобы решить эту проблему? Как мы можем игнорировать первый объект с ОШИБКАМИ и ПОЛЬЗОВАТЕЛЕМ, или как мы можем пропустить строки с Ключом Разделения, если ноль?
Может ли это быть обработано с помощью кода "Динамическое содержимое"?