-1

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

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

  2. 在哪里实施 PostDedupProcessor - 上下文或链槽自定义?在这两种情况下,我需要从列表中删除重复的哈希码还是只拒绝元组?在这里,我也在为一些元组进行列更新。

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

4

1 回答 1

0

1.和2.:

您需要选择重复数据删除的类型。选择“table-”还是“cdr-level-deduplication”差别不大。ite.businessLogic.transformation.outputType 确实会影响这一点。只有一个 Dedup。你不能两者兼得。

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

3.:

可能的原因可能是:

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

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

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

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

于 2017-10-27T08:54:05.890 回答