如何访问ADF门户活动指标及通过PowerShell获取切片记录数与时长
问题解决方案
1. 访问Azure门户中“Activity Metric Image”的活动运行指标
你可以按照以下步骤在Azure门户中查看活动的运行指标:
- 登录Azure门户,找到你的Azure Data Factory实例并进入。
- 在左侧导航栏选择Monitor(监控)选项。
- 在监控页面顶部切换到Metrics(指标)标签。
- 点击Metric下拉菜单,选择你需要查看的具体指标,比如:
- Rows copied(复制的记录数,对应插入记录总数)
- Duration(活动运行时长)
- Success rate(成功率)等
- 可以通过Filter(筛选器)选择特定的Pipeline(管道)、Activity(活动)或Dataset(数据集)来缩小范围,也可以调整时间范围匹配你的每周调度周期。
- 页面会自动生成可视化的指标图表,也就是你提到的“Activity Metric Image”,支持切换图表类型、导出数据等操作。
2. 通过PowerShell获取切片的插入记录总数及运行时长
你现有的代码已经能获取切片列表,但切片对象本身并不直接存储插入记录数——这些数据其实保存在对应的**活动运行实例(Activity Run)**中。下面是修改后的代码,会关联每个切片到对应的活动运行,提取你需要的指标:
# 初始化变量 $slices = @() $auditResults = @() # 配置参数 $DataFactoryName = "Your Data Factory Name" $resourceGroupName = "Your Resource Group Name" $startDateTime = "2018-01-07" # 切片开始日期 $endDateTime = "2018-01-14" # 切片结束日期 # 获取所有数据集名称 $tableNames = Get-AzureRMDataFactoryDataset -DataFactoryName $DataFactoryName -ResourceGroupName $resourceGroupName | ForEach-Object {$_.DatasetName} foreach ($tableName in $tableNames) { # 获取当前数据集的所有切片 $tempSlices = Get-AzureRMDataFactorySlice -DataFactoryName $DataFactoryName -DatasetName $tableName ` -StartDateTime $startDateTime -EndDateTime $endDateTime ` -ResourceGroupName $resourceGroupName -ErrorAction Stop foreach ($slice in $tempSlices) { # 查找该切片对应的活动运行(以Copy活动为例,可根据实际活动类型调整) $activityRuns = Get-AzureRMDataFactoryActivityRun -DataFactoryName $DataFactoryName ` -ResourceGroupName $resourceGroupName ` -RunStartedAfter $slice.SliceStart.AddMinutes(-10) ` # 留10分钟缓冲确保覆盖运行时间 -RunStartedBefore $slice.SliceEnd.AddMinutes(10) ` -ActivityType "Copy" ` # 替换为你的实际活动类型,比如"SqlServerStoredProcedure"等 -DatasetName $tableName foreach ($run in $activityRuns) { # 从活动运行的Output中提取插入记录数和运行时长 $rowsCopied = $run.Output.RowsCopied $duration = $run.Duration # 收集审计信息 $auditRecord = [PSCustomObject]@{ DatasetName = $tableName SliceStart = $slice.SliceStart SliceEnd = $slice.SliceEnd SliceStatus = $slice.Status ActivityRunId = $run.RunId RowsInserted = $rowsCopied RunDurationSeconds = $duration RunStatus = $run.Status } $auditResults += $auditRecord } $slices += $slice } } # 输出审计结果(也可以导出到CSV:$auditResults | Export-Csv -Path "ADF_Slice_Audit.csv" -NoTypeInformation) $auditResults
关键说明:
- 活动类型匹配:代码中默认用了
ActivityType "Copy",如果你的切片是由其他活动(比如存储过程、数据流等)生成的,需要修改为对应的活动类型(比如"ExecutePipeline"、"DataFlow")。 - 时间范围缓冲:设置
RunStartedAfter和RunStartedBefore时添加了10分钟缓冲,避免因为调度延迟导致漏查活动运行,你可以根据实际情况调整这个时间。 - Output属性解析:不同活动的Output结构不同,比如Copy活动的
RowsCopied是直接可用的属性,如果是自定义活动,可能需要从Output的JSON结构中提取对应字段(比如用$run.Output.MyCustomRowCount)。 - 审计导出:最后可以将
$auditResults导出为CSV文件,方便长期维护审计记录。
内容的提问来源于stack exchange,提问作者Veerendra Patil
相关产品推荐
相关产品推荐

