首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免数据清洗中重复的最有效方法

避免数据清洗中重复的最有效方法
EN

Stack Overflow用户
提问于 2013-03-22 00:23:02
回答 2查看 180关注 0票数 0

我有来自一个客户的数据,这是一个很好的混乱的复制信息。我将运行一个清理查询,该查询获取转储数据,进行一些清理,并最终将其放到一个新表中。

这是一个脚本:

代码语言:javascript
复制
INSERT INTO Spend (...)
SELECT ...
FROM Facilities F
JOIN Dump d
    ON d.facname = f.name
    AND f.city = d.city

到目前一切尚好。当有一个新的转储数据时,问题就会发生。我只想买最新的东西。我想不出一种有效的方法。一个快速简单的WHERE NOT条款是行不通的(我不认为.)因为没有任何独特的数据列。条目的唯一性实际上取决于大多数(如果不是全部)列的组合。考虑到去年一家公司的垃圾堆是2万行,每个垃圾场都要循环一遍,这似乎是个糟糕的主意。一旦我们在这里找到了一些用户,并且数据追溯到一年多以前,似乎清理工作就太密集了。

或者我只是一个n00b,正在用鼹鼠造一座山。谢谢你的建议和建议-

编辑#1

附加示例记录集的图像

第一个col是Business表中业务ID的外键。剩下的是购买记录。这张桌子是用来搜索的。那么,在清理并转储到新的可搜索表之后,唯一唯一的列是每一行的自动递增ID。

EN

回答 2

Stack Overflow用户

发布于 2013-03-22 00:40:02

消除事务数据库中冗余的关键是规范化;实现的每一个额外的规范化程度都消除了另一个冗余源。

在您的例子中,我推断您有几个冗长的文本字段,这些字段会使主数据表中的索引膨胀。我建议您将每个查找表与主数据表中的(人工)外键查找一起放在自己的查找表中。这将缩小主表中的键,从而降低索引高度并相应地提高性能。同时,您可以增加数据的规范化。

对于报告,随后将清理后的数据提取到非规范化的辅助表(也就是说,pivot多维数据集)中,以便最终用户更有效地访问。

票数 1
EN

Stack Overflow用户

发布于 2013-03-22 14:36:31

谢谢你的互动和帮助伙计们。我认为最简单的解决方案是让客户端只转储新数据。我将把它附加到一个堆积如山的转储数据池中,这样我就有了所有转储的连续记录,并且在使用它来清理和发送到我的Spend表之前,它还会覆盖一个Spend表。

再次感谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15560605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档