页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

1、应用场景

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

2、实现思路

实现思路

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

操作步骤

新建etl

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

3、操作步骤

3.1 新建etl

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

Image Modified

3.2 设置etl 分页参数

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

Image Modified

给etl 设置一个页码参数设置一个页码参数。

Image Modified


3.3 配置api 取数接口

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

Image Modified

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

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

Image Modified

3.4 JSON数据解析

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

Image Modified


JSON解析节点配置JSON解析节点配置。

Image Modified

Image Modified

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

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

Image Modified

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

3.5 编辑元数据

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

Image Modified

Image Modified


3.6 把数据写入目标表

配置如下配置如下:

Image Modified

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

3.7 新建作业流

Image Modified

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

3.8 配置作业流循环器

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

Image Modified

配置循环器配置循环器:

Image Modified循环资源:选择上面建好的分页获取数据的etl

  • 循环资源:选择上面建好的分页获取数据的etl。

...

  • 循环序号起始值:循环器有循环序号,每循环一次,这个值就加1,这里设置循环序号起始值,这个可以当做参数传递给循环的资源。
  • 循环序号参数映射:就是设置循环序号跟循环资源的参数映射,表示循环序号会传给循环资源的哪个参数,这里设置传给etl

...

  • 的pageNo参数,真正执行的时候,会把循环序号替换为pageNo参数值。
  • 循环间隔时间(秒)

...

  • :表示每循环一次,间隔多长时间在进行下一次循环。

...

  • 退出条件:表示只要满足其中一个条件,就退出循环。这里配置成循环的资源执行失败后就退出。按分页去获取数据,如果到最后没有数据了,会造成写入目标表失败,便会退出循环。

3.9 循环执行结果

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

Image Modified

Image Modified

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