我有一个每天读文件并将数据插入oracle和couchbase的spring批处理。还有其他应用程序从这些数据源读取数据,为此我只需要表中的最新记录数据。我如何维护oracle和couchbase中的数据快照
让我们举一个例子 1天:我收到与下面记录的文件
123,student1,gradeA (id,name,grade)
124, student2, gradeA (id, name, grade)
第2天:我收到了文件,下面记录
123,student1,gradeB (id,name,grade)
所以我需要做的是
1. on Day1 I should insert all the records of the file as initially table is empty
2. On Day2 I need to invalidate the record for "124" as that is not in file
3. On Day2 Update the record for "123" with new grade
所以在第2天,如果任何读取请求来“124”我应该t徘徊异常(数据未找到)。
夫妇的做法我想过
Approach 1:
我可以在表中,每天一个文件 读我得到的唯一版本号那一天,一个版本号列,而 插入记录到当天的数据库中,我使用版本号。但 为此,我需要在其他地方存储修订号码,并且每次需要读取数据时,我必须执行额外的查找以获取 当前版本号。
Approach2:
每次记录更新维护批处理它永远不会被修改删除这些记录后LAST_MODIFIED_DATE柱和 (这 可能是昂贵的)。
上述方法可能适用于oracle,但对于couchbase,我正在考虑为每个记录使用TTL来解决此问题。
有人可以提出任何其他更好的方法吗?