Halo untuk semua Habroresidents!
Kami membuka blog pertama perusahaan
RDTEX dengan peretasan kehidupan untuk pengembang. Kami berharap salah satu pembaca dapat memanfaatkannya.
Peretasan kehidupan ditemukan dalam proses proyek untuk mentransfer data dari satu sistem ke sistem lain untuk pembangunan laporan selanjutnya di salah satu bank terkemuka Federasi Rusia.
Teknologi yang digunakan:
Sistem Sumber Data - Oracle RDBMS (versi 11.2.0.4.0)
Sistem penerima data - RDBMS Oracle (versi 11.2.0.4.0)
Bus Integrasi - Informatica (versi 10.1.1)
Selama implementasi proyek integrasi utama, kami menghadapi masalah berikut:
1. Penggunaan SQ [Source Qualifier] yang tidak efisien di Informatica Power CenterSaat menggunakan SQ [Sumber Kualifikasi] di Pusat Daya Informatica, pembatasan jumlah karakter input terungkap. Jumlah karakter maksimum yang diperbolehkan adalah 32767. Contoh penggunaan Sumber Kualifier yang tidak rasional ditunjukkan pada gambar di bawah ini:
Gambar 1 Screenshot dari SQ Informatica Power CenterTangkapan layar ini menunjukkan bahwa ruang memakan ruang karakter, sebagai akibatnya query SQL yang kompleks tidak sepenuhnya sesuai (mis., Mereka terpotong ketika dimasukkan ke Kualifikasi Sumber).
Gambar di bawah ini menunjukkan penggunaan Kualifikasi Sumber yang benar (perubahan disorot dengan warna merah):
Gambar 2 Screenshot dari SQ Informatica Power Center dengan kueri yang dimodifikasiPergi ke baris berikutnya dan biaya perataan jumlah karakter ke-N, menghapus yang, kami mampu memenuhi semua kode SQL.
2. Konversi yang salah dari jumlah yang sangat besarJumlah yang sangat besar diunggah ke database Oracle dalam format berikut:
126765060022823000000000000000000
Dan mereka harus dimuat dalam format:
1267650600228229401496703205376
Yaitu nilai dibulatkan mulai dari posisi digit tertentu.
Kami menawarkan solusi berikut:
Selama pengembangan pemetaan di Pusat Daya Informatica, format bidang (misalnya, string) segera ditetapkan pada tahap tertentu untuk nilai yang pasti akan datang dalam jumlah besar, sementara:
- Jika kita menggunakan format desimal dan jika nilainya dapat memiliki hingga 28 karakter, maka kita perlu mengaktifkan Properties → “Enable high precision” → “Yes” di properti workflow di Workflow Manager.
- Jika kami menggunakan format ganda, dalam hal ini nilai yang melebihi 15 karakter (misalnya, 20) dapat sampai pada atribut ini, maka nilainya akan terpotong menjadi 15 digit signifikan dan menempatkan nol (0) pada sisanya (mis. 5 karakter terakhir akan menjadi nol ) Dalam hal ini, lebih baik meletakkan format string dan menambah ukuran ke yang diinginkan (misalnya, string20).
Jika untuk meringkas penggunaan alat, maka
keuntungan berikut dapat dibedakan:
- alat ini nyaman untuk mentransfer sejumlah besar data, dihitung dalam terabyte (misalnya, hingga 25-30 tb), terutama jika Anda perlu mentransfernya dengan jumlah konversi minimum (hampir satu-ke-satu);
- Kemungkinan "menarik" atribut secara otomatis (opsi Propagate Attributes), serta "menyoroti" di dalam pemetaan (di mana dan dari mana data diambil);
- kemampuan untuk memilih mode operasi alat ETL dan alat ELT (tergantung pada proyek TI tertentu).
Dan beberapa minus untuk objektivitas gambar:
- kurangnya logika transformasi data "kompleks";
- Dari sudut pandang dukungan alat itu sendiri dan pemahaman tentang logika transformasi individu, itu lebih rendah daripada beberapa pesaing (misalnya, Oracle Data Integrator).