页面树结构
转至元数据结尾
转至元数据起始

1、应用场景

很多“api取数”接口,往往数据量比较大,不可能一次性取全量数据,只能按分页进行取数。一般取数接口中,参数pageNo 表示页码,参数pageSize表示每页条数。

2、实现思路

大体的思路是通过作业流的循环器,循环执行按页取数etl,每次循环,都会把循环序号(每循环一次,序号就加1)传给etl的pageNo参数,这样就可以循环到所有页数据,直到获取不到数据为止。

3、操作步骤

3.1 新建etl

新建一个etl,取名为分页获取数据。

3.2 设置etl 分页参数

点击etl工具栏上的“参数设置”按钮进行设置。

给etl 设置一个页码参数。


3.3 配置api 取数接口

“API取数”节点拖到etl 图中,然后点击“API配置”按钮,配置如下图。

给接口设置上pageNo(页码)跟pageSize(每页条数) url参数,pageNo参数的参数值使用参数替代符表示(如红框所示),实际执行的时候,会使用真正参数值替换掉。

执行api取数节点,返回json数据,如下图:

3.4 JSON数据解析

“JSON解析”节点拖入etl图中。


JSON解析节点配置。

JSON节点选择,就是配置json数据到表格数据转换的映射关系,只需要选择需要的JSON节点。

配置好后,执行JSON解析节点,结果如下:

注:这个数据随着页码不同,数据也不同,特别是number是随着页码递增的。

3.5 编辑元数据

由于把JSON数据解析后,字段的数据类型都是字符串类型,如果要把数据写到目标表的时候,需要把字段数据类型改为跟目标表字段数据类型一致。


3.6 把数据写入目标表

配置如下:

至此,按分页取数ETL配置已经完成。

3.7 新建作业流

新建作业流,起名为循环分页获取数据。

3.8 配置作业流循环器

“循环器”节点拖入作业流图中。

配置循环器:

  • 循环资源:选择上面建好的分页获取数据的etl。
  • 循环序号起始值:循环器有循环序号,每循环一次,这个值就加1,这里设置循环序号起始值,这个可以当做参数传递给循环的资源。
  • 循环序号参数映射:就是设置循环序号跟循环资源的参数映射,表示循环序号会传给循环资源的哪个参数,这里设置传给etl 的pageNo参数,真正执行的时候,会把循环序号替换为pageNo参数值。
  • 循环间隔时间(秒):表示每循环一次,间隔多长时间在进行下一次循环。
  • 退出条件:表示只要满足其中一个条件,就退出循环。这里配置成循环的资源执行失败后就退出。按分页去获取数据,如果到最后没有数据了,会造成写入目标表失败,便会退出循环。

3.9 循环执行结果

执行作业流,就会循环执行分页获取数据的etl,并每次循环,都会把循环序号值传给etl 的pageNo 参数。这个示例循环10次后,就没有数据了,可以通过etl 执行历史,查看循环执行情况。

如图,总共执行了10次,第10次获取不到数据后失败,退出循环。


  • 无标签