知识卡片

去重是语义问题

普通读书笔记卡 · 1787.a

内容

页面浏览去重不能只依赖存储层唯一键,因为重复来源可能是重试、采集错误或客户端行为。可靠做法是在批处理中按业务语义定义同一事件,再生成干净视图。

参考来源

- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第2章《大数据的数据模型》"2.2.1 事实的示例及属性"(源文件:_epub-src/OEBPS/Text/021.xhtml)与第8章"8.6 页面浏览去重"(源文件:_epub-src/OEBPS/Text/065.xhtml) - 结论依据:原文明确重复的成因是网络分区导致的重试——"容错系统通常会通过重试来处理失败的操作……如果最初尝试的一部分数据已经进入元存储,那么最终会造成数据集中的数据重复",并给出解决方案"通过包含可区分的事实,免去了事务性地追加数据到主数据集的需要",第8章的"页面浏览去重"步骤正是在批处理管道图中应用这一语义判断来清洗视图。 - 原始内容:这些系统必须预先假设的一个常见的"错误"——存储数据的目标网络分区变得不可用。在这些情况下,容错系统通常会通过重试来处理失败的操作,直到它们成功……但是如果最初尝试的一部分数据已经进入元存储,那么最终会造成数据集中的数据重复……通过包含可区分的事实,免去了事务性地追加数据到主数据集的需要,使得整个系统的正确性更容易保证。