流洞察用户定义函数的限制是什么?
对象是否需要可序列化?
它可以调用外部(远程)服务吗?
如果是这样的话,这些看起来非常 - 非常 - 非常强大!
流洞察用户定义函数的限制是什么?
对象是否需要可序列化?
它可以调用外部(远程)服务吗?
如果是这样的话,这些看起来非常 - 非常 - 非常强大!
在我的脑海中,用户定义函数 (UDF) 是一种静态方法调用,一次对一个事件进行操作。如果您需要一次处理多个事件,则需要查看用户定义的运算符 (UDO) 或用户定义的聚合 (UDA)。如果出于任何原因需要维护状态,您应该查看 UDO 或用户定义的流运算符 (UDSO)。
请记住,您的有效负载类仅向 StreamInsight 提供架构。所以它们不需要被标记为可序列化的。任何被 StreamInsight 序列化的东西都需要标记为可序列化(即适配器的配置类)。
您可以使用不同的 UDF、UDO、UDA 和 UDSO 调用外部/远程服务。但是,这些调用将有效地阻塞 StreamInsight 调度程序线程之一上的调用,这将增加延迟。事件输入和输出应仅由适配器完成,UDF 等应用于处理流。