Я работаю над проблемой, которая включает в себя несколько экземпляров базы данных, каждый с различными структурами таблиц. Проблема в том, что между этими таблицами есть много-много дубликатов, и мне нужен способ, чтобы эффективно находить их, сообщать о них и, возможно, устранять их.
Например. У меня есть две таблицы, первая таблица, CustomerData
с полями:
_countId, customerFID, customerName, customerAddress, _someRandomFlags
и у меня есть другая таблица, CustomerData2
(построена позже) с полями:
_countId, customerFID, customerFirstName, customerLocation, _someOtherRandomFlags.
Между двумя таблицами выше я точно знаю, что customerName
и customerFirstName
использовались для хранения одних и тех же данных, и аналогично customerLocation
и customerAddress
также использовались для хранения тех же данных.
Допустим, некоторые сотрудники отдела продаж использовали customerData
, а другие - customerData2
. Я хотел бы иметь масштабируемый способ обнаружения избыточности между таблицами и сообщать о них. С некоторой долей уверенности можно предположить, что customerFID
в обеих таблицах согласованы и относятся к одному и тому же клиенту.
Одним из решений, которое я мог придумать, было создание класса customerData
в python, сопоставление записей в двух таблицах с этим классом и вычисление хеша / подписи для требуемых объектов в пределах класса (customerName, customerLocation/Address
) и сохраните их в таблице подписей, в которой есть столбцы:
sourceTableName, entityType (customerData), identifyingKey (customerFID), signature
и затем для каждого entityType
я ищу дубликаты подписей для каждого customerFID
На самом деле, я работаю с огромными наборами биомедицинских данных, с множеством столбцов. Они были созданы у разных людей (и, к сожалению, без стандартной номенклатуры или структуры), и в них были дублированные данные
EDIT:
Для простоты я могу переместить все экземпляры базы данных в один экземпляр сервера.