我的应用程序生成包含多个应用程序指标的旋转日志文件。日志文件每分钟轮换一次,但每个文件还是比较大的(超过30MB,有100ks行)
我想将日志提供给 PipelineDB(在同一台机器上运行),Countiuous View 可以为我准确地创建我需要的指标聚合。
我可以使用标准输入的副本轻松地将日志发送到 PipelineDB,效果很好。
但是,在复制日志文件期间,机器可能偶尔会意外断电(例如,由于电力不足)。这意味着一旦重新上线,不确定有多少文件已插入 PipelineDB。
在这种情况下,如何确保日志中的每一行都只插入一次?(获得完整和准确的聚合非常重要)
请注意,日志文件中的每一行都有一个唯一标识符(由我的应用程序创建的序列号),但我在文档中找不到在流中定义唯一字段的选项。我假设 PipelineDB 的设计不是为了处理流行中的唯一字段
尽管如此,有没有其他解决方案可以解决这个问题?