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

如何从Matillion Task History API获取超1000条任务记录?

获取超过1000条Matillion任务历史记录的解决方案

虽然Matillion Task History API本身不支持分页,但可以通过时间范围拆分+过滤条件组合的方式绕过1000条的限制,具体方法如下:

核心思路

利用API支持的startDate和endDate参数,将整体时间区间拆分为多个更小的子区间,确保每个子区间返回的记录数不超过1000条,最后合并所有子区间的结果。

具体步骤

  1. 确定整体时间范围
    先调用一次不带时间过滤的API请求,获取当前返回结果中的最早和最晚任务时间:

    curl -X GET "https://your-matillion-instance-url/api/task-history" \
         -H "Authorization: Bearer YOUR_AUTH_TOKEN"
    

    从返回的JSON数据中提取所有任务的startTime和endTime,确定完整的时间覆盖范围。

  2. 拆分时间子区间
    根据总记录数估算子区间的长度:

    • 如果总记录数在2000-3000条,可按周/天拆分;
    • 如果记录数更多,可按小时拆分。
      确保每个子区间内的任务数不超过1000条。
  3. 批量调用API并合并结果
    针对每个子区间发起API请求,示例如下:

    # 第一个子区间:2024-01-01 至 2024-01-07
    curl -X GET "https://your-matillion-instance-url/api/task-history?startDate=2024-01-01T00:00:00Z&endDate=2024-01-07T23:59:59Z" \
         -H "Authorization: Bearer YOUR_AUTH_TOKEN"
    
    # 第二个子区间:2024-01-08 至 2024-01-14
    curl -X GET "https://your-matillion-instance-url/api/task-history?startDate=2024-01-08T00:00:00Z&endDate=2024-01-14T23:59:59Z" \
         -H "Authorization: Bearer YOUR_AUTH_TOKEN"
    

    将所有请求返回的结果合并,注意通过taskId字段去重(避免跨区间的任务被重复统计)。

进阶优化

如果时间拆分仍无法将单区间记录数控制在1000以内,可以结合其他过滤参数进一步缩小范围:

  • 按projectName过滤:只查询特定项目的任务历史
  • 按environmentName过滤:只查询特定环境的任务历史
  • 按jobName过滤:只查询特定作业的任务历史

示例组合过滤请求:

curl -X GET "https://your-matillion-instance-url/api/task-history?projectName=SalesData&startDate=2024-01-01T00:00:00Z&endDate=2024-01-07T23:59:59Z" \
     -H "Authorization: Bearer YOUR_AUTH_TOKEN"

注意事项

  • 确保时间参数使用API要求的ISO 8601格式(如YYYY-MM-DDTHH:MM:SSZ)
  • 避免短时间内发起大量请求,防止触发Matillion的API速率限制
  • 合并结果时优先使用taskId作为唯一标识,避免重复数据

内容的提问来源于stack exchange,提问作者Rafiul Sabbir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:12:17