완전히 다른 구조를 가진 두 개의 큰 데이터베이스간에 데이터 동기화를 구현해야합니다. 기본적으로 첫 번째 데이터베이스의 다른 테이블에있는 제품에 대한 일부 데이터를 가져 와서 두 번째 데이터베이스의 다른 테이블에 대해 다시 정렬해야합니다.
처음으로 제품을 만드는 것은 그리 복잡하지 않습니다. 그러나 각 제품에 대한 일부 데이터 (모든 데이터가 아님)를 업데이트하는 방법을 찾고 있습니다.
분명히, 이것을 까다롭게 만드는 몇 가지 문제가 있습니다.
- 소스 데이터베이스와 별도로 선택 쿼리를 수행하는 것은 허용되지 않습니다.
- 대상 데이터베이스에서 일반적인 쿼리 (선택, 업데이트, 삽입, 작성)를 수행 할 수 있지만 기존 구조 / 테이블을 수정할 수 없습니다.
- 대상과 소스 DB는 완전히 다른 구조를 가지고 있으므로 테이블이 전혀 같지 않으므로 데이터를 실제로 다시 정렬해야하므로 테이블을 비교할 수 없습니다.
- 대상 데이터베이스는 MySQL 서버를 사용합니다. 소스는 DB2 일 수 있습니다.
- "업데이트 된 시간"필드는 어디에도 없습니다.
따라서 전체 프로세스는 단일 Python (이상적으로) 스크립트로 수행해야합니다.
대상 데이터베이스에서 업데이트 할 필드를 기반으로 각 제품에 대한 해시를 만드는 것에 대해 생각합니다 .md5 (코드 + 설명 + 공급 업체 + 약 10 개의 다른 필드). 동일한 데이터를 기반으로하는 새로운 해시가 소스 데이터베이스에서 매일 생성됩니다. 성능을 위해 모든 해시를 단일 테이블 (항목 코드, current_hash, old_hash)에 저장합니다. 그런 다음 새 해시가 이전 해시와 다른 경우 제품을 비교하고 업데이트하십시오.
약 500,000 개의 제품이 있으므로 성능이 약간 걱정됩니다.
가는 것이 좋은 방법입니까?