Фабрика данных azure получает данные из значения foreach

У меня есть поисковая активность с получением значения из контейнера в большом двоичном объекте. У меня есть действие foreach, связанное с поиском

enter image description here

и в настройках он имеет значение:

@activity('LookupMessageType').output.value

У меня есть еще одно действие копирования, которое выполняется в рамках этого действия foreach. Он копирует данные из Cosmos DB в Azure Data Lake. enter image description here

Это запрос в исходном наборе данных:

select c.Tag, data.assetTag, data.timestamp, data.jsonVersion, data.messageType, data.speed from c join data in c.data
where (data.speed>  item().speed_Value) AND
(data.timestamp >= '@{formatDateTime(addhours(pipeline().TriggerTime, -1), 'yyyy-MM-ddTHH:mm:ssZ' )}' 
AND data.timestamp < '@{formatDateTime(pipeline().TriggerTime, 'yyyy-MM-ddTHH:mm:ssZ' )}')

Я получаю сообщение об ошибке при запуске этого конвейера:

{
    "errorCode": "2200",
    "message": "Failure happened on 'Source' side. ErrorCode=UserErrorDocumentDBReadError,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=DocumentDb operation failed: Message: {\"errors\":[{\"severity\":\"Error\",\"location\":{\"start\":231,\"end\":235},\"code\":\"SC2005\",\"message\":\"'item' is not a recognized built-in function name.\"}]}\r\nActivityId: *redacted*, documentdb-dotnet-sdk/1.21.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0.,Source=Microsoft.DataTransfer.ClientLibrary.DocumentDb,''Type=Microsoft.Azure.Documents.BadRequestException,Message=Message: {\"errors\":[{\"severity\":\"Error\",\"location\":{\"start\":231,\"end\":235},\"code\":\"SC2005\",\"message\":\"'item' is not a recognized built-in function name.\"}]}\r\nActivityId: redacted, documentdb-dotnet-sdk/1.21.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0,Source=Microsoft.Azure.Documents.Client,''Type=System.Runtime.InteropServices.COMException,Message=Exception from HRESULT: 0x800A0B00,Source=,'",
    "failureType": "UserError",
    "target": "Copy Data1"
}

Он говорит, что элемент не является встроенным именем функции. Я хочу использовать значение из действия foreach для запроса источника.

Кроме того, вот мой динамический контент пути к файлу

@concat('test_', item().speed, '.csv')

Я получаю желаемую динамическую файловую структуру с помощью этого выражения, если использую статические значения в запросе, например: data.speed> 500

7
0
8 266
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я разобрался, что не так с запросом: вместо того

where (data.speed> item().speed_Value)

Мне пришлось использовать

where (data.speed> @{item().speed_value})

Хороший ответ, вы можете отметить его для справки.

Jay Gong 14.09.2018 03:40

Другие вопросы по теме