«Хороший» инструмент сравнения записей базы данных? - PullRequest
1 голос
/ 24 февраля 2009

Я системный администратор компании, которая поддерживает CRM CMS (Salesforce).

Мне не нравятся встроенные функции, поэтому я обычно управляю данными через файлы CSV / XLS для загрузки и выгрузки, потому что я могу писать более качественные запросы и тому подобное. Одна из моих задач - загрузка контактов и учетных записей. Из-за отсутствия уникальных идентификаторов и орфографических ошибок в загруженных записях встречаются дубликаты.

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

Я ищу лучший способ проверки на наличие дубликатов со следующими ограничениями:

Учитывая список имен, адресов электронной почты или телефонных номеров (все они хранятся в виде текстовых полей), сделайте проверку сравнения между двумя таблицами, чтобы найти лучшее совпадение из второй таблицы. Желательно между несколькими полями, но даже если это только одно, это очень поможет моим усилиям.

Размер набора данных составляет около 17 000 записей в самой длинной таблице. Значения обычно вводятся около 50 одновременно. Мои ограничения - это аппаратное обеспечение, которое у меня есть, и отсутствие бюджетного усмотрения. Мои навыки программирования довольно просты, но я могу учиться и использовать Eclipse & Visual Studio в системе.

У кого-нибудь есть предложения, как решить эту проблему программно или с помощью стороннего инструмента?

Ответы [ 4 ]

1 голос
/ 24 февраля 2009

Я использовал два инструмента для сравнения в БД: xSQL и Redgate SQL Compare.

Я предпочитаю redgate за простоту использования, но он довольно дорогой.

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

На самом деле, глядя на ваш вопрос немного ближе, кажется, что вы хотите немного интеллектуальности в своих сравнениях, в этом случае, поскольку у вас уже установлена ​​Visual Studio, я бы сказал, что у вас уже есть инструменты для некоторых довольно глубоких сравнений, просто нужно немного кодировать.

0 голосов
/ 24 февраля 2009

Как упомянул @MrTelly, сопоставление имени и адреса (и компании) очень сложно.

Один сторонний инструмент - есть автономный графический интерфейс, а также программный API - MatchUp от Melissa DATA.

GUI: http://www.melissadata.com/products/matchup.htm

API: http://www.melissadata.com/dqt/matchup-api.htm

Отказ от ответственности: я работаю в Melissa DATA и был основным разработчиком этих продуктов. Но я от всего сердца поддерживаю свою работу!

0 голосов
/ 24 февраля 2009

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

Другой подход, который работает, но требует много времени, - это создать свою собственную мини-библиотеку сценариев. Есть два способа, вы можете попробовать perl, awk, shell-скрипт и любые другие языки, которые вам нравятся, и работать с данными на основе файлов и текста. Или вы можете создать набор Sql, запросов и других фрагментов, возможно, в Access? В любом случае, если ваш бюджет равен нулю, вы, вероятно, потратите много времени на создание своей собственной библиотеки, но это полезный навык.

0 голосов
/ 24 февраля 2009

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

Я бы начал с одного из самых простых моментов: неправильного написания. Алгоритм « soundex » (точнее, Система индексации Soundex ) кодирует слова по тому, как они звучат при произнесении (предположительно говорящим в США), и делает их такими, чтобы звучали слова подобное будет сравнивать подобное. Это очень полезно при попытке найти неправильное написание на основе гомофонов: предоставить пользователю совпадения, основанные на аналогичных значениях soundex.

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