【问题标题】:Get data with limits获取有限制的数据
【发布时间】:2018-09-26 09:30:18
【问题描述】:

我是Kettle Transformations 的新手,但我检测到我正在处理的项目中有问题。

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

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

有没有办法通过转换来做到这一点? 这是我获取数据的方式

我正在尝试

&limit=3000

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

【问题讨论】:

    标签: transformation kettle pentaho-spoon pentaho-data-integration spoon


    【解决方案1】:

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

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

    您还可以增加Response time,这是您的 PDI 在确定服务器关闭之前等待服务器响应的最长时间。

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

    【讨论】:

    • 谢谢,我应该在哪里增加响应时间?输出字段->响应时间,加个数字就行了?
    • 哎呀!我从来没有注意到:你不能在REST step 上这样做。使用 HTTP Client 步骤(当然前提是你 GET)
    猜你喜欢
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2014-04-08
    • 2018-06-10
    • 2015-09-04
    相关资源
    最近更新 更多