You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks环境下通过Azure Data Factory Python SDK使用continuation_token获取管道运行详情的下一页数据

如何在Azure Python SDK中获取ADF管道运行记录的下一页数据

其实你不需要找新的函数——继续使用你已经在调用的query_by_factory方法就可以处理分页,只需要把返回的continuation_token作为参数传入下一次调用即可。

核心逻辑说明

Azure Python SDK中大多数分页场景的设计都是复用同一个查询方法,通过传入上一次响应中的continuation token来获取下一页数据,ADF的管道运行查询也遵循这个规则。你之前尝试的PipelineRun()是数据模型类,用来表示单条管道运行记录,自然无法处理分页请求。

完整代码示例

下面是一个完整的循环获取所有管道运行记录的示例:

from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.mgmt.datafactory.models import RunFilterParameters

# 假设你已经完成了客户端的身份验证和初始化
adf_client = DataFactoryManagementClient(your_credential, your_subscription_id)

resource_group = "your-resource-group-name"
factory_name = "your-adf-factory-name"

# 定义初始筛选条件(根据你的需求调整时间范围或其他筛选器)
filter_params = RunFilterParameters(
    last_updated_after="2024-01-01T00:00:00Z",
    last_updated_before="2024-02-01T00:00:00Z"
)

all_runs = []
continuation_token = None

# 循环获取所有分页数据
while True:
    # 调用query_by_factory,传入continuation_token(首次调用为None)
    response = adf_client.pipeline_runs.query_by_factory(
        resource_group_name=resource_group,
        factory_name=factory_name,
        filter_parameters=filter_params,
        continuation_token=continuation_token
    )
    
    # 将当前页的记录添加到总列表
    all_runs.extend(response.value)
    
    # 更新continuation_token为当前响应中的令牌
    continuation_token = response.continuation_token
    
    # 没有令牌说明所有数据已获取完成,退出循环
    if not continuation_token:
        break

print(f"成功获取到 {len(all_runs)} 条管道运行记录")

关键注意点

  • continuation_token参数是query_by_factory方法的可选参数,首次调用时不需要传(或传None)
  • 每次调用后,从响应对象的continuation_token属性获取下一页的令牌,如果该值为空,说明已经没有更多数据了
  • 筛选参数(filter_parameters)在分页过程中保持不变,不要修改,否则会重置分页状态

内容的提问来源于stack exchange,提问作者Vikrant Bhalerao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:17:54