两张表全量比较,有没有好的比较少算法?
现在从大数据那边每天拿到了约80万条数据,第一天的数据存到nosql中,接着拿第二天的数据,第二天的数据是在第一天的数据上添加或修改的结果,现在想从第二天的数据中找出,哪些数据在第一天数据上发送了修改或者添加。 这些数据中有 a b c 三个属性标识数据的唯一性,也就是说,如果第二天的某一条数据的a b c三个字段的属性跟第一天某一条数据的a b c三个属性一直,则认为他们是同一条数据,如果其他字段不相同,则认为发生了修改。如果第二天中某条数据 a b c 三个字段在第一天数据中找不到匹配则认为是新增。
那么问题来了,有没有什么好的解决方案能快速的实现比较?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
八十万数据不多嘛,你在每天的表中添加一个字段,字段值为你的abc值按-分割的字符串,然后在第二天的表中查询这个字段值不在上一天的范围内的记录就行。
回复
应该是要把当天的数据在整个历史数据中查询吧?
。。如果nosql没有联合索引的话 就自己写一个Btree的索引树吧,哈哈 再或者用搜索引擎做好前一天的数据的倒排表 也就是索引。都是方案啊,我觉得你这个需求要求不是实时性的,做索引会比较合适。
想过这个方案,a b c做一个hash ,非a b c做一个hash
回复
abc hash 作为key,全部字段hash为val 第一天80w数据作为比较对象 第二天数据去比较。 这样有什么问题?
回复
没什么问题!我现在是想问问大家有没有更快速的解决方案?
回复
做hash理论上复杂度是O(N)的预处理,O(1)的查询,理论上感觉很难做到复杂度更低了:)
BI转储