FDL接口开发——易快报系统接口数据落库

楼主
up up up

1. 概述

 

1.1 应用场景

为满足业务部门报表分析及数据备份需求,需将易快报系统API接口单据列表数据进行同步落库。

1.2 接口信息

本次任务需要用到获取授权接口,其次是获取单据列表接口,由于接口每次只可读取100条数据,且接口只返回单据总数量,故在获取单据列表数据时需要使用分页循环取数。

1.3 实现思路

考虑后期接口数据量大的情况,所以本次任务采用全量+增量的方式同步!

1.3.1 全量任务:

1)清空目标表:使用【SQL脚本】清空目标表数据。

2)获取Token参数:获取accessToken授权,将Token参数传递给获取单据列表接口。

3)获取总页数:由于接口只返回单据总数量,所以此步骤需要利用【数据转换】先通过API输入

  • 获取单据总数:【API输入】取出单据总数量
  • 计算总页数:【Spark SQL】根据总数量及分页条数计算出总页数
  • 参数输出:【参数输出】将总页数作为参数传递给下一步骤。

4)分页循环取数:【循环容器】条件循环通过FDL内置函数${loopTimes},从1开始,循环一次递增1,当循环次数小于等于总页数时停止循环。

  • 获取目标表数据:由于接口分页起始值从0开始,每次调用需要先获取目标表数据量(如:第一次:0,50;第二次50,100,第三次100,150),所以使用【参数赋值】来获取目标表数据。
  • 获取接口数据并落库:将目标表数据作为分页查询起始值start,查询数据条数设置固定值50,表示每次获取50条数据

1.3.2 增量任务:

1)获取Token参数:获取accessToken授权,将Token参数传递给获取单据列表接口。

2)获取最新修改日期:接口中存在修改日期时间戳字段,通过时间戳的方式进行增量同步,所以获取目标表中最大的修改日期作为参数传给startDate

3)取数落库:根据获取单据列表接口中查询字段orderBy及查询起始时间startDate获取满足条件的数据进行增量同步。

1.4 任务展示

全量任务:

增量任务:

2. 操作步骤

全量任务操作步骤如下:

 

2.1 清空目标表数据

使用SQL脚本清空目标表数据,如下图所示:

 

2.2 获取Token参数并设置为参数

2.2.1 获取accessToken

使用参数赋值节点,在节点信息中修改名称为「获取token」,选择数据源类型为「API」,将易快报接口 获取 accessToken url 和参数写入对应位置,:https://app.ekuaibao.com/api/openapi/v1/auth/getAccessToken如下图所示:

点击「数据预览」即可看到获取的 accessToken,如下图所示:

2.2.2 将 accessToken 设置为参数

 

为了便于后续其他接口使用获取到的 token 值,因此将其设置为参数。

点击「输出参数」设置参数名为 accessToken,将 accessToken 设置为参数,如下图所示:

 

2.3 获取总页数

接口返回单据总数,需计算总页数,使用【数据转换】:API输入、JSON解析、Spark SQL、参数输出组件取得总页数。

API输入

JSON解析

Spark SQL:数据总数/分页查询数据条数,转为整数并加1(可以增加一个判断,不等于整数再加1)

参数输出

2.4 循环容器

2.4.1 获取目标表数据并生成参数

将目标表数据设置为参数

 

2.4.2 获取单据列表数据并落库

JSON解析

 

DB表输出数据落库

 

2.5 效果查看

 

 

 

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 4151浏览人数
最后回复于:2023-3-17 09:55

返回顶部 返回列表