Как использовать результат действия поиска в следующем поиске фабрики данных Azure?

#azure-data-factory

Вопрос:

У меня есть поиск «Выборка клиентов» с помощью инструкции SQL:

   Select Count(CustomerId) As 'Row_count' ,Min(sales_amount) as 'Min_Sales' From [sales]. 
  [Customers]
 

Он возвращает значение

    10, 5000
 

Далее у меня есть поиск «Обновить минимальные продажи» с помощью инструкции SQL, но появляется ошибка:

     Update Sales_Min_Sales
    SET Row_Count = @activity('Fetch Customers').output.Row_count,
    Min_Sales = @activity('Fetch Customers').output.Min_Sales
    Select 1
 

Та же ошибка возникает, даже если я установил поиск в

    Select @activity('Fetch Fetch Customers').output.Row_count
 

Ошибка:

  A database operation failed with the following error: 'Must declare the scalar variable 
"@activity".',Source=,''Type=System.Data.SqlClient.SqlException,Message=Must declare the 
scalar variable "@activity".,Source=.Net SqlClient Data 
Provider,SqlErrorNumber=137,Class=15,ErrorCode=-2146232060,State=2,Errors= 
[{Class=15,Number=137,State=2,Message=Must declare the scalar variable "@activity".,},],'
 

Ответ №1:

У меня такая же настройка, как у вас. Два действия по поиску.

введите описание изображения здесь

Первый просмотр показывает минимальный идентификатор и максимальный идентификатор, как показано на рисунке

 {
    "count": 1,
    "value": [
        {
            "Min": 1,
            "Max": 30118
        }
    ],
    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (East US)",
    "billingReference": {
        "activityType": "PipelineActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.016666666666666666,
                "unit": "DIUHours"
            }
        ]
    },
    "durationInQueue": {
        "integrationRuntimeQueue": 22
    }
}
 

в моем втором поиске я использую приведенное ниже выражение

 Update saleslt.customer set somecol=someval where CustomerID=@{activity('Lookup1').output.Value[0]['Min']} 
 

Выберите 1 в качестве манекена

Просто нам нужно получить доступ к выходным данным поиска с использованием индексов, как уже упоминалось, и поместить выходные данные активности внутрь {}.