Saat ini saya sedang dalam proses membuat ETL untuk gudang data kami. Kami menggunakan SSIS 2008, tetapi kami mengalami masalah, yang terbesar adalah kesulitan dalam menggunakan kembali komponen. Kami memiliki paket terpisah untuk setiap tabel dan setiap paket mengambil input sejumlah variabel dari paket induk. Saat kami membuat perubahan pada variabel input ini, kami diharuskan masuk ke setiap paket (kami memiliki 15 atau lebih sekarang, tetapi jumlah ini akan tumbuh secara signifikan) dan memodifikasi paket untuk menangani perubahan tersebut. Ada juga masalah lain, termasuk ketidakmampuan untuk menjalankan SQL sewenang-wenang untuk ekstraksi kami, kemampuan logging yang buruk, dll.
Keseluruhan proses ini akan jauh lebih kuat jika ada cara mengembangkan ETL kami dalam kode, memungkinkan penggunaan kembali kode, perpustakaan umum, pengujian unit yang lebih baik, dll. Apakah ada standar bahasa / API ETL standar de facto untuk API Server? Saya mencari untuk menghindari alat GUI sebanyak mungkin.
Sunting: Saya harus menyebutkan latar belakang saya. Saya bukan DBA dan tidak memiliki pelatihan DBA formal (atau informal), pada dasarnya saya sudah memikirkan hal ini ketika saya melanjutkan, jadi ada kemungkinan saya mencoba melakukan hal-hal yang tidak pantas dengan SSIS atau mendekati ETL ini. memproyeksikan dari sudut yang salah. Selain itu, saya saat ini bekerja di pemerintah negara bagian, jadi solusi apa pun yang memerlukan pembelian paket perangkat lunak baru tidak berada dalam bidang kemungkinan.
Inilah salah satu tugas kita. Kami menggunakan Paket SSIS tunggal untuk memuat setiap tabel di gudang kami. Setiap paket Fakta dan paket Dimensi umumnya sama, mereka hanya berbeda dalam
- Ekstraksi dari database sumber
- Manipulasi dalam Aliran Data
- Menggabungkan ke dalam tabel tujuan
Apa yang ingin saya lakukan (yang menurut saya sulit dilakukan di SSIS)
- Muat kueri ekstraksi dari file teks. Ketika pengembang menulis dan menguji kueri ekstraksi mereka, saya tidak harus memanipulasi kueri mereka dengan cara apa pun sebelum SSIS menjalankannya dan saya tidak harus memotong dan menempelkan kueri ke objek Sumber DB.
- Uji setiap komponen secara terpisah. Saya harus dapat menguji proses ETL lengkap untuk tabel individu secara terpisah, terlepas dari beban tabel lainnya.
- Buat modifikasi pada logika bersama di satu tempat, tidak harus mengedit setiap paket individu. Setiap paket memuat data ke tabel audit dengan cara yang sama, jika saya ingin mengubah data yang dimuat diaudit, saya tidak ingin harus mengedit semua 15 paket (nomor ini akan menjadi jauh lebih besar dari waktu ke waktu).
Seluruh proses terasa seperti itu akan jauh lebih mudah untuk diterapkan dan lebih kuat jika dilakukan secara terprogram dengan penggunaan kode bersama yang tepat.