• API接收地址
  • API返回内容
  • 创建消息队列(数据源)
  • 查看所有消息队列
  • 根据名称查询消息队列
  • 根据名称删除消息队列
  • 根据名称更新消息队列
  • 创建流式计算任务
  • 上传jar包(自定义计算使用)
  • 查看所有流式计算任务
  • 查看指定流式计算任务的信息
  • 修改流式计算任务
  • 删除流式计算任务
  • 流式导出数据至HTTP地址
  • 流式导出数据至时序数据库
  • 流式导出数据至日志检索服务
  • 流式导出数据至对象存储服务
  • 流式导出数据至报表平台
  • 更新流式导出任务
  • 查看所有流式导出任务
  • 根据名称查看流式导出任务
  • 根据名称删除流式导出任务
  • 错误代码及相关说明

    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/repos/<RepoName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "region": <Region>,
    6. "schema": [
    7. {
    8. "key": <Key>,
    9. "valtype": <ValueType>,
    10. "elemtype": <ElemType>,
    11. "required": <Required>,
    12. "schema": [
    13. ...
    14. ]
    15. },
    16. ...
    17. ],
    18. "options":{
    19. "withIP":<ipkeyname>
    20. }
    21. }

    请求内容

    参数 类型 必填 说明
    RepoName string 消息队列名称
    命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
    region string 计算与存储所使用的物理资源所在区域
    目前仅支持“nb”(华东区域)
    schema array 数据的字段信息
    由‘字段名称’、‘字段类型’、‘数组类型’、‘是否必填’组成
    schema.key string 字段名称
    命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
    schema.valtype string 字段类型
    目前仅支持:
    boolean:布尔类型
    long:整型
    date:RFC3339日期格式
    float:64位精度浮点型
    string:字符串
    array:数组
    map:嵌套类型,可嵌套,最多5层,类似于json object
    jsonstring:符合json格式的字符串
    schema.elemtype string 数组类型
    schema.valtype:"array"时必填
    目前仅支持longfloatstring
    schema.required bool 是否必填
    用户在传输数据时key字段是否必填
    options map 表达一些repo的可选项
    options.withIP string 在写入的数据中加入用户的来源IP信息,并命名为字段,加入到schema中,类型为string;若命名为空则不加入。

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/Test_Repo \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d '{
    5. "region": "nb",
    6. "schema": [
    7. {
    8. "key": "userName",
    9. "valtype": "string",
    10. "required": true
    11. },
    12. {
    13. "key": "age",
    14. "valtype": "float",
    15. "required": true
    16. },
    17. {
    18. "key": "addresses",
    19. "valtype": "array",
    20. "elemtype": "long",
    21. "required": true
    22. },
    23. {
    24. "key": "profile",
    25. "valtype": "map",
    26. "required": true,
    27. "schema": [
    28. {
    29. "key": "position",
    30. "valtype": "string",
    31. "required": true
    32. },
    33. {
    34. "key": "salary",
    35. "valtype": "float",
    36. "required": true
    37. },
    38. {
    39. "key": "education",
    40. "valtype": "array",
    41. "elemtype": "string",
    42. "required": false
    43. }
    44. ]
    45. }
    46. ]
    47. }'

    查看所有消息队列

    请求语法

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

    响应报文

    1. Content-Type: application/json
    2. {
    3. "repos": [
    4. {
    5. "name": <RepoName>,
    6. "region": <Region>,
    7. "derivedFrom": <TransformName>
    8. },
    9. ...
    10. ]
    11. }

    响应内容

    参数 类型 必填 说明
    derivedFrom string - 表示这个消息队列是由哪个transform生成的
    如果此项为空,说明该消息队列是由用户自行创建的

    根据名称查询消息队列

    请求语法

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

    响应报文

    1. Content-Type: application/json
    2. {
    3. "region": <Region>,
    4. "derivedFrom": <TransformName>,
    5. "schema": [
    6. {
    7. "key": <Key>,
    8. "valtype": <ValueType>,
    9. "elemtype": <ElemType>,
    10. "required": <Required>,
    11. "schema": [
    12. ...
    13. ]
    14. },
    15. ...
    16. ]
    17. }

    根据名称删除消息队列

    请求语法

    1. DELETE /v2/repos/<RepoName>
    2. Authorization: Pandora <auth>

    根据名称更新消息队列

    请求语法

    1. PUT /v2/repos/<RepoName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "schema": [
    6. {
    7. "key": <Key>,
    8. "valtype": <ValueType>,
    9. "elemtype": <ElemType>,
    10. "required": <Required>,
    11. "schema": [
    12. ...
    13. ]
    14. },
    15. ...
    16. ]
    17. }

    !> 注意: 更新字段信息时,如果需要保留已有的字段信息,也需要填写上去,这是一次全量更新。

    创建流式计算任务

    请求语法

    1. POST /v2/repos/<RepoName>/transforms/<TransformName>/to/<DestinationRepoName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "plugin": {
    6. "name": <PluginName>,
    7. "output": [
    8. {
    9. "name": <FieldName1>,
    10. "type": <FieldType>
    11. },
    12. {
    13. "name": <FieldName2>
    14. },
    15. ......
    16. ],
    17. },
    18. "mode": <Mode>,
    19. "code": <Code>,
    20. "interval": <Interval>,
    21. "container": {
    22. "type": <ContainerType>,
    23. "count": <ContainerCount>
    24. },
    25. "whence": <TransformWhence>,
    26. "destrepo": [
    27. {
    28. "key": <Key>,
    29. "valtype": <ValueType>,
    30. "elemtype": <ElemType>,
    31. "required": <Required>,
    32. "schema": [
    33. ...
    34. ]
    35. },
    36. ...
    37. ]
    38. }

    请求内容

    参数 类型 必填 说明
    RepoName string 指定一个消息队列的名称
    TransformName string 计算任务名称
    用来标识该消息队列的唯一性
    命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
    DestinationRepoName string 计算结果输出消息队列
    如果该消息队列不存在
    将自动创建一个
    plugin json 自定义计算
    name string 自定义计算名称
    output json 输出数组
    即这个plugin计算完成后,输出的数据结果的结构和类型
    也可以理解为一张表,包含字段名称和字段类型
    output.name string 输出字段名称
    命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
    output.type string 输出字段类型
    支持stringlongfloat三种
    时间类型使用long类型
    默认为string类型
    mode string 该计算任务使用的语言类型
    目前仅支持sql
    code string sql语句代码
    interval string 计算任务的运行时间间隔
    目前支持5s10s20s30s
    1m5m10m的粒度
    如果不指定,系统默认使用1m
    container map 计算资源的数量及类型
    type string 目前支持1U2G1U4G2U4G4U8G4U16G8U16G
    分别代表
    1核(CPU)2G(内存)1核(CPU)4G(内存)2核(CPU)4G(内存)4核(CPU)8G(内存)4核(CPU)16G(内存)8核(CPU)16G(内存)
    count int 指资源type的数量,最小为1,没有上限
    whence string 计算数据的起始位置, 目前支持oldest、newest, 分别表示从指定仓库的最早、最新数据开始计算, 默认值为newest

    !> 注意:modecode是基础的数据计算方式,自定义计算(plugin)是更为高级的数据计算方式,要注意mode/code和自定义计算两种计算方式可以共存,但不可以一种都不指定。当自定义计算和mode/code共存时,系统优先执行自定义计算,后执行mode/code。

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/test_repo/transforms/transform_job/to/compute_repo \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d {
    5. "mode": "sql",
    6. "code": "select count(*) from test_repo",
    7. "interval": "1m",
    8. "container": {
    9. "type": "M16C4",
    10. "count": 5
    11. }
    12. }

    上传jar包(自定义计算使用)

    请求语法

    1. POST /v2/plugins/<PluginName>
    2. Content-Type: application/java-archive
    3. Content-MD5: <ContentMD5>
    4. Authorization: Pandora <auth>

    请求内容

    参数 类型 必填 说明
    PluginName string plugin名称
    命名规则: ^[a-zA-Z][a-zA-Z0-9_\\.]{0,127}[a-zA-Z0-9_]$
    ContentMD5 string jar包的MD5码

    Plugin说明:

    • Jar包的命名必须和包含代码方法的类名一致
    • 上传的Plugin Jar包最大为100MB。
    • Content-MD5头部是可选的。如果上传plugin的时候带上该头部服务器会校验上传数据的校验和,如果两者不一致服务器将拒绝上传。如果不带该头部,服务器不做任何校验和的检查。
    • 是先计算plugin内容的MD5,再对MD5做一次base64编码转化为字符串。例如qiniu这个字符串的Content-MD5是gLL29S04bTCxYd2kCqsEIQ==而不是7b9d6b4d89f6825a196d4cc50fdbedc5
    • PluginName必须与用户所编写的Parser类的全限定名保持一致,否则transform执行plugin会失败。 例如NginxLogParser位于com.qiniu包,PluginName须写为com.qiniu.NginxLogParser。

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/plugins/ComputeSumDataParser \
    2. -H 'Content-Type: application/java-archive' \
    3. -H 'Content-MD5: 900150983cd24fb0d6963f7d28e17f72' \
    4. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    5. -T ./TestPlugin.jar \

    查看所有流式计算任务

    请求语法

    1. GET /v2/repos/<RepoName>/transforms
    2. Authorization: Pandora <auth>

    查看指定流式计算任务的信息

    请求语法

    1. GET /v2/repos/<RepoName>/transforms/<TransformName>
    2. Authorization: Pandora <auth>

    响应报文

    1. 200 OK
    2. Transform-Type: application/<TransformType>
    3. {
    4. "name": "<TransformName1>",
    5. "to": "<DestRepo1>",
    6. "spec": {
    7. "plugin": {
    8. "name": <PluginName>,
    9. "output": [
    10. {
    11. "name": <FieldName1>,
    12. "type": <FieldType>
    13. },
    14. {
    15. "name": <FieldName2>
    16. },
    17. ...
    18. ],
    19. },
    20. "mode": <Mode>,
    21. "code": <Code>,
    22. "interval": <Interval>
    23. }
    24. }

    修改流式计算任务

    请求语法

    1. PUT /v2/repos/<RepoName>/transforms/<TransformName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "plugin": {
    6. "name": <PluginName>,
    7. "output": [
    8. {
    9. "name": <FieldName1>,
    10. "type": <FieldType>
    11. },
    12. {
    13. "name": <FieldName2>
    14. },
    15. ...
    16. ],
    17. },
    18. "code": <Code>,
    19. "interval": <Interval>,
    20. "container": {
    21. "type": <ContainerType>,
    22. "count": <ContainerCount>
    23. }
    24. }

    注意:

    1.更新计算任务,可以同时更新pluginsql代码运行时间间隔配额,也可以只更新其中一种,但不能一种都不指定。

    2.在更新sqlplugin的输出字段时,只能添加新的字段,不能删除和更改已经存在的字段。

    删除流式计算任务

    请求语法

    1. DELETE /v2/repos/<RepoName>/transforms/<TransformName>
    2. Authorization: Pandora <auth>

    流式导出数据至HTTP地址

    请求语法

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

    请求内容

    参数 类型 必填 说明
    RepoName string 需要导出数据的消息队列名称
    ExportName string 导出任务名称
    命名规则: ^[a-zA-Z_][a-zA-Z0-9_]{0,127}$
    Type string 导出方式
    目前支持httplogdbmongotsdbkodoreport
    在这里我们选择http
    whence string 导出数据的起始位置
    目前支持oldestnewest,
    分别表示从指定仓库的最早最新数据开始导出
    默认值为oldest
    Spec json 导出任务的参数主体
    选择不同的type
    Spec也需要填写不同的参数
    将在下面分开讲解
    host string 服务器地址(ip或域名)
    例如:https://pipeline.qiniu.com
    127.0.0.1:7758
    uri string 请求资源路径(具体地址,不包含ip或域名)
    例如:/test/repos
    format string 导出方式
    支持textjson
    如果没有填写此项,默认为text

    !> 注意: 导出数据格式和推送数据相同。

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/test_Repo/exports/export_job1 \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d '{
    5. "type": "http",
    6. "spec": {
    7. "host": "www.qiniu.com",
    8. "uri": "/test/repos"
    9. }
    10. }'

    流式导出数据至时序数据库

    请求语法

    1. POST /v2/repos/<RepoName>/exports/<ExportName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "type": <tsdb>,
    6. "whence": <ExportWhence>,
    7. "spec": {
    8. "destRepoName": <DestRepoName>,
    9. "series": <SeriesName>,
    10. "omitInvalid": <OmitInvalid>,
    11. "omitEmpty": <OmitEmpty>,
    12. "tags": {
    13. "tag1": <#key1>,
    14. "tag2": <#key2>,
    15. ...
    16. },
    17. "fields": {
    18. "field1": <#key1>,
    19. "field2": <#key2>,
    20. ...
    21. },
    22. "timestamp": <#key1>,
    23. }
    24. }

    请求内容

    参数 类型 必填 说明
    destRepoName string 数据库名称
    series string 序列名称
    omitInvalid bool 是否忽略无效数据,默认值为false
    omitEmpty bool 当某条数据的字段取值全部为null时是否忽略该条数据,默认值为false,设置为true时可避免导出没有意义的数据
    tags map 索引字段
    fields map 普通字段
    timestamp string 时间戳字段
    会用rfc3339日期格式进行解析
    如果格式不正确则会抛弃这一条数据
    如果此项为空,则默认使用当前时间

    时序数据库中的timestamp字段的类型必须为 date;
    消息队列中字段类型为:Long/String/Date 的字段都可以导出至时序数据库中的 timestamp 字段

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/test_Repo/exports/export_job4 \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d '{
    5. "type": "tsdb",
    6. "spec":{
    7. "destRepoName": "test_tsdb",
    8. "series": "req_io",
    9. "tags": {"type": "#type","src": "#src","zone": "#zone","time": "#time","bucket": "#bucket","domain": "#domain"
    10. },
    11. "fields": {"hits": "#hits","flow": "#flow"},
    12. }
    13. }'

    流式导出数据至日志检索服务

    请求语法

    1. POST /v2/repos/<RepoName>/exports/<ExportName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "type": <logdb>,
    6. "whence": <ExportWhence>,
    7. "spec": {
    8. "destRepoName": <DestRepoName>,
    9. "omitInvalid": <OmitInvalid>,
    10. "omitEmpty": <OmitEmpty>,
    11. "doc": {
    12. "toRepoSchema1": <#fromRepoSchema1>,
    13. "toRepoSchema2": {
    14. "toRepoSchema3": <#fromRepoSchema3>,
    15. }
    16. ......
    17. }
    18. }

    请求内容

    参数 类型 必填 说明
    destRepoName string 日志仓库名称
    omitInvalid bool 是否忽略无效数据,默认值为false
    omitEmpty bool 当某条数据的字段取值全部为null时是否忽略该条数据,默认值为false,设置为true时可避免导出没有意义的数据
    doc map 字段关系说明
    fromRepoSchema表示源消息队列字段名称
    toRepoSchema表示目标日志仓库字段名称

    消息队列中,字段的类型与日志检索服务中的字段类型需要作出如下对应:

    消息队列类型:string 对应 日志检索服务:string / date

    消息队列类型:long 对应 日志检索服务:long / date

    消息队列类型:float 对应 日志检索服务:float

    消息队列类型:array[string] 对应 日志检索服务:string

    消息队列类型:array[long] 对应 日志检索服务:long

    消息队列类型:array[float] 对应 日志检索服务:float

    消息队列类型:map 对应 日志检索服务:object

    消息队列类型:date 对应 日志检索服务:date

    消息队列类型:jsonstring 对应 日志检索服务:object

    !> 注意: 对于消息队列的jsonstring类型,导出至日志检索服务的object类型时,会将内嵌字段名称中所有圆点(.)替换为下划线(由于日志检索服务的object类型的内嵌字段名称不支持圆点(.))。例如,消息队列中某一个字段f1的类型为jsonstring,取值为{"education.level": "university"},最终导出至日志检索服务为{"education_level": "university"},内嵌字段education.level中的圆点(,)被替换为下划线(_)。

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/test_Repo/exports/export_job2 \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d '{
    5. "type": "logdb",
    6. "spec": {
    7. "destRepoName": "logdb_testRepo",
    8. "doc":{
    9. "user":"userName",
    10. "profile":{
    11. "age":"age"
    12. }
    13. }
    14. }
    15. }'

    流式导出数据至对象存储服务

    请求语法

    1. POST /v2/repos/<RepoName>/exports/<ExportName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "type": <kodo>,
    6. "whence": <ExportWhence>,
    7. "spec": {
    8. "bucket": <Bucket>,
    9. "keyPrefix": <KeyPrefix>,
    10. "email": <Email>,
    11. "accessKey": <AccessKey>,
    12. "fields": {
    13. "key1": <#value1>,
    14. "key2": <#value2>,
    15. ...
    16. },
    17. "rotateStrategy": <RotateStrategy>,
    18. "rotateSize": <RotateSize>,
    19. "rotateInterval": <RotateInterval>,
    20. "format": <Format>,
    21. "delimiter": <Delimiter>,
    22. "compress": <true|false>,
    23. "retention": <Retention>
    24. }
    25. }

    请求内容

    参数 类型 必填 说明
    bucket string 数据中心名称
    keyPrefix string 导出的文件名的前缀
    email string 数据中心名称所属用户的七牛账户名称
    accessKey string 七牛账户的公钥
    fields map 字段关系说明
    keykodo-bucket的字段名
    value为导出数据的消息队列的字段名
    rotateStrategy string 文件切割策略,可取值为sizeintervalboth,其中,size表示文件大小超过rotateSize触发切割行为;interval表示文件写时长超过rotateInterval将进行切割;both表示只要满足其中一个条件将触发切割行为。为了保持兼容性,默认值为interval
    rotateSize int 当文件大小超过该值时将触发切割行为,单位为字节,默认值为5242880(5MB),最大值不超过1073741824(1GB)
    rotateInterval int 文件切割间隔,单位为秒(s),默认值为600(10分钟)
    format string 文件导出格式
    支持jsontextparquetcsv四种形式
    默认为json
    delimiter string csv文件分割符,当文件类型为csv时,delimiter为必填项
    compress bool 是否开启文件压缩功能
    默认为false
    retention int 数据储存时限
    以天为单位
    当不大于0或该字段为空时,则永久储存

    !> 注1: compress 会压缩成gzip格式,但当用户指定formatparquet时,由于parquet已经是压缩好的列存格式,compress选项将不起作用。

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

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

    举例说明:

    • 假如keyPrefix取值为kodo-parquet/date=$(year)-$(mon)-$(day)/hour=$(hour)/min=$(min)/$(sec),且生成某一文件时的北京标准时间为2017-01-12 15:30:00, 则keyPrefix将被解析为kodo-parquet/date=2017-01-12/hour=15/min=30/00,其中的魔法变量$(year)、$(mon)、$(day)、$(hour)、$(min)、$(sec)分别对应文件生成时间2017-01-12 15:30:00的年、月、日、时、分、秒。
    • 假如keyPrefix使用默认值,且生成某一文件时的北京标准时间为2017-01-12 15:30:00, 则keyPrefix将被解析为2017-01-12-15-30-00

    示例

    1. curl -X POST https://pipeline.qiniu.com/v2/repos/repox/exports/export1 \
    2. -H 'Content-Type: application/json' \
    3. -H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
    4. -d '{
    5. "type": "kodo",
    6. "spec": {
    7. "bucket": "bucket2",
    8. "keyPrefix": "key1/",
    9. "email": "xiaoming@qiniu.com",
    10. "accessKey": "7H4FDc1M-FxXFZKwjbN_Up1OfY7DotXDjaM5jXzm",
    11. "fields": {
    12. "f1": "#f1",
    13. "f2": "#f2"
    14. }
    15. "format":"json",
    16. "compress": true
    17. }'

    流式导出数据至报表平台

    请求语法

    1. POST /v2/repos/<RepoName>/exports/<ExportName>
    2. Content-Type: application/json
    3. Authorization: Pandora <auth>
    4. {
    5. "type": <report>,
    6. "whence": <ExportWhence>,
    7. "spec": {
    8. "dbName": <DBName>,
    9. "tableName": <TableName>,
    10. "columns": {
    11. "column1": <#key1>,
    12. "column2": <#key2>,
    13. ...
    14. }
    15. }
    16. }

    请求内容

    参数 类型 必填 说明
    database string 数据库名称
    tableName string 数据表名称
    columns map 字段关系说明
    keyN表示源消息队列字段名称
    columnN表示报表服务数据表字段名称

    更新流式导出任务

    请求语法

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

    !> 注意:仅支持对 spec 的修改(不允许修改typewhence

    查看所有流式导出任务

    请求语法

    1. GET /v2/repos/<RepoName>/exports
    2. Authorization: Pandora <auth>

    响应报文

    1. Content-Type: application/json
    2. {
    3. "name": <ExportName>,
    4. "type": <ExportSchema>,
    5. "spec": <Spec>,
    6. "whence": <ExportWhence>
    7. }

    根据名称查看流式导出任务

    请求语法

    1. GET /v2/repos/<RepoName>/exports/<ExportName>
    2. Authorization: Pandora <auth>

    根据名称删除流式导出任务

    请求语法

    1. DELETE /v2/repos/<RepoName>/exports/<ExportName>
    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已过期、机器时间未同步