Мне нужно отредактировать 100 000+ продуктов - PullRequest
0 голосов
/ 15 октября 2010

Я ожидаю принятия проекта, который потребовал бы от меня очистки существующего сайта электронной коммерции. Он был относительно успешным и насчитывал более 100 000 отдельных продуктов - загруженных как клиентом, так и его издателями.

Сайт изначально не был предназначен для такого количества продуктов и стал довольно неорганизованным.

ТАК, клиент попросил, чтобы я посмотрел на более надежный вариант поиска - фильтруемый и так далее. Я полностью согласен с тем, что его необходимо улучшить, но, посмотрев на базу данных, я могу сказать, что существуют десятки и десятки категорий, и не все помечены правильно и т. Д.

Существует ли какое-либо программное обеспечение для управления базами данных, которое могло бы помочь мне быстро очистить 100 000 записей? Согласуйте категории - исправьте проблемы с прописными и строчными буквами и т. Д.

Существуют ли какие-либо компании, которым я могу предоставить именно эту конкретную часть проекта?

Это огромный объем ввода данных. Если бы я потратил 2 минуты на каждый продукт, мне потребовалось бы 6 месяцев, чтобы просто завершить очистку базы данных. Либо мне нужно сократить его на несколько секунд, либо найти компанию, которая специализируется на этом виде работы.

Я даже не знаю, что искать в Google.

Спасибо, ребята!

* * 1016 - * * 1017

Спасибо всем за ваши идеи! У меня сейчас много вариантов, поэтому я чувствую себя намного комфортнее, вступая в этот проект. Я думаю, что сейчас мы пойдем в направлении создания инструмента, который позволит клиенту нанимать людей, занимающихся вводом данных, которые могут обновлять его по мере необходимости. Затем я буду работать консультантом, заботясь о любых функциях типа UPDATE-WHERE по мере необходимости.

Еще раз спасибо!

Ответы [ 4 ]

3 голосов
/ 15 октября 2010

Если есть несоответствия, которые вы описываете, похоже, что проблема может быть связана скорее с плохой моделью данных (то есть с отсутствием нормализации), чем просто с грязными данными.Если имеется хорошая нормализация, очистка категорий должна быть такой же простой, как обновление одной записи для каждой категории, но если вместо внешнего ключа используется имя категории, вам, скорее всего, потребуется выполнить серию операторов UPDATE WHERE, чтобыочистить текст.

Возможно, вы захотите взглянуть на инструмент ETL (извлечение, преобразование, загрузка), который может помочь с массовым преобразованием данных.Я не знаком с инструментами ETL для MySQL, но я уверен, что они существуют.SQL Server имеет встроенную службу под названием SQL Integration Services, которая позволяет извлекать данные из существующего источника данных, выполнять массовые изменения или преобразования, а затем перезагружать данные обратно в базу данных назначения.Подобные инструменты могут помочь ускорить процесс стандартизации заглавных букв, знаков препинания, изменения категорий и т. Д.

И все же, не забывайте о том, что модель данных может потребоваться настройка, чтобы помочь предотвратить ситуацию такого типа вбудущее.

Редактировать: Википедия содержит список продуктов ETL с открытым исходным кодом, которые вы можете исследовать.

1 голос
/ 15 октября 2010

В любом случае вам, вероятно, потребуется сделать больше, чем «очистить данные», что означает, что вам нужно будет создавать новые нормализованные таблицы. Итак, начните с этого, создайте новую полностью нормализованную базу данных, импортируйте данные «как есть», со всеми дублирующимися категориями и т. Д.

например, новые таблицы:

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 сверху.

Если есть проблемы с необходимостью точного определения даты, создайте приложение, которое генерирует серию таблиц «Карта», в которой вы храните CategoryNameOld = "games" и CategoryNameNew = "Game" и используете их при вы выполняете преобразование / загрузку неверных данных в таблицы новой системы.

0 голосов
/ 15 октября 2010

Имейте в виду, что один из ваших вариантов - создать дрянной интерфейс, который кто-то может использовать для редактирования записей, нанять полдюжины людей, занимающихся вводом данных, из временного агентства, потратить два дня на их обучение и отпустить в город ,

0 голосов
/ 15 октября 2010

Я бы внедрил новую поисковую систему или что-то еще и создал бы их инструмент, который позволил бы им легко проходить и очищать списки, перераспределять категории и т. Д. Эта задача требует знания предметной области, поэтому они лучше сделай это.

Сделайте некоторое сокращение чисел, чтобы они могли расставить приоритеты в списке и очистить в порядке важности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...