致力于将SPL 3.0迁移到4.2(TEDA)

时间:2017-10-26 08:18:01

标签: infosphere-spl ibm-streams

我正在努力将3.0代码迁移到新的4.2框架中。我面临一些困难:

  1. 如何在新的4.2框架中进行CDR级重复数据删除? (注意:表重复数据删除已经完成)。

  2. 在哪里实现PostDedupProcessor - context或chainsink custom?在任何一种情况下,我是否需要从列表中删除重复的哈希码或只是拒绝元组?在这里,我也在为几个元组进行列更新。

  3. 我的文件没有进入存档。生成的临时输出文件太空并且在加载目录之外。可能的原因是什么? - 我已经彻底检查了配置参数,并且在放入日志之后,似乎正确的输出是从变换器自定义发送的,所以我不知道它被卡在哪里。我为日志打印了TableRowGenerator流(DataProcessor的末尾)。

1 个答案:

答案 0 :(得分:0)

1。和2。:

您需要选择重复数据删除的类型。如果选择“table-”或“cdr-level-deduplication”,则没有太大区别。 ite.businessLogic.transformation.outputType确实会影响这一点。只有一个Dedup。你不能兼得。

为“cdr-level-deduplication”选择recordStream,在xxx.chainsink.custom :: PostContextDataProcessor中转换为表格格式(例如,如果您想使用TableFileWriter)。 在xxx.chainsink.custom :: PostContextDataProcessor中,您需要为重复处理添加自定义代码:拒绝(丢弃)元组或设置特殊列值或将它们写入不同的目标表。

3:

可能的原因可能是:

  • 缺少转发窗口标点符号或统计元组
  • 在BloomFilter配置中出现
  • 错误,您会很容易看到它,因为PE已关闭且错误日志提供了有关使用错误的sha2函数的提示

要对ITE应用程序进行故障排除,如果检查StreamsStudio实时图表不够,我建议启用以下调试接收器:

  • ite.businessLogic.transformation.debug =上
  • ite.businessLogic.group.debug =上
  • ite.businessLogic.sink.debug =上

仅使用单个输入文件运行测试,并检查记录和统计元组的流程。 “调试接收器”也会将标点符号写入调试文件。