Saya memulai proyek intelijen bisnis yang akan membutuhkan akses abstrak ke dua gudang data yang ada. Saya perlu merancang arsitektur aplikasi untuk memungkinkan intelijen bisnis swalayan untuk menggabungkan data dan memberikan pandangan tunggal atas dua gudang yang ada. Saya datang dengan sesuatu seperti ini:
Saya berjuang dengan potongan virtualisasi / caching dan bertanya-tanya apakah ada pola desain perusahaan untuk menyelesaikan masalah saya. Apakah arsitektur seperti ini berfungsi untuk meringkas skema bintang di gudang data? Saya melihat produk-produk seperti Red Hat JBoss Virtualisasi Data dan Red Hat JBoss Data Grid (antara lain).
Kami tidak menggunakan Hibernate saat ini dan pemahaman saya tentang Data Grid adalah bahwa mereka adalah penyimpanan nilai-kunci, atau penyimpanan objek dan karenanya tidak cocok untuk melakukan caching model relasional. Saya juga harus menyebutkan bahwa kami ingin menggunakan produk vendor untuk bagian Dashboard Self-Service, tetapi kami mungkin akhirnya melakukan beberapa pengembangan-kustom di bidang ini jika vendor tidak dapat menawarkan segala yang kami inginkan.
sumber
{key: pk, value: the_rest_of_the_row}
? Anda mungkin juga ingin me-cache metadata tabel.Jawaban:
Tidak ada banyak detail tentang apa yang ingin Anda capai di sini, tetapi dari apa yang telah Anda jelaskan, sepertinya Anda bisa melakukannya dengan data mart untuk memisahkan repositori utama dan mengekspos sekumpulan kecil data ke melayani aplikasi.
Bahkan jika Anda bisa mendesain lapisan aplikasi yang layak, Anda mungkin akan mendapatkan masalah kinerja karena memuat pada satu (atau keduanya) dari basis data repositori. Manfaat dari pendekatan mart adalah bahwa DB yang dibicarakan oleh aplikasi sangat performan. Pembaruan terjadi pada DB repositori di belakang layar dan didorong melalui basis apa pun yang Anda inginkan.
Manfaat tambahan yang Anda juga hanya memiliki satu vendor DB untuk dipertimbangkan di lapisan aplikasi Anda.
sumber