首页 > 解决方案 > 获取有限制的数据

问题描述

我是新手,Kettle Transformations但我发现我正在从事的项目中有问题。

GET转换调用服务器,服务器以格式返回数据JSON。我遇到的问题是数据是大量的 JSON,比如说 80.000 个 JSON 文档,所以有时服务器会出现故障。

我想知道是否可以JSON在转换本身中设置 got 的限制,换句话说:我想获得 3000 ,然后再获得JSON下一个 3000 JSON

有没有办法通过转换来做到这一点?这是我获取数据的方式 在此处输入图像描述

我正在尝试

&limit=3000

在我调用的 URL 中,但我只得到前 3000 个文档,我需要让 3000 个文档使用它,然后是下一个 3000 ...

标签: transformationkettlepentaho-spoonpentaho-data-integrationspoon

解决方案


不在PDI步骤中,除非你可以 用url指定limitand参数。offset这些参数必须在为您提供数据的服务器上定义。通常 api 的开发人员对这些参数进行编码,因为他们知道像你这样的人会下载大量数据。不幸的是,这是最佳实践而非规范,因此无法在 Data Integrator 中实施。

试试。为此,请使用parameter选项卡而不是?limit=&offset=url 中的。就像这些值可能来自上一步一样,您将能够按块读取服务器。

您还可以增加Response timePDI 在决定服务器关闭之前等待服务器响应的最长时间。

您还REST Client可以在主作业中捕获该步骤的错误,或者在您放下鼠标定义步骤时选择它。在这种情况下,您可能已经添加了一些额外的逻辑,以便在 http 失败 1500 万之后重新启动进程。如果您选择此解决方案,请注意在 3 或 5 次试验后停止,否则您可能会填满空闲进程的内存。


推荐阅读