Saya memiliki dataset input yang catatannya akan ditambahkan ke database yang ada. Sebelum ditambahkan, data akan melalui proses yang berat dan intensif waktu. Saya ingin menyaring catatan dari dataset input yang sudah ada dalam database untuk mengurangi waktu pemrosesan.
Perbedaan antara input dan database diilustrasikan di sini:
Ini gambaran dari jenis proses yang saya lihat. Data input pada akhirnya akan dimasukkan ke dalam database.
Solusi saya saat ini melibatkan menggunakan transformer Matcher pada basis data dan input gabungan, kemudian memfilter hasil NotMatched menggunakan FeatureTypeFilter untuk mempertahankan hanya catatan input.
Apakah ada cara yang lebih efisien untuk mendapatkan perbedaan fitur?
fme
database
comparison
rovyko
sumber
sumber
SQLexecutor
. Jika atribut _matched_records adalah 0 pada inisiator maka itu merupakan addJawaban:
Jika Anda memiliki karakteristik basis data yang ditunjukkan oleh diagram. Input kecil, tumpang tindih kecil, target besar. Maka jenis ruang kerja berikut ini dapat bekerja cukup efisien, meskipun itu akan melakukan beberapa kueri terhadap database.
Jadi untuk setiap fitur baca dari permintaan input untuk fitur yang cocok dalam database. Pastikan ada indeks yang sesuai di tempat. Uji atribut _matched_records untuk 0, lakukan pemrosesan dan kemudian masukkan ke dalam database.
sumber
Saya tidak menggunakan FME, tetapi saya memiliki tugas pemrosesan serupa yang mengharuskan penggunaan output dari pekerjaan pemrosesan 5 jam untuk mengidentifikasi tiga kasus pemrosesan yang mungkin untuk database paralel di tautan jaringan bandwidth rendah:
Karena saya memang memiliki jaminan bahwa semua fitur akan mempertahankan nilai ID unik di antara lintasan, saya dapat:
Pada database eksternal, saya hanya perlu memasukkan fitur baru, memperbarui delta, mengisi tabel sementara dari UID yang dihapus, dan menghapus fitur-fitur DI dalam tabel hapus.
Saya dapat mengotomatiskan proses ini untuk menyebarkan ratusan perubahan harian ke tabel baris 10-juta dengan dampak minimal ke tabel produksi, menggunakan runtime harian kurang dari 20 menit. Itu berjalan dengan biaya administrasi minimum selama beberapa tahun tanpa kehilangan sinkronisasi.
Meskipun tentu saja mungkin untuk melakukan perbandingan N di seluruh baris M, menggunakan digest / checksum adalah cara yang sangat menarik untuk menyelesaikan tes "ada" dengan biaya yang jauh lebih rendah.
sumber
Gunakan featureMerger, bergabung dan dikelompokkan berdasarkan bidang umum dari DATABASE DAN DATA INPUT.
sumber