循环直到两个宏的值相等?

ZKuiperZKuiper 成员职位:11因素二世
2020年3月编辑 帮助
你好,我想从服务器拉大量的数据,这限制了我每次访问它时可以拉多少点。我想通过循环拉和迭代地构建表来解决这个问题。

下面是我想做的一些伪代码:

内循环
%{移动结束}= IF %{开始时间}+ %{步长}< %{最终结束}
THEN %{开始时间}+ %{步长}
ELSE %{最终结束}
执行数据拉块
追加新的拉取到表
%{开始时间}= %{移动结束}

BREAK IF %{开始时间}=%{最终结束}

任何关于如何告诉循环在这种情况下中断的帮助将不胜感激,谢谢!

最佳答案

答案

  • yyhuangyyhuang 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:362RM数据科学家
    嗨Zak,

    您正在尝试从OSI服务器批量拉数据(cc。@Michael)?您可以在参考表中列出开始时间和结束时间的时间戳,并使用宏应用“循环值”。



    如果你有后续问题请告诉我。

    欢呼,
    YY
  • ZKuiperZKuiper 成员职位:11因素二世
    是的,我正试着从OSI服务器上拉数据。明天早上在我们谈话之前我会试一试,看看它是如何工作的,谢谢!
  • 迈克尔迈克尔 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:30.RM数据科学家
    嗨Zak,
    我们一直在讨论在内部增加对客户端批处理的支持,但到目前为止还没有给予它高优先级。原因是,鉴于PI系统允许在服务器端执行常见的预处理步骤(例如,创建紧凑的等距时间序列),我们根本不确定用户多长时间会遇到限制。
    您是否认为在单个请求中提取的数据超过服务器允许的数据是常见的场景?
    最好的
    迈克尔
    yyhuang
  • ZKuiperZKuiper 成员职位:11因素二世
    因此,对于我们的工程师来说,一个中等标准的数据挖掘,我估计是25个标签,一年1小时的分辨率= 219,000个数据点,超过了150,000个最大值。我正在研究更大的数据,所以我的数据在5000 - 1亿个数据点之间。在我看来,这是很普遍的。

    作为一个边注,我已经弄清楚如何从excel中使用“Set Macros from Example Set”自动添加一个标签列表,它工作得很好,所以问可以下降列表一点。
    MartinLiebig 迈克尔 yyhuang
  • 迈克尔迈克尔 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:30.RM数据科学家
    谢谢你的见解。看来我们得重新考虑客户端批处理了。
    旁注也很有趣。提供类似功能而不必使用宏的一种简单方法可能是添加一个可选输入,如果连接将替换数据项参数(就像连接输入替换连接参数一样)。
    yyhuang
  • christos_karraschristos_karras 成员职位:50大师
    2021年3月编辑
    我还需要循环直到达到某些条件,但不知道如何直接使用循环直到操作符。下面是我通过创造性地滥用内置操作符找到的解决方案。由于操作符需要一个Performance对象来决定循环是否应该继续,因此我首先创建了一个示例集,其中包含一个基于表达式结果的布尔变量“continue”,然后使用配置了优化方向= minimize的“extract Performance”操作符提取该变量。循环Until运算符也被配置为要求性能在0到0之间,因此它将在虚拟性能指标(continue)为1时继续循环,然后在达到0时停止。





    我的样例进程实际上提前知道需要多少次迭代,因为循环条件是“parse(%{i}) < 75”,所以在这种情况下循环Until并不真正必要。然而,当迭代次数事先不知道时,也可以使用相同的解决方案。

    对于未来的版本来说,在“循环直到”操作符中添加一个新选项将会很有趣,该选项可以循环直到用户指定的表达式变为true,这正是我从名为“循环直到”的操作符中真正期望的。另外,操作人员需要一些文档和样品,如何使用它真的不清楚,我必须通过试验和错误来找到。

    <?xml version="1.0" encoding="UTF-8"?> <过程version = " 9.8.001”>
    > <上下文
    <输入/ >
    <输出/ >
    <宏>
    宏观> <
    关键> <我> < /关键
    <值> 0 < /值>
    宏观> < /
    < /宏>
    > < /上下文




    .
    .

    <过程扩展= " true " >



    .







    .
    /> .

    .

    <过程扩展= " true " >

    <列出关键= " function_descriptions " >

    < / >列表
    < /操作符>




    .

    <过程扩展= " true " >

    .


    <列出关键= " function_descriptions " / >

    <列出关键= " numeric_series_configuration " / >
    <列出关键= " date_series_configuration " / >

    /> . .

    .



    表达式为true,设置继续1
    < /操作符>


    .

    > < /过程
    <过程扩展= " true " >

    .


    <列出关键= " function_descriptions " / >

    <列出关键= " numeric_series_configuration " / >
    <列出关键= " date_series_configuration " / >

    /> . .

    .



    表达式为false,设置继续为0
    < /操作符>


    .

    > < /过程
    如果条件为真,"continue"
    < /操作符>

    .



    .
    循环被作为一个优化问题来处理,其目标是最小化& quot; continue"变量,直到达到0或更小
    < /操作符>

    即使我们不使用它们,也要提供循环直到操作符想要的所有输出
    < /操作符>






    .



    > < /过程
    < /操作符>




    < /操作符>


    .
    .
    > < /过程
    < /操作符>
    > < /过程

登录注册置评。