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

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

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

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

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

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

最佳答案

答案

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

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



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

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

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





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

    在未来的版本中,“Loop Until”操作符中有一个新的选项来循环直到用户指定的表达式为真,这将是很有趣的,这是我真正期望的名为“Loop Until”的操作符。此外,操作员需要一些文档和样本,如何使用它真的不清楚,我不得不通过试验和错误来发现。

    <?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 " / >








    表达式为真,设置Continue为1
    < /操作符>





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




    <列出关键= " function_descriptions " / >

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








    表达式为假,设置Continue为0
    < /操作符>





    > < /过程
    如果条件为true,则&将为1,否则将为0
    < /操作符>






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

    提供Loop Until操作符想要的所有输出,即使我们不使用它们
    < /操作符>











    > < /过程
    < /操作符>




    < /操作符>





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

登录注册置评。