当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud数据流http轮询和重复数据删除

皇甫雨华
2023-03-14

我一直在阅读大量Spring Cloud DataFlow和相关文档,以便生成一个将在我的组织的云铸造部署中运行的数据摄取解决方案。目标是轮询HTTP服务中的数据,可能每天轮询三次,以便进行讨论,并在PostgreSQL数据库中插入/更新该数据。HTTP服务似乎每天提供10s数千条记录。

到目前为止,一个困惑点是数据流管道上下文中用于删除轮询记录的最佳实践。源数据没有帮助跟踪轮询的时间戳字段,只有粗略的日级别日期字段。我也不能保证记录不会追溯性地更新。这些记录似乎有一个唯一的ID,所以我可以这样删除记录,但根据文档,我不确定如何最好地在DataFlow中实现该逻辑。据我所知,Spring Cloud Stream启动程序没有提供这种开箱即用的功能。我读到了Spring Integration的智能轮询,但我也不确定这是否意味着解决我的担忧。

提前感谢您的帮助。

共有1个答案

邢法
2023-03-14

您在正确的轨道上,考虑到您的需求,您很可能需要创建一个自定义处理器。您需要跟踪插入的内容,以避免重复。

没有什么可以阻止您在流应用程序中编写这样的处理器,但是性能可能会受到影响,因为对于每个记录,您都将发出一个DB查询。

如果顺序并不重要,您可以并行查询,这样您就可以处理多个并发消息,但最终您的DB仍将为此付出代价。

使用SCDF的优点之一是,您可以通过部署属性(如deployer.customprocessor.count=8)独立地伸缩自定义处理器

 类似资料:
  • 本文向大家介绍Oracle删除重复的数据,Oracle数据去重复,包括了Oracle删除重复的数据,Oracle数据去重复的使用技巧和注意事项,需要的朋友参考一下 Oracle  数据库中查询重复数据: select * from employee group by emp_name having count (*)>1;  Oracle  查询可以删除的重复数据 select t1.* from

  • 本文向大家介绍Mysql删除重复的数据 Mysql数据去重复,包括了Mysql删除重复的数据 Mysql数据去重复的使用技巧和注意事项,需要的朋友参考一下 MySQL数据库中查询重复数据 select * from employee group by emp_name having count (*)>1; Mysql  查询可以删除的重复数据 select t1.* from employee

  • 本文向大家介绍MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据),包括了MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)的使用技巧和注意事项,需要的朋友参考一下 开发背景: 最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据库之前是不会进行重复判断的,因此只有在全部数据导入进去以后在执行一条语句进行删除,保证数据唯一性。

  • 然而,当我运行foreach循环时,它运行了几分钟就崩溃了 最初的数据库mydb有0.173GB,现在是0.368GB 你知道出什么问题了吗? 所以这次看起来很管用,但为什么'mydb'变大了呢?

  • 我正在做一个数据库项目,为了理智起见,我想在测试其他特性时从数据库中删除所有问题数据。