Программный мониторинг Фабрика данных Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается как отслеживать конвейер в фабрике данных с помощью различных пакетов средств разработки программного обеспечения (пакетов SDK).
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Срок хранения данных
В фабрике данных данные запуска конвейеров сохраняются только в течение 45 дней. Если вы выполняете программный запрос на сведения о запуске для конвейера фабрики данных (например, с помощью команды PowerShell Get-AzDataFactoryV2PipelineRun
), максимальные значения дат для необязательных параметров LastUpdatedAfter
и LastUpdatedBefore
не указываются. Однако если вы запросите данные за прошлый год, например, вы получите не ошибку, а лишь данные о запуске конвейера за последние 45 дней.
Если вы хотите хранить данные о запуске конвейера более 45 дней, настройте собственное ведение журнала диагностики с помощью службы Azure Monitor.
Сведения о выполнении конвейера
Свойства участка конвейера см. в справочнике по API PipelineRun. Участок конвейера имеет разный статус в течение своего жизненного цикла, возможные значения состояния выполнения перечислены ниже:
- В очереди
- InProgress
- Выполнено успешно
- Неудачно
- Отмена
- Отменено
.NET
Полное пошаговое руководство по созданию и мониторингу конвейера с помощью .NET SDK см. в разделе Создание фабрики данных и конвейера с помощью .NET.
Добавьте следующий код, чтобы постоянно проверять состояние выполнения конвейера до завершения копирования данных.
// Monitor the pipeline run Console.WriteLine("Checking pipeline run status..."); PipelineRun pipelineRun; while (true) { pipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, runResponse.RunId); Console.WriteLine("Status: " + pipelineRun.Status); if (pipelineRun.Status == "InProgress" || pipelineRun.Status == "Queued") System.Threading.Thread.Sleep(15000); else break; }
Добавьте следующий код, извлекающий сведения о выполнении действия копирования, например размер записанных и прочитанных данных.
// Check the copy activity run details Console.WriteLine("Checking copy activity run details..."); RunFilterParameters filterParams = new RunFilterParameters( DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow.AddMinutes(10)); ActivityRunsQueryResponse queryResponse = client.ActivityRuns.QueryByPipelineRun( resourceGroup, dataFactoryName, runResponse.RunId, filterParams); if (pipelineRun.Status == "Succeeded") Console.WriteLine(queryResponse.Value.First().Output); else Console.WriteLine(queryResponse.Value.First().Error); Console.WriteLine("\nPress any key to exit..."); Console.ReadKey();
Полная документация по пакету SDK для .NET приведена в справочнике по пакету SDK для .NET для фабрики данных.
Python
Полное пошаговое руководство по созданию и мониторингу конвейера с помощью Python SDK см. в разделе Создание фабрики данных и конвейера с помощью Python.
Для отслеживания работы конвейера добавьте следующий код.
# Monitor the pipeline run
time.sleep(30)
pipeline_run = adf_client.pipeline_runs.get(
rg_name, df_name, run_response.run_id)
print("\n\tPipeline run status: {}".format(pipeline_run.status))
filter_params = RunFilterParameters(
last_updated_after=datetime.now() - timedelta(1), last_updated_before=datetime.now() + timedelta(1))
query_response = adf_client.activity_runs.query_by_pipeline_run(
rg_name, df_name, pipeline_run.run_id, filter_params)
print_activity_run_details(query_response.value[0])
Полная документация по пакету SDK для Python приведена в справочнике по пакету SDK для Python для фабрики данных.
REST API
Полное пошаговое руководство по созданию и мониторингу конвейера с помощью REST API см. в разделе Создание фабрики данных и конвейера с помощью REST API.
Запустите следующий скрипт, чтобы проверять состояние выполнения, пока не закончится копирование данных.
$request = "https://management.azure.com/subscriptions/${subsId}/resourceGroups/${resourceGroup}/providers/Microsoft.DataFactory/factories/${dataFactoryName}/pipelineruns/${runId}?api-version=${apiVersion}" while ($True) { $response = Invoke-RestMethod -Method GET -Uri $request -Header $authHeader Write-Host "Pipeline run status: " $response.Status -foregroundcolor "Yellow" if ( ($response.Status -eq "InProgress") -or ($response.Status -eq "Queued") ) { Start-Sleep -Seconds 15 } else { $response | ConvertTo-Json break } }
Запустите следующий скрипт, извлекающий сведения о выполнении действия копирования, например размер записанных и прочитанных данных.
$request = "https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/pipelineruns/${runId}/queryActivityruns?api-version=${apiVersion}&startTime="+(Get-Date).ToString('yyyy-MM-dd')+"&endTime="+(Get-Date).AddDays(1).ToString('yyyy-MM-dd')+"&pipelineName=Adfv2QuickStartPipeline" $response = Invoke-RestMethod -Method POST -Uri $request -Header $authHeader $response | ConvertTo-Json
Полная документация по REST API приведена в справочнике по REST API фабрики данных.
PowerShell
Полное пошаговое руководство по созданию и мониторингу конвейера с помощью PowerShell см. в разделе Создание фабрики данных и конвейера с помощью PowerShell.
Запустите следующий скрипт, чтобы проверять состояние выполнения, пока не закончится копирование данных.
while ($True) { $run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId if ($run) { if ( ($run.Status -ne "InProgress") -and ($run.Status -ne "Queued") ) { Write-Output ("Pipeline run finished. The status is: " + $run.Status) $run break } Write-Output ("Pipeline is running...status: " + $run.Status) } Start-Sleep -Seconds 30 }
Запустите следующий скрипт, извлекающий сведения о выполнении действия копирования, например размер записанных и прочитанных данных.
Write-Host "Activity run details:" -foregroundcolor "Yellow" $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30) $result Write-Host "Activity 'Output' section:" -foregroundcolor "Yellow" $result.Output -join "`r`n" Write-Host "\nActivity 'Error' section:" -foregroundcolor "Yellow" $result.Error -join "`r`n"
Полная документация по командлетам PowerShell приведена в справочнике по командлетам PowerShell для фабрики данных.
Связанный контент
Дополнительные сведения об использовании Azure Monitor для отслеживания конвейеров фабрики данных см. в статье Monitor data factories using Azure Monitor (Отслеживание фабрик данных с помощью Azure Monitor).