web-dev-qa-db-fra.com

Azure Data Factory obtient les données de chaque valeur

J'ai une activité de recherche avec obtient la valeur d'un conteneur dans un blob. J'ai une activité foreach qui est liée à l'activité de recherche

enter image description here

et sous les paramètres, il a la valeur:

@activity('LookupMessageType').output.value

J'ai une autre activité de copie qui s'exécute dans cette activité foreach. Il copie les données de Cosmos DB vers Azure Data Lake.
enter image description here

Il s'agit de la requête dans l'ensemble de données source:

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' )}')

Je reçois une erreur en exécutant ce pipeline:

{
    "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"
}

Cela signifie que l'élément n'est pas un nom de fonction intégré. Je souhaite utiliser la valeur de l'activité foreach pour interroger la source.

De plus, voici mon contenu de chemin de fichier dynamique

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

J'obtiens la structure de fichier dynamique souhaitée avec cette expression, si j'utilise des valeurs statiques dans la requête comme: data.speed> 500

7
MAK

J'ai donc compris ce qui n'allait pas avec la requête: au lieu de

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

Je devais utiliser

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