不同结构表间数据冗余的检测方法

2024-09-30 08:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个涉及多个数据库实例的问题,每个实例都有不同的表结构。问题是,在这些表之间,有很多很多重复项,我需要一种方法来有效地找到它们,报告它们,并可能消除它们。在

例如,我有两个表,第一个表,CustomerData包含以下字段:

_countId, customerFID, customerName, customerAddress, _someRandomFlags

我还有另一个表,CustomerData2(稍后构建),其中包含以下字段:

^{pr2}$

在上面的两个表中,我知道一个事实,customerName和{}用于存储相同的数据,同样地,customerLocation和{}也用于存储相同的数据。在

比如说,一些销售团队一直在使用customerData,其他人一直在使用customerData2。我想要一种可伸缩的方法来检测表之间的冗余并报告它们。可以假定两个表中的customerFID是一致的,并且引用同一个客户。在

我可以考虑的一个解决方案是,在python中创建一个customerData类,将这两个表中的记录映射到这个类中,并为需要的类(customerName, customerLocation/Address)中的对象计算哈希/签名,并将它们存储到签名表中,该表包含以下列:

sourceTableName, entityType (customerData), identifyingKey (customerFID), signature 

然后对于每个entityType,我为每个customerFID查找重复的签名

实际上,我正在处理大量的生物医学数据,其中有很多列。它们是由不同的人创建的(遗憾的是,没有标准的命名法或结构),并且是存储在其中的重复数据

编辑: 为了简单起见,我可以将所有数据库实例移动到单个服务器实例。在


Tags: 数据实例方法数据库报告结构customernameentitytype
1条回答
网友
1楼 · 发布于 2024-09-30 08:19:14

如果我不在乎性能,我会采用高水平的实用方法。使用Django(或SQLAlchemy或…)构建所需的模型(表)并获取要比较的数据。然后使用一种有效识别重复项的算法(…根据列表或dict,这取决于您如何保存数据)。为了提高性能,你可以尝试用多处理模块“增强”你的应用程序,或者考虑一个map reduce解决方案。在

相关问题 更多 >

    热门问题