我必须在结构完全不同的两个大型数据库之间实现数据同步。基本上,我需要获取有关第一个数据库中不同表中产品的一些数据,并将它们重新排列为第二个数据库中的其他表。
第一次创建我的产品并不是很复杂。但是我正在寻找一种方法来更新有关每种产品的某些特定数据,而不是所有数据。
显然,有一些问题使这个问题变得棘手。
- 除了选择查询,我不允许对源数据库执行任何操作。
- 在目标数据库上,我可以执行常规查询(选择,更新,插入,创建),但不能修改现有的结构/表。
- 目标数据库和源数据库的结构完全不同,表根本不一样,因此,实际上必须重新排列数据-比较表将无法工作。
- 目标数据库使用MySQL服务器-源可能是DB2。
- 任何地方都没有“更新时间”字段。
因此,整个过程需要在单个Python(理想情况下)脚本中完成。
我考虑根据要在目标数据库中更新的字段为每个产品创建一个哈希:md5(代码+描述+供应商+大约10个其他字段)。每天都会从源数据库中创建基于相同数据的新哈希。我将所有散列存储在一个表(项目代码,current_hash,old_hash)中,以提高性能。然后,如果新哈希与旧哈希不同,则比较并更新产品。
大约有50万种产品,所以我有点担心性能。
这是个好方法吗?