简介 #
SmartPip 基于 Apache Airflow 构建,支持所有 Airflow REST API 接口。通过 SmartChart 的 API 服务功能,可以更便捷地调用任务调度接口,实现自动化触发、状态查询等操作。
API 调用前置条件 #
| 步骤 | 说明 |
|---|---|
| 1 | 在 SmartChart 新建 Python 数据集 |
| 2 | 引入 get_auth_hearder() 获取认证头 |
| 3 | 调用 SmartPip API 接口 |
调用示例 #
以下以触发调度为例
- 在smartchart数据集中新建一个python数据源的数据集
- 填写如下代码
from etl.smartpip import get_auth_hearder
import requests
header=get_auth_hearder()
url='{smartpip_url}/api/v1/dags/{dag_id}/dagRuns'
ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
- 如果你想先获取DAG的执行状态再触发,可以增加如下判断
from etl.smartpip import get_auth_hearder
import requests
header=get_auth_hearder()
url='{smartpip_url}/api/v1/dags/{dag_id}/dagRuns?limit=1&order_by=-execution_date'
ds=requests.get(url=url,headers=header).json()
status=ds['dag_runs'][0]['state']
if status!='running':
url='{smartpip_url}/api/v1/dags/{dag_id}/dagRuns'
ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
- 调用方法,请参考 smartchart标准的API服务调用