本文为您介绍RestAPI Writer支持的数据类型、字段映射和数据源等参数及配置示例。

背景信息

RestAPI Writer插件提供了向RESTful接口进行请求并且写入数据的功能。Writer插件获取到Reader端传递过来的数据后,根据column配置生成相应的JSON数据,对RESTful接口发起请求并传递数据。

参数说明

进行数据集成时,您需要添加数据源后再配置数据源的来源与去向,并在配置过程中设置好集成的数据及数据类型等信息,整个数据集成包含数据提取(使用reader插件提取数据来源的数据)和数据写入(使用writer插件将集成的数据写入数据去向的数据源中)。

以下为您介绍使用Writer插件写入RestAPI类型数据源的数据时,需要配置的参数。
说明 以下的参数包含在添加数据源和配置数据集成任务节点的过程中。

当前插件暂不支持使用调度参数。

参数 描述 是否必须 默认值
url RESTful接口地址。
dataMode RESTful请求传递的JSON数据的格式。
  • oneData:一次请求只传递一条数据,有几条数据就进行几次请求。
  • multiData:一次请求传递一批数据,根据reader端切分的task数确定请求次数。
column 生成JSON数据对应的字段路径列表,type指定源数据的类型,name指定当前column数据放置的JSON路径。您可以指定column字段信息,配置如下。

"column":[{"type":"long","name":"a.b" //放置column数据到路径a.b},{"type":"string","name":"a.c"//放置column数据到路径a.c}]

说明 对于您指定的column信息,type和name必须填写。
dataPath 数据结果放置的JSON对象的路径。
method 请求方法,支持post和put。
customHeader 传递给RESTful接口的header信息。
authType 验证方法。
  • Basic Auth:基础验证。

    如果数据源API支持用户名和密码的方式进行验证,您可选择此种验证方式,并在选择完成后配置用于验证的用户名和密码,后续数据集成过程中对接数据源时,通过Basic Auth协议传递给Restful地址,完成验证。

  • Token Auth:Token验证。

    如果数据源API支持Token的方式进行验证,您可选择此种验证方式,并在选择完成后配置用于验证的固定Token值,后续数据集成过程中对接数据源时,通过传入header中进行验证,例如:{“Authorization”:”Bearer TokenXXXXXX”}。

  • Aliyun API Signature:阿里云API签名验证。

    如果数据源为阿里云产品,且此阿里云产品的API支持通过AccessKey和AccessSecret的方式进行验证,您可选择此种种验证方式,并在选择完成后配置用于验证的AccessKey和AccessSecret。

authUsername/authPassword Basic Auth验证的用户名密码。
authToken Token Auth验证的token。
accessKey/accessSecret Aliyun API签名验证的账户信息。
batchSize dataMode为multiData时,一次请求最大的数据条数。 512

配置示例:向导模式

  1. 选择数据源。
    配置同步任务的数据去向api数据源去向
    参数 描述
    数据源 数据源类型选择RestAPI后,选择数据需要写入的数据表。
    请求Method 即上述参数说明中的method
    返回数据结构 即上述参数说明中的dataMode
    batchSize 即上述参数说明中的batchSize
    数据存储json路径 即上述参数说明中的dataPath
    Header 即上述参数说明中的customHeader
  2. 字段映射,即上述参数说明中的column。左侧的源头表字段和右侧的目标表字段为一一对应的关系。字段映射
    参数 描述
    同名映射 单击同名映射,可以根据名称建立相应的映射关系,请注意匹配数据类型。
    同行映射 单击同行映射,可以在同行建立相应的映射关系,请注意匹配数据类型。
    取消映射 单击取消映射,可以取消建立的映射关系。
    自动排版 可以根据相应的规律自动排版。
  3. 通道控制。通道配置
    参数 描述
    任务期望最大并发数 数据同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。向导模式通过界面化配置并发数,指定任务所使用的并行度。
    同步速率 设置同步速率可以保护读取端数据库,以避免抽取速度过大,给源库造成太大的压力。同步速率建议限流,结合源库的配置,请合理配置抽取速率。
    错误记录数 错误记录数,表示脏数据的最大容忍条数。
    分布式处理能力

    数据同步时,可以将任务切片分散到多台执行节点上并发执行,提高同步速率。该模式下,配置较大任务并发数会增加数据存储访问压力,如需使用该功能,请提前评估数据存储的访问负载。该功能仅支持在独享数据集成资源组配置,详情请参见独享数据集成资源组新增和使用独享数据集成资源组

配置示例:脚本模式

脚本配置示例如下所示。
{
    "type":"job",
    "version":"2.0",
    "steps":[
        {
            "stepType":"stream",
            "parameter":{

            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"restapi",
            "parameter":{
                "url":"http://127.0.0.1:5000/writer1",
                "dataMode":"oneData",
                "responseType":"json",
                "column":[
                    {
                        "type":"long", //放置column数据到路径a.b
                        "name":"a.b"
                    },
                    {
                        "type":"string", //放置column数据到路径a.c
                        "name":"a.c"
                    }
                ],
                "method":"post",
                "defaultHeader":{
                    "X-Custom-Header":"test header"
                },
                "customHeader":{
                    "X-Custom-Header2":"test header2"
                },
                "parameters":"abc=1&def=1",
                "batchSize":256
            },
            "name":"restapiwriter",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0" //错误记录数。
        },
        "speed":{
            "throttle":true,//当throttle值为flase时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。
            "concurrent":1, //作业并发数。
            "mbps":"12"//限流
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}