我正在考虑接受一个需要我清理现有电子商务网站的项目。它相对成功,拥有超过100,000种个人产品 - 由客户和出版商加载。
该网站最初并非针对这么多产品而设计,而且已经变得相当混乱。
所以,客户问我看一个更强大的搜索选项 - 可过滤等等。我完全同意它需要改进,但在查看数据库之后,我可以看出有几十个类别并且没有一切都被正确标记等。
是否有任何数据库管理软件可以帮助我快速清理100,000个条目?使类别保持一致 - 修复大写/小写问题等。
我是否有任何公司可以将项目的这个特定部分来源?
它有大量的数据输入。如果我每个产品花费2分钟,那么我需要花费6个月的时间才能完成数据库清理工作。我要么需要将每件产品降低到几秒钟,要么找一家专门从事此类工作的公司。
我甚至不知道在Google上搜索什么内容。
谢谢你们!
-
感谢大家的想法!我现在有很多选择,所以我觉得进入这个项目更加舒服。现在我认为我们要走的方向是建立一个工具,允许客户雇用可以根据需要更新数据的人员。然后我将担任顾问,根据需要处理任何UPDATE-WHERE类型函数。
再次感谢!
答案 0 :(得分:3)
如果存在与您所描述的不一致的情况,则听起来这个问题可能更像是一个糟糕的数据模型(即缺乏规范化)而不仅仅是脏数据。如果有良好的规范化,清理类别应该像更新每个类别的单个记录一样简单 - 但如果使用类别名称而不是外键,那么您很可能需要执行一系列UPDATE WHERE语句清理文本。
您可能希望查看可以帮助批量数据转换的ETL(提取,转换,加载)工具。我不熟悉mysql的ETL工具,但我确信它们存在。 SQL Server具有称为SQL Integration Services的内置服务,该服务提供从现有数据源提取数据,执行批量更改或转换,然后将数据重新加载回目标数据库的功能。这样的工具可能有助于加快标准化大写,标点符号,更改类别等的过程。
即使如此,也不要忽视数据模型可能需要调整以帮助防止此类情况的发生。
编辑:Wikipedia包含您可能想要调查的开源ETL产品列表。
答案 1 :(得分:1)
在任何情况下,您都需要做的不仅仅是“清理数据”,这意味着您需要构建新的规范化表。所以从那里开始,构建一个完全规范化的新数据库,“按原样”导入数据,包含所有重复的类别等。
例如,新表:
Items
ItemID int identity/auto number
ItemName string
CategoryID int
....
Categories
CategoryID int identity/auto number
CategoryName string
....
将错误数据导入新系统:
Items
ItemID ItemName CategoryID
1 thing A 1
2 thing B 2
3 thing C 3
4 thing D 1
Categories
CategoryID CategoryName
1 Game
2 food
3 games
现在,您可以使用PK整合数据
UPDATE Items
SET CategoryID=1
WHERE CategoryID=3
DELETE Categories
WHERE CategoryID=3
您可以编写一个客户可以进行整合的应用程序。让他们在屏幕上选择重复项并合并到选定的父类别。你有这个应用程序从上面做合并sql。
如果存在需要对日期进行干净切割的问题,请创建一个生成一系列“Map”表的应用程序,在其中存储CategoryNameOld =“games”和CategoryNameNew =“Game”并在使用时你将坏数据转换/加载到新系统的表中。
答案 2 :(得分:0)
我会实现新的搜索系统或其他任何东西,并构建一个工具,使他们能够轻松地浏览和清理列表,重新分类等。这项任务需要领域知识,所以他们是最好的做到这一点。
进行一些数字处理,以便他们可以按照重要性排列列表的优先级并进行清理。
答案 3 :(得分:0)
请记住,一个或多个选项是建立一个糟糕的界面,有人可以用来编辑记录,从临时机构雇用六个数据录入人员,花两天时间培训他们,让他们去城里。