Saya harus menerapkan sinkronisasi data antara dua database besar yang memiliki struktur yang sama sekali berbeda. Pada dasarnya, saya perlu menjepret beberapa data tentang produk dalam tabel yang berbeda di database pertama dan mengaturnya kembali untuk tabel lain di database kedua.
Menciptakan produk saya pada saat pertama tidak terlalu rumit. Tetapi saya sedang mencari cara untuk memperbarui beberapa data spesifik - tidak semua data - tentang setiap produk.
Jelas, ada beberapa masalah yang membuat ini rumit.
- Saya tidak diizinkan melakukan apa pun pada basis data sumber selain kueri pemilihan.
- Pada database target, saya dapat melakukan query biasa (pilih, perbarui, sisipkan, buat) tetapi saya tidak bisa memodifikasi struktur / tabel yang ada.
- Target dan sumber db memiliki struktur yang sama sekali berbeda, tabel tidak sama sekali, oleh karena itu data harus disusun ulang - tabel perbandingan tidak akan berfungsi.
- Basis data target menggunakan server MySQL - sumber mungkin DB2.
- Tidak ada bidang "waktu yang diperbarui" di mana pun.
Jadi seluruh proses perlu dilakukan dalam satu skrip Python (idealnya).
Saya berpikir tentang membuat hash untuk setiap produk, berdasarkan bidang untuk memperbarui dalam database target: md5 (kode + deskripsi + pemasok + sekitar 10 bidang lainnya). Hash baru berdasarkan data yang sama akan dibuat setiap hari dari basis data sumber. Saya akan menyimpan semua hash dalam satu tabel (kode item, current_hash, old_hash) untuk tujuan pertunjukan. Kemudian bandingkan dan perbarui produk jika hash baru berbeda dari yang lama.
Ada sekitar 500.000 produk jadi saya agak khawatir tentang penampilan.
Apakah ini cara yang baik untuk pergi?