调用方式

API 接收地址

  1. https://pipeline.qiniu.com

API 返回内容

响应报文

  • 如果请求成功,返回 HTTP 状态码200:
  1. HTTP/1.1 200 OK
  • 如果请求失败,返回包含如下内容的 JSON 字符串(已格式化,便于阅读):
  1. {
  2. "error": "<errMsg string>"
  3. }
  • 如果请求包含数据获取,则返回相应数据的 JSON 字符串;

数据源相关接口

创建批量计算数据源

请求语法

  1. POST /v2/datasources/<DataSourceName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "region": <Region>,
  6. "type": <Type>,
  7. "spec": <Spec>,
  8. "noVerifySchema": <NoVerifySchema>,
  9. "workflow": <WorkflowName>,
  10. "schema": [
  11. {
  12. "key": <Key>,
  13. "valtype": <ValueType>,
  14. "required": <Required>
  15. },
  16. ...
  17. ]
  18. }

参数说明

名称 类型 必填 描述
DataSourceName string 数据源名称
命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
1-128个字符,支持小写字母、数字、下划线
必须以大小写字母或下划线开头
region string 计算与存储所使用的物理资源所在区域
目前仅支持“nb”(华东区域)
type string 数据源类型,可选值为[kodo,hdfs,fusion]
spec json 指定该数据源自身属性相关的信息
noVerifySchema bool 是否推断数据源,默认值为false。当值为true时,会使用用户填写的schema,不会主动触发推断schema操作
workflowName string 指定当前数据源所属的工作流名称,且该工作流必须提前创建
schema array 字段信息
schema.key string 字段名称
命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
1-128个字符,支持小写字母、数字、下划线
必须以大小写字母或下划线开头
schema.valtype string 字段类型
目前仅支持:
boolean:布尔类型
long:整型
date:RFC3339日期格式
float:64位精度浮点型
string:字符串
schema.required bool 是否必填
用户在传输数据时key字段是否必填

当 type 为hdfs的时候 spec 定义如下:

名称 类型 必填 描述
spec.paths array 包含一个或者多个hdfs文件路径
例如:hdfs://192.168.1.1:9000/usr/local
可以使用系统默认魔法变量,下文中详解
spec.fileType string 文件类型,合法取值为jsoncsvtextparquet
spec.delimiter string csv文件分割符,当文件类型为csv时,delimiter为必填项
spec.containsHeader bool csv文件是否包含header标志,当文件类型为csv时,containsHeader为必填项

当type为kodo的时候 spec 定义如下:

名称 类型 必填 描述
spec.bucket string 对象存储数据中心名称,
命名规则:4-63个字符,支持字母、数字、中划线
spec.keyPrefixes array 包含一个或者多个文件前缀;
命名规则:0-128个字符,不支持英文 \<>符号
spec.fileType string 文件类型,合法取值为jsoncsvtextparquet
spec.delimiter string csv文件分割符,当文件类型为csv时,delimiter为必填项
spec.containsHeader bool csv文件是否包含header标志,当文件类型为csv时,containsHeader为必填项

当type为fusion的时候 spec 定义如下:

名称 类型 必填 描述
spec.domains array 融合cdn的域名(目前仅支持单域名)
spec.fileFilter string CDN文件过滤规则
命名规则:0-64个字符
最终的文件地址是’文件前缀+文件过滤规则’
请注意过滤规则不要和文件前缀有重复. 注:当数据源为fusion时,支持2种类型的文件过滤表达式(1:固定时间范围,精确到年月日小时。如果2017-06-01 05:00 ~ 2017-07-01 05:00 2.相对时间范围: 设置魔法变量 fiveDaysAgo = $(now) - 5d 则fileFilter可以写为 $(fiveDaysAgo) ~ $(now) 范围:五天前到当前调度时间。)

!> 注意:region参数的选择以降低传输数据的成本为原则,请尽量选择离自己数据源较近的区域。

更新批量计算数据源

请求语法

  1. PUT /v2/datasources/<DataSourceName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "spec": <Spec>,
  6. "schema": [
  7. {
  8. "key": <Key>,
  9. "valtype": <ValueType>,
  10. "required": <Required>
  11. },
  12. ...
  13. ]
  14. }

!> 注意: 更新批量计算数据源字段信息的时候,不允许减少字段,也不允许更改字段的类型。

根据名称查看批量计算数据源

请求语法

  1. GET /v2/datasources/<DataSourceName>
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "region": <Region>,
  3. "type": <Type>,
  4. "spec": <Spec>,
  5. "schema": [
  6. {
  7. "key": <Key>,
  8. "valtype": <ValueType>,
  9. "required": <Required>
  10. },
  11. ...
  12. ]
  13. }

列举批量计算数据源

请求语法

  1. GET /v2/datasources
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "datasources": [
  3. {
  4. "name": <DataSourceName>,
  5. "region": <Region>,
  6. "type": <Type>,
  7. "spec": <Spec>,
  8. "schema": [
  9. {
  10. "key": <Key>,
  11. "valtype": <ValueType>,
  12. "required": <Required>
  13. },
  14. ...
  15. ]
  16. },
  17. ...
  18. ]
  19. }

根据名称删除批量计算数据源

请求语法

  1. DELETE /v2/datasources/<DataSourceName>
  2. Authorization: Pandora <auth>

批量计算任务相关接口

创建批量计算任务

请求语法

  1. POST /v2/jobs/<JobName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "srcs":[
  6. {
  7. "name":<DataSourceName|JobName>,
  8. "type":<DataSource|Job>,
  9. "tableName": <TableName>
  10. },
  11. ...
  12. ],
  13. "computation": {
  14. "code": <Code>,
  15. "type": <SQL>
  16. },
  17. "container": {
  18. "type": <ContainerType>,
  19. "count": <ContainerCount>
  20. },
  21. "scheduler":{
  22. "type": <crontab|loop|manual|depend>,
  23. "spec": {
  24. "crontab": <0 0 0/1 * *>,
  25. "loop": <1h|3m|....>
  26. }
  27. },
  28. "params":[
  29. {
  30. "name":<ParamName>,
  31. "default":<ParamValue>
  32. },
  33. ...
  34. ]
  35. }

参数说明

名称 类型 必填 描述
srcs array 数据来源
srcs.name string 数据源名称或离线任务名称
srcs.type string 数据来源节点类型
srcs.tableName string 数据来源的表名称
命名规则:1-128个字符,支持字母、数字、下划线,必须以字母开头
computation object 计算方式
computation.code string 代码片段,可以使用魔法变量
computation.type string 代码类型,支持SQL
container map 计算资源
container.type string 规格,目前支持:1U2G ,1U4G,2U4G,4U8G,4U16G ,8U16G ,8U32G ,16U32G,16U64G
container.count int 数量,所选规格 * 数量 <= 100U
scheduler map 调度
scheduler.type string 调度方式,定时、循环或单次执行三选一,下游任务是依赖模式
scheduler.spec.crontab string 定时执行,当调度方式选择为’定时’,此项必填;必须为crontab类型
scheduler.spec.loop string 循环执行,当调度方式选择为’循环’,此项必填;
其值以m(分钟)和h(小时)为单位,由数字与单位组成,例如:5m
params array 魔法变量,系统默认自带6个魔法变量:$(year)=当前年份$(mon)=当前月份$(day)=当前日期$(hour)=当前小时$(min)=当前分钟$(sec)=当前秒数;用户也可以自行定义魔法变量
params.name string 变量名称,命名规则:1-64个字符,支持大小写字母、数字、下划线,大小写字母或下划线开头
params.default string 默认值,命名规则:0-64个字符

scheduler.type 为 depend 的时候,container 依赖上游的配置,该配置不填

scheduler.type 为 manual 和 depend 的时候 spec 可以不填

scheduler.type 为 loop时,不填该 spec.loop 或者该字段为 0,则默认持续运行该任务

scheduler.type 为 depend 的时候,params 依赖上游的配置,该配置不填

!> 注1:scheduler.type 如果是 depend 模式,代表这个离线任务依赖某个上游的离线任务。首先 srcs 内有且仅有一个离线任务数据源。同时该任务不能指定调度的模式、魔法变量和容器规格。这些全部使用上游依赖的离线任务。

!> 注2:srcs.tableName 在此任务的 srcs 中以及依赖的所有上游任务的 srcs 中不能重复。

文件前缀+文件过滤规则举例说明:

文件前缀:audit-log/xxx-log-

文件过滤规则: $(year)-$(mon)-$(day)

最终的文件地址为: audit-log/xxx-log-2017-06-01

更新批量计算任务

请求语法

  1. PUT /v2/jobs/<JobName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "srcs":[
  6. {
  7. "name":<DataSourceName|JobName>,
  8. "fileFilter":<fileFilter>,
  9. "type":<DataSource|Job>,
  10. "tableName": <TableName>
  11. },
  12. ...
  13. ],
  14. "computation": {
  15. "code": <Code>,
  16. "type": <SQL>
  17. },
  18. "container": {
  19. "type": <ContainerType>,
  20. "count": <ContainerCount>
  21. },
  22. "scheduler":{
  23. "type": <crontab|loop|manual|depend>,
  24. "spec": {
  25. "crontab": <0 0 0/1 * *>,
  26. "loop": <1h|3m|....>
  27. }
  28. },
  29. "params":[
  30. {
  31. "name":<ParamName>,
  32. "default":<ParamValue>
  33. },
  34. ...
  35. ]
  36. }

!> 注意:更新时候 srcs, code, container, scheduler, params 校验逻辑和创建的时候相同。下游计算任务不指定container, scheduler, params。更新逻辑为全量更新。需要提前获取所有信息。

列举批量计算任务信息

请求语法

  1. GET /v2/jobs?srcDatasource=[DataSourceName]&srcJob=[JobName]
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "jobs":[
  3. {
  4. "name": <JobName>,
  5. "srcs":[
  6. {
  7. "name":<DataSourceName|JobName>,
  8. "fileFilter":<fileFilter>,
  9. "type":<DataSource|Job>,
  10. "tableName": <TableName>
  11. },
  12. ...
  13. ],
  14. "scheduler":{
  15. "type": <crontab|loop|manual|depend>,
  16. "spec": {
  17. "crontab": <0 0 0/1 * *>,
  18. "loop": <1h|3m|....>
  19. }
  20. },
  21. "computation": {
  22. "code": <Code>,
  23. "type": <SQL>
  24. },
  25. "container": {
  26. "type": <ContainerType>,
  27. "count": <ContainerCount>
  28. },
  29. "params":[
  30. {
  31. "name":<ParamName>,
  32. "default":<ParamValue>
  33. },
  34. ...
  35. ],
  36. "schema": [
  37. {
  38. "key": <Key>,
  39. "valtype": <ValueType>
  40. },
  41. ...
  42. ]
  43. },
  44. ...
  45. ]
  46. }

参数说明

名称 类型 必填 描述
srcDatasource string 依赖离线数据源名字
srcJob string 依赖离线计算任务名字

!> 注意: srcDataSource 和 srcJob 不能同时存在。当两个参数都不指定的时候列举出所有的离线计算任务。

获取单个批量计算任务信息

请求语法

  1. GET /v2/jobs/<JobName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>

响应报文

  1. {
  2. "srcs":[
  3. {
  4. "name":<DataSourceName|JobName>,
  5. "fileFilter":<fileFilter>,
  6. "type":<DataSource|Job>,
  7. "tableName": <TableName>
  8. },
  9. ...
  10. ],
  11. "scheduler":{
  12. "type": <crontab|loop|manual|depend>,
  13. "spec": {
  14. "crontab": <0 0 0/1 * *>,
  15. "loop": <1h|3m|....>
  16. }
  17. },
  18. "computation": {
  19. "code": <SqlCode>,
  20. "type": <SQL>
  21. },
  22. "container": {
  23. "type": <ContainerType>,
  24. "count": <ContainerCount>
  25. },
  26. "params":[
  27. {
  28. "name":<ParamName>,
  29. "default":<ParamValue>
  30. },
  31. ...
  32. ],
  33. "schema": [
  34. {
  35. "key": <Key>,
  36. "valtype": <ValueType>
  37. },
  38. ...
  39. ]
  40. }

启动批量计算任务

请求语法

  1. POST /v2/jobs/<JobName>/actions/start
  2. Authorization: Pandora <auth>
  3. {
  4. "params":[
  5. {
  6. "name":<ParamName>,
  7. "value":<ParamValue>
  8. },
  9. ...
  10. ]
  11. }

参数说明

名称 类型 必填 描述
params array 定义运行时的魔法参数值
params.name string 魔法变量名字
params.value string 运行时魔法变量值

停止批量计算任务

请求语法

  1. POST /v2/jobs/<JobName>/actions/stop
  2. Authorization: Pandora <auth>

删除批量计算任务信息

请求语法

  1. DELETE /v2/jobs/<JobName>
  2. Authorization: Pandora <auth>

获取数据源schema

请求语法

  1. POST /v2/schemas
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <Kodo|HDFS|Fusion>,
  6. "spec": <Spec>
  7. }

参数说明

Type 为 Kodo 时,Spec结构:

名称 类型 必填 描述
spec.bucket string 对象存储的存储空间
spec.keyPrefixes array 一个或者多个文件前缀
spec.fileType string 文件类型,合法取值为json, parquet, text

Type 为 HDFS 时,Spec 结构:

名称 类型 必填 描述
spec.paths array 一个或者多个文件路径
spec.fileType string 文件类型,合法取值为json, parquet, text

Type为 Fusion 时,Spec 为空结构体.

响应内容

  1. json or parquet return :
  2. {
  3. "schema": [
  4. {
  5. "key": <Key>,
  6. "valtype": <ValueType>
  7. },
  8. ...
  9. ]
  10. }
  11. text return :
  12. {
  13. "schema": [
  14. {
  15. "key": <text>,
  16. "valtype": <String>
  17. },
  18. ...
  19. ]
  20. }

批量计算任务导出接口

导出数据至云存储

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <kodo>,
  6. "spec": {
  7. "bucket": <Bucket>,
  8. "keyPrefix": <Prefix|Path>,
  9. "format": <ExportFormat>,
  10. "delimiter": <Delimiter>,
  11. "containsHeader":<True|False>
  12. "compression": <compression>,
  13. "retention": <Retention>,
  14. "partitionBy": <PartitionBy>,
  15. "fileCount": <FileCount>,
  16. "saveMode": <SaveMode>
  17. }
  18. }

参数说明

参数 类型 必填 说明
type string 导出的类型,目前允许的值为”kodo”
bucket string 对象存储bucket名称
keyPrefix string 导出的文件名的前缀,当离线任务的schedulermanual的时候,就是文件名
命名规则:0-128个字符,不支持英文 :\<>符号
format string 文件导出格式,支持jsoncsvtextorcparquet五种类型
delimiter string csv文件分割符,当文件类型为csv时,delimiter为必填项
containsHeader bool csv文件是否包含header标志,当文件类型为csv时,containsHeader为必填项
compression string 压缩类型, 具体支持类型与format值相关,详见注1
retention int 数据储存时限,以天为单位,当不大于0或该字段为空时,则永久储存
partitionBy array 指定作为分区的字段,为一个字符数组,合法的元素值是字段名称
fileCount int 计算结果导出的文件数量,应当大于0,小于等于1000
saveMode string 计算结果的保存模式:overwrite(默认) 文件已经存在则覆盖掉, append 在已有的文件上追加,errorIfExists 文件已经存在的时候报错误,ignore 文件已经存在 则认为跑成功了,不报错

!> 注1: 当用户指定formatjsoncsvtext时, compression仅支持none(不压缩)、bzip2, gzip, lz4, snappydeflate; 当用户指定formatorc时, compression仅支持none(不压缩)、snappy, zliblzo; 当用户指定formatparquet时, compression仅支持none(不压缩)、snappy, gziplzo

!> 注2: keyPrefix字段表示导出文件名称的前缀,该字段可选,默认值为””(生成文件名会自动加上时间戳格式为yyyy-MM-dd-HH-mm-ss),如果使用了一个或者多个魔法变量时不会自动添加时间戳,支持魔法变量,采用$(var)的形式求值,目前可用的魔法变量var如下:

  • year 上传时的年份
  • mon 上传时的月份
  • day 上传时的日期
  • hour 上传时的小时
  • min 上传时的分钟
  • sec 上传时的秒钟

导出数据至 HDFS

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <hdfs>,
  6. "spec": {
  7. "path": <path_to_write>,
  8. "format": <ExportFormat>,
  9. "delimiter": <Delimiter>,
  10. "compression": <compression>,
  11. "partitionBy": <PartitionBy>,
  12. "fileCount": <FileCount>,
  13. "saveMode": <SaveMode>
  14. }
  15. }

参数说明

参数 类型 必填 说明
type string 导出的类型,目前允许的值为”kodo”
path string 导出的路径。例如:hdfs://192.168.1.1:9000/usr/local;命名规则:0-128个字符,不支持英文 \<>符号
format string 文件导出格式,支持,jsoncsvtextorcparquet五种类型
delimiter string csv文件分割符,当文件类型为csv时,delimiter为必填项
compression string 压缩类型, 具体支持类型与format值相关,详见注1
partitionBy array 指定作为分区的字段,为一个字符数组,合法的元素值是字段名称
fileCount int 计算结果导出的文件数量,应当大于0,小于等于1000
saveMode string 计算结果的保存模式:overwrite(默认) 文件已经存在则覆盖掉, append 在已有的文件上追加,errorIfExists 文件已经存在的时候报错误,ignore 文件已经存在 则认为跑成功了,不报错

!> 注1: 当用户指定formatjsoncsvtext时, compression仅支持none(不压缩)、bzip2, gzip, lz4, snappydeflate; 当用户指定formatorc时, compression仅支持none(不压缩)、snappy, zliblzo; 当用户指定formatparquet时, compression仅支持none(不压缩)、snappy, gziplzo

!> 注2: path字段支持魔法变量,采用$(var)的形式求值,目前可用的魔法变量var如下:

  • year 上传时的年份
  • mon 上传时的月份
  • day 上传时的日期
  • hour 上传时的小时
  • min 上传时的分钟
  • sec 上传时的秒钟

导出数据至 HTTP 地址

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <http>,
  6. "spec": {
  7. "host": <Host>,
  8. "uri": <RequestURI>,
  9. "format": <ExportFormat>
  10. }
  11. }

参数说明

参数 类型 必填 说明
host string 服务器地址(ip或域名)
例如:https://pipeline.qiniu.com
127.0.0.1:7758
uri string 请求资源路径(具体地址,不包含ip或域名)
例如:/test/repos
format string 导出方式
支持textjson
如果没有填写此项,默认为text

!> 注1: 当导出格式为text时,导出的服务端需要支持Content-Type(MimeType)text/plain的请求; 当导出格式为json时,导出服务端需要支持Content-Type(MimeType)application/json的请求。
!> 注2: text的导出数据格式为:Key1=Value1\tKey2=Value2\tKey3=Value3; json的导出数据格式为:{"Key1": Value1, "Key2": Value2, "Key3": Value3}

导出数据至日志检索服务

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <logdb>,
  6. "spec": {
  7. "destRepoName": <DestRepoName>,
  8. "omitInvalid": <OmitInvalid>,
  9. "doc": {
  10. "LogdbRepoField1": <#JobField1>,
  11. "LogdbRepoField2": <#JobField2>,
  12. "LogdbRepoField3": <#JobField3>,
  13. ......
  14. }
  15. }

参数说明

参数 类型 必填 说明
destRepoName string 日志仓库名称
omitInvalid bool 是否忽略无效数据,默认值为 false
doc map 字段关系说明
JobField表示离线Job的字段名称
LogdbRepoField表示目标日志仓库字段名称

导出数据至时序数据库服务

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <tsdb>,
  6. "spec": {
  7. "destRepoName": <DestRepoName>,
  8. "omitInvalid": <OmitInvalid>,
  9. "series": <Series>,
  10. "tags": {
  11. "tag1": <#JobField1>,
  12. "tag2": <#JobField2>,
  13. ...
  14. },
  15. "fields": {
  16. "field1": <#JobField3>,
  17. "field2": <#JobField4>,
  18. ...
  19. },
  20. "timestamp": <#JobField5>
  21. }

参数说明

参数 类型 必填 说明
destRepoName string 日志仓库名称
omitInvalid bool 是否忽略无效数据,默认值为 false
tags map 索引字段
fields map 普通字段
timestamp string 时间戳字段,JobField表示离线 Job 的字段名称

导出数据至报表平台

请求语法

  1. POST /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <report>,
  6. "spec": {
  7. "dbName": <DBName>,
  8. "tableName": <TableName>,
  9. "columns": {
  10. "column1": <#JobField1>,
  11. "column2": <#JobField2>,
  12. "column3": <#JobField3>,
  13. ...
  14. },
  15. "saveMode": <SaveMode>
  16. }

参数说明

参数 类型 必填 说明
dbName string 数据库名称
tableName bool 数据表名称
saveMode string 计算结果的保存模式:overwrite(默认) 默认重写整张表, append 在已有的表数据上追加数据。默认append模式
columns map 字段关系说明
JobField表示离线Job的字段名称
columnN表示报表服务数据表字段名称

更新导出任务

请求语法

  1. PUT /v2/jobs/<JobName>/exports/<ExportName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "spec": <Spec>
  6. }

按照名称查看导出任务

请求语法

  1. GET /v2/jobs/<JobName>/exports/<ExportName>
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "type": <Type>,
  3. "spec": <Spec>
  4. }

列举导出任务

请求语法

  1. GET /v2/jobs/<JobName>/exports
  2. Authorization: Pandora <auth>

响应报文

  1. Content-Type: application/json
  2. {
  3. "exports": [
  4. {
  5. "name": <ExportName>,
  6. "type": <Type>,
  7. "spec": <Spec>
  8. },
  9. ...
  10. ]
  11. }

按照名称删除导出任务

请求语法

  1. DELETE /v2/jobs/<JobName>/exports/<ExportName>
  2. Authorization: Pandora <auth>

查看历史批量计算任务

请求语法

  1. GET /v2/jobs/<jobName>/history?page=1&size=20&sortBy=endTime&status=xx&runId=-1
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>

参数说明

参数 类型 必填 说明
page int 分页页数
size int 分页大小
sortBy string 根据哪个字段排序, endTime代表按照字段升序排列,-endTime按照逆序排列
status string
runId int 查询某个运行批次的状态,-1代表最近一次

响应报文

  1. {
  2. "total": <TotalCnt>, # 总共运行批次
  3. "history":[
  4. {
  5. "runId" : <RunId>, # 运行批次
  6. "batchTime": "<batchTime>", #批次时间,每个批次第一次被调度的时间,是不可变的。
  7. "startTime": <StartTime>,
  8. "endTime": <EndTime>,
  9. "duration": <Duration>,
  10. "status": <ReadySuccessfulFailedRunningCanceled>,
  11. "message": <Message>
  12. },
  13. ]
  14. }

参数说明

参数 类型 必填 说明
total int 总运行批次次数
history array 运行历史
history.runId int 运行批次
history.batchTime string 批次时间
history.startTime string 启动时间
history.endTime string 终止事件,如果为Running,则为当前时间
history.duration int 批次运行时间,单位秒
history.status string
history.message string 运行、出错信息,比如运行成功、内存溢出、数据损坏

停止批次任务

请求语法

  1. POST /v2/batch/actions/stop
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "jobName": "<jobName>",
  6. "runId": "<runId>"
  7. }

参数说明

参数 类型 必填 说明
jobName string job名称
runId string 待操作的运行批次ID

响应报文

  1. {
  2. "preStatus": "Running",
  3. "postStatus": "Canceled"
  4. }

参数说明

参数 类型 必填 说明
preStatus string 停止前状态
postStatus string 停止后状态

状态说明

状态 说明 备注
Ready 就绪 不允许停止操作
Successful 成功 不允许停止操作
Failed 失败 不允许停止操作
Running 运行中 允许停止操作
Canceled 已停止 不允许停止操作
Restarting 重启中 用于重启中间状态,不允许任何操作
Cancelling 停止中 用于停止中间状态,不允许任何操作

重跑批次任务

请求语法

  1. POST /v2/batch/actions/rerun
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "jobName": "<jobName>",
  6. "runId": "<runId>"
  7. }

参数说明

参数 类型 必填 说明
jobName string job名称
runId string 待操作的运行批次ID

响应报文

  1. {
  2. "preStatus": "Failed",
  3. "postStatus": "Running",
  4. "rerunCount": 2
  5. }

参数说明

参数 类型 必填 说明
preStatus string 重跑前状态
postStatus string 重跑后状态
rerunCount int 重跑次数

状态说明

状态 说明 备注
Ready 就绪 不允许重跑
Successful 成功 允许重跑
Failed 失败 允许重跑
Running 运行中 不允许重跑(请先停止)
Canceled 已停止 允许重跑
Restarting 重启中 用于重启中间状态,不允许任何操作
Cancelling 停止中 用于停止中间状态,不允许任何操作

魔法变量接口

创建魔法变量

请求语法

  1. POST /v2/variables/<VariableName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <Type>,
  6. "value": <Value>,
  7. "format": <Format>,
  8. }

参数说明

名称 类型 必填 描述
VariableName string 魔法变量名称
命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
1-128个字符,支持小写字母、数字、下划线
必须以大小写字母或下划线开头
type string 魔法变量类型,可选值为timestring,其中time类型表示该变量的取值与当前时间有关,如$(now)-5h,其中h表示小时,也支持dm,分别表示天和分钟
value string 魔法变量值,如time类型变量可为$(now)-5hstring类型常量可为2017-01-01
format string 可选 仅当type为time时需要填写,表示指定的时间格式,如yyyy-MM-dd HH:mm:ss

!> 备注:系统默认可用的魔法变量如下:

  • year 表示typetimevalue为当前年份;formatyyyy, 如2017
  • mon 表示typetimevalue为当前月份;formatMM, 如01
  • day 表示typetimevalue为当前日期;formatdd, 如01
  • hour 表示typetimevalue为当前小时;formatHH, 如00
  • min 表示typetimevalue为当前分钟;formatmm, 如00
  • sec 表示typetimevalue为当前秒数;formatss, 如00
  • date 表示typetimevalue为当前秒数;formatyyyy-MM-dd, 如2017-01-01
  • now 表示typetimevalue为当前时间;formatyyyy-MM-dd HH:mm:ss, 如2017-01-01 00:00:00

更新魔法变量

请求语法

  1. PUT /v2/variables/<VariableName>
  2. Content-Type: application/json
  3. Authorization: Pandora <auth>
  4. {
  5. "type": <Type>,
  6. "value": <Value>,
  7. "format": <Format>
  8. }

根据名称查看魔法变量

请求语法

  1. GET /v2/variables/<VariableName>
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "name": <Name>,
  3. "type": <Type>,
  4. "value": <Value>,
  5. "format": <Format>
  6. }

列举魔法变量

请求语法

  1. GET /v2/variables?type=<Type>
  2. Authorization: Pandora <auth>

响应报文

  1. {
  2. "variables": [
  3. {
  4. "name": <VariableName>,
  5. "type": <Type>,
  6. "value": <Value>,
  7. "format": <Format>
  8. },
  9. ...
  10. ]
  11. }

!> 注意:请求url中type参数仅支持systemuser, 分别表示列举出系统内置变量和用户本身以创建变量。

根据名称删除魔法变量

请求语法

  1. DELETE /v2/variables/<VariableName>
  2. Authorization: Pandora <auth>

错误代码及相关说明

错误码 错误描述
500 服务器内部错误
411 E18003: 缺少内容长度
400 E18004: 无效的内容长度
413 E18005: 请求实体过大
400 E18006: 请求实体为空
400 E18007: 请求实体格式非法
400 E18008: 字段长度超过限制
409 E18101: 仓库已经存在
404 E18102: 仓库不存在
400 E18103: 无效的仓库名称
400 E18104: 无效的日期格式
400 E18105: 仓库Schema为空
400 E18106: 无效的字段名称
400 E18107: 不支持的字段类型
400 E18108: 源仓库数量超过限制
400 E18109: 无效的仓库模式
400 E18110: 无效的字段格式
404 E18111: 字段不存在
400 E18112: 仓库上存在着级联的转换任务或者导出任务
409 E18113: 仓库处于删除状态中
400 E18117: Plugin名称不合法
404 E18120: 共享资源池不存在
404 E18122: 导出的仓库在logd中不存在
202 E18124: 仓库处于创建中
400 E18125: 读取gzip的打点请求体出错
409 E18201: 计算任务已经存在
404 E18202: 计算任务不存在
415 E18203: 计算任务类型不支持
409 E18204: 计算任务的源仓库与目的仓库相同
409 E18205: 目的仓库已经被其他转换任务占用
400 E18206: 目的仓库必须通过删除计算任务的方式删除
400 E18207: 计算任务描述格式非法
400 E18208: 计算任务interval非法
400 E18209: 计算任务中的SQL语句非法
400 E18211: 计算任务中plugin输出字段类型非法
400 E18212: 仓库的区域信息和数据中心不相符
400 E18213: 计算任务中容器类型非法
400 E18214: 计算任务中容器数量非法
409 E18215: 共享资源池处于使用中
404 E18216: Plugin不存在
409 E18217: Plugin已存在
409 E18218: 共享资源池已存在
400 E18219: Plugin上传内容长度不一致
400 E18220: Plugin上传内容的MD5不一致
400 E18221: 共享资源池名称非法
400 E18222: 共享资源池的区域信息不一致
400 E18223: 不能向计算任务的目标仓库中打点
409 E18301: 导出任务已经存在
404 E18302: 导出任务不存在
400 E18303: 提交导出任务失败
400 E18304: 删除导出任务失败
400 E18305: 导出任务出现错误
401 bad token:鉴权不通过 、token已过期、机器时间未同步
400 E18639: 工作流名称不合法
409 E18640: 工作流已存在
404 E18641: 工作流不存在
400 E18642: 工作流的格式非法
400 E18644: 当前工作流禁止启动
400 E18645: 当前工作流禁止停止