跳到主要内容

API数据导入

业务场景

外部API数据批量同步至平台数仓。

前提条件

  • 平台部署完毕,批量同步服务正常;
  • 用户拥有数据源管理、批量数据模块权限
  • 外部API数据源可正常连通。

使用限制

  • API类型:支持http、https协议,请求方式支持GET、POST。

操作流程

第一步:注册API数据源

1)在资源管理 > 数据源管理中配置API数据源,填写请求方式、请求地址等信息。

  • 说明:若注册的API数据源需配置“签名”,可参考API签名配置

最佳实践 2)为保证API数据源中有字段可与目标表进行映射,需完成“数据解析配置”,详细配置也可参照API数据源中配置示例;然后再点击【测试连通性】,确保数据源连接正常。 最佳实践 最佳实践

第二步:创建目标表

方式1:快速建表
数据开发 > 批量数据 > 数据加工页面新建数据加工作业,选择【API导入】节点后,可快速创建单个目标表。完善目标表基础信息等配置后,即完成目标表创建。 最佳实践 最佳实践

方式2:常规建表
资源管理 > 数据表管理中,通过【新建数据表】,支持以多种方式创建目标表,以“单独建表”为例,依次配置表基础信息、表字段信息,保存即可。 最佳实践

第三步:创建数据加工作业

1)在数据开发 > 批量数据 > 数据加工操作中点击【新建作业】,可选择【API导入】节点依次选择来源库、来源表、已配置的目标表。更多细节配置可查看API导入节点介绍。 最佳实践

注意

说明:【API导入】节点一次只能选择单个API来源;若需要有API的嵌套等复杂逻辑的导入,可使用JMeter脚本导入

2)字段映射配置:首先通过【同名映射】配置来源API与目标表的字段映射关系,剩余字段可手动点击连线,若不支持映射,还可通过超管视角下的“字段映射配置”补充字段映射关系后,再次连线即可。 最佳实践 3)以上配置完成后,保存即可完成作业创建。在左侧作业列表选择作业并完成调度配置后,再点击【上线】即可上线作业。

第四步:运维监控

1)调度管理:在运维监控_调度管理找到对应作业,点击【查看作业任务】可查看运行详情,主要信息包含作业任务调度明细、各调度的导入数据量、日志下载、节点任务血缘等。 最佳实践 最佳实践 2)告警通知:若需监控作业状态,特别是运行失败,可在个人中心 > 消息通知中配置告警,支持邮件、钉钉群通知。对象类型选择“数据加工”、对象名称填写需监控的作业名称,通知类型选择“作业运行”,作业运行失败时,可发送消息通知。 最佳实践

附录:API签名配置

1、下载签名使用模板 sign.zip
2、解压sign.zip,得到一个maven工程
3、使用编码工具,如idea 导入这个代码工程,结构如下:

3.1 签名接口定义

  • 注意:包名、接口名、参数返回值、不能做任何修改,即无需修改对三者进行修改
  • 接口具体请求参数是一个map集合,其中有3个属性,分别是url、body、header,每个属性值都是一个Map<String,Object>。
    • 对于url属性,值就是接口请求url上的键值对。
    • 对于body属性值,值就是接口请求中的body属性。
    • 对于header属性,值就是header的键值对。

3.2 接口实现

  • 注意:用户必须实现接口方法SignService,建议包名和类名也不要修改;如有修改,请同步修改resources/META-INF.services 下文件内容为具体实现类全限定类名,文件名和目录结构不可修改。

3.3 签名jar包实现方法示例

  • 具体从接口参数中取值,分别根据业务从url、body、header属性中取值,取值按照自定义分别实现接口加签算法。
  • 如:示例从url中取值customId作为加签参数,那么对应的数据源接口也应该按照当前实现同步验证。

4、将编辑完成的sign代码工程,使用编码工具打成jar包上传至“资源文件”模块,并在所需API数据源接口上选择对应jar包。

最佳实践

5、数据源接口验证加签

  • 注意:所注册接口必须实现数字签名校验功能,其使用的签名生成算法和验证逻辑必须与jar包加签算法保持一致

5.1 url配置加签

  • url接口验证签名样例实现方法:

5.2 body配置加签

  • body接口验证签名样例实现方法:

5.3 header配置接口加签

  • header接口验证签名样例实现方法: