Восстановление целостности данных - PullRequest
0 голосов
/ 01 сентября 2010

Я думаю, что это долгосрочная перспектива, но здесь она идет:

Основной вопрос: как команда разработчиков начинает восстанавливать целостность данных в большом, поврежденном наборе данных?

У компании, которой я помогаю, есть огромная система MySQL / PHP5 с несколькими годами разборок, неверных данных, неработающих ссылок и т. Д. В довершение всего эти данные ссылаются на данные нескольких онлайн-сервисов, таких как Google AdWords..

Таким образом, у локальной базы данных есть проблемы, и отношения между локальной и удаленной (например, AdWords) также имеют проблемы, усугубляя проблему.

У кого-нибудь есть советы, хитрости или лучшие-практики, которыми они могут поделиться, чтобы начать восстанавливать целостность данных?И для поддержания целостности данных в системе, которая быстро и постоянно добавляется и обновляется?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2010

Большой проблемой является определение того, что вы собираетесь делать с данными о проблеме:

  • ничего
  • восстановление из данных, хранящихся в другом месте и доступных через код
  • восстановить данные вручную
  • удалить (или желательно заархивировать)

И для этого вам необходимо установить, как данные проблемы влияют на систему / организацию и как разрешение повлияет на систему / организацию.

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

Это должно позволить вам определить требуемые исправления, расставить приоритеты в работе и спланировать использование ресурсов. Это также должно позволить вам расставить приоритеты, спланировать и частично идентифицировать устранение первопричины.

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

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

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

0 голосов
/ 01 сентября 2010

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

Данные, которые являются действительными, могут быть импортированы в новый d / b, и затем прогрессивная серия извлечений может добавить действительные данные и импортировать их, пока усилие не увеличится до такой степени, что больше не будет смысла пытаться восстановить серьезно поврежденные данные. данные. Несомненно, неповрежденная неполная база данных лучше и полезнее, чем поврежденная база данных - пока она повреждена, ее нельзя назвать «полной».

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