我需要编辑100,000多种产品

时间:2010-10-15 18:43:27

标签: asp.net mysql database

我正在考虑接受一个需要我清理现有电子商务网站的项目。它相对成功,拥有超过100,000种个人产品 - 由客户和出版商加载。

该网站最初并非针对这么多产品而设计,而且已经变得相当混乱。

所以,客户问我看一个更强大的搜索选项 - 可过滤等等。我完全同意它需要改进,但在查看数据库之后,我可以看出有几十个类别并且没有一切都被正确标记等。

是否有任何数据库管理软件可以帮助我快速清理100,000个条目?使类别保持一致 - 修复大写/小写问题等。

我是否有任何公司可以将项目的这个特定部分来源?

它有大量的数据输入。如果我每个产品花费2分钟,那么我需要花费6个月的时间才能完成数据库清理工作。我要么需要将每件产品降低到几秒钟,要么找一家专门从事此类工作的公司。

我甚至不知道在Google上搜索什么内容。

谢谢你们!

-

感谢大家的想法!我现在有很多选择,所以我觉得进入这个项目更加舒服。现在我认为我们要走的方向是建立一个工具,允许客户雇用可以根据需要更新数据的人员。然后我将担任顾问,根据需要处理任何UPDATE-WHERE类型函数。

再次感谢!

4 个答案:

答案 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)

请记住,一个或多个选项是建立一个糟糕的界面,有人可以用来编辑记录,从临时机构雇用六个数据录入人员,花两天时间培训他们,让他们去城里。