Berdasarkan analisis saya, model dimensi lengkap untuk gudang data kami akan membutuhkan ekstraksi dari lebih dari 200 tabel sumber. Beberapa tabel ini akan diekstraksi sebagai bagian dari beban tambahan dan lainnya akan menjadi beban penuh.
Untuk diketahui, kami memiliki sekitar 225 sumber basis data dengan skema yang sama.
Dari apa yang saya lihat, membangun aliran data sederhana dalam SSIS dengan sumber OLE DB dan tujuan OLE DB membutuhkan kolom dan tipe data yang harus ditentukan pada waktu desain. Ini berarti bahwa saya pada akhirnya akan berakhir dengan lebih dari 200 aliran data hanya untuk ekstraksi saja.
Dari perspektif rawatan, ini menurut saya masalah besar. Jika saya perlu melakukan beberapa perubahan besar pada kode ekstraksi, saya harus memodifikasi 200 aliran data yang berbeda.
Opsi alternatif, saya menulis skrip kecil yang membaca sumber database, nama tabel dan kolom yang ingin saya ekstrak dari satu set tabel metadata. Kode berjalan dalam beberapa loop dan menggunakan SQL dinamis untuk mengekstrak dari tabel sumber melalui server yang terhubung dan OPENQUERY.
Berdasarkan pengujian saya, ini masih tidak secepat menggunakan aliran data SSIS dengan sumber dan tujuan OLEDB. Jadi saya bertanya-tanya alternatif apa yang saya miliki. Pikiran sejauh ini meliputi:
- Menggunakan EZAPI untuk secara sistematis menghasilkan paket SSIS dengan aliran data sederhana. Tabel dan kolom untuk mengekstrak akan berasal dari tabel metadata yang sama yang disebutkan sebelumnya.
- Beli perangkat lunak pihak ketiga (komponen aliran data dinamis)
Apa cara terbaik untuk mendekati ini? Ketika datang ke pemrograman NET. Saya seorang pemula, jadi waktu yang dibutuhkan untuk meningkatkan hanya dengan dasar-dasar juga menjadi perhatian.
Jawaban:
Saya tidak ingin memiliki 200 aliran data dalam satu paket. Waktu yang dibutuhkan hanya untuk membuka dan memvalidasi akan membuat Anda menjadi tua sebelum waktu Anda.
EzAPI memang menyenangkan tetapi jika Anda baru mengenal .NET dan SSIS, oh tidak, Anda tidak menginginkannya. Saya pikir Anda akan menghabiskan lebih banyak waktu belajar tentang model objek SSIS dan mungkin berurusan dengan COM daripada benar-benar menyelesaikan pekerjaan.
Karena saya malas, saya akan pasang BIML sebagai opsi gratis yang tidak Anda daftarkan. Dari jawaban di SO /programming/13809491/generating-several-similar-ssis-packages-file-data-source-to-db/13809604#13809604
Saya pikir itu mungkin pendekatan untuk Anda juga. Anda menentukan BIML Anda yang menjelaskan bagaimana perilaku paket Anda dan kemudian menghasilkannya. Dalam skenario yang Anda jelaskan di mana Anda membuat perubahan dan harus memperbaiki paket N, tidak, Anda memperbaiki definisi Anda tentang masalah dan membuat ulang paket.
Atau jika Anda sudah cukup terbiasa dengan kerangka kerja maka gunakan sesuatu seperti EzAPI untuk pergi dan memperbaiki semua barang yang rusak. Heck, karena Anda telah menandai ini sebagai 2005, Anda juga bisa mencoba PacMan jika Anda perlu melakukan modifikasi massal untuk paket yang ada.
Pertimbangan Desain SSIS
Secara umum, saya mencoba untuk membuat paket saya fokus pada penyelesaian satu tugas (memuat data penjualan). Jika itu membutuhkan 2 aliran data, ya sudah. Yang saya benci mewarisi adalah paket dari panduan ekspor impor dengan banyak aliran data yang tidak terkait dalam satu paket. Uraikan mereka menjadi sesuatu yang memecahkan masalah yang sangat spesifik. Itu membuat peningkatan di masa depan menjadi lebih tidak berisiko karena luas permukaan berkurang. Manfaat tambahan adalah bahwa saya dapat mengerjakan pemuatan
DimProducts
sementara antek saya berurusan denganSnowflakeFromHell
paket pemuatan .Kemudian gunakan paket master untuk mengatur alur pekerjaan anak. Saya tahu Anda menggunakan 2005 tetapi SQL Server 2012 rilis SSIS adalah piyama kucing. Saya suka model penyebaran proyek dan integrasi ketat yang memungkinkan antar paket.
TSQL vs SSIS (cerita saya)
Adapun pendekatan TSQL murni, dalam pekerjaan sebelumnya, mereka menggunakan pekerjaan 73 langkah untuk mereplikasi semua data Informix mereka ke dalam SQL Server. Biasanya membutuhkan waktu sekitar 9 jam tetapi bisa mencapai 12 atau lebih. Setelah mereka membeli SAN baru, turun menjadi sekitar 7+ jam. Proses logis yang sama, ditulis ulang dalam SSIS adalah sub 2 jam yang konsisten. Mudah faktor terbesar dalam mengemudi saat itu adalah paralelisasi "bebas" yang kami dapatkan menggunakan SSIS. Pekerjaan Agen menjalankan semua tugas itu secara serial. Paket master pada dasarnya membagi tabel menjadi unit pemrosesan (5 set paralel tugas berseri dari "run replicate table 1", table 2, dll) di mana saya mencoba untuk membagi ember ke dalam kuasi unit kerja berukuran sama. Ini memungkinkan 60 atau lebih tabel referensi pencarian untuk diisi dengan cepat dan kemudian pemrosesan melambat saat masuk ke "
Kelebihan lainnya bagi saya menggunakan SSIS adalah saya mendapatkan konfigurasi "bebas", masuk dan akses ke .NET libraries untuk data kuadrat, saya perlu bash ke dalam lubang bundar. Saya pikir akan lebih mudah untuk mempertahankan (melewatkan pemeliharaan) paket SSIS daripada pendekatan TSQL murni berdasarkan sifat grafis dari binatang itu.
Seperti biasa, jarak tempuh Anda mungkin bervariasi.
sumber
Anda menyebutkan Anda memiliki 200 tabel sumber dan 225 database. Saya mengasumsikan 200 tabel sumber adalah hitungan semua tabel dari semua 225 database (karena jika Anda memiliki 200 tabel di setiap database yang akan menempatkan jumlah tabel total Anda menjadi 45000). Anda juga menyebutkan bahwa skema database sama untuk 225 database.
Anda bisa membangun paket SSIS hanya untuk 1 database pertama dan kemudian ketika Anda menjadwalkan pekerjaan Anda, Anda bisa mengubah string koneksi database menggunakan konfigurasi paket (jika SQL 2005, maka Anda akan menggunakan model penyebaran paket). Seperti disebutkan dalam respons sebelumnya, SQL 2012 memiliki cara baru untuk mengonfigurasi parameter Anda menggunakan model penyebaran proyek.
Anda dapat memperoleh informasi lebih lanjut tentang konfigurasi paket dengan SSIS di sini http://www.sql-server-performance.com/2007/package-configuration-2005/
Anda dapat memperoleh informasi lebih lanjut tentang menggunakan parameter proyek dari sini, /programming/15206184/how-to-configure-ssis-2012-project-to-run-under-under-dvironment-environment-configurat
sumber