Podejmuję się projektu analizy biznesowej, który będzie wymagał abstrakcyjnego dostępu do dwóch istniejących hurtowni danych. Muszę zaprojektować architekturę aplikacji, aby umożliwić samoobsługowej analizie biznesowej połączenie danych i zapewnienie jednego widoku na dwa istniejące magazyny. Wymyśliłem coś takiego:
Walczę z wirtualizacją / pamięcią podręczną i zastanawiam się, czy istnieją jakieś wzorce projektowe dla przedsiębiorstw, które mogłyby rozwiązać mój problem. Czy taka architektura działałaby na abstrakcję schematów gwiezdnych w hurtowniach danych? Patrzę na takie produkty, jak Red Hat JBoss Data Virtualization i Red Hat JBoss Data Grid (między innymi).
Obecnie nie korzystamy z Hibernacji i rozumiem Siatki danych, że są to magazyny klucz-wartość lub magazyny obiektów, a zatem nie nadają się do buforowania modelu relacyjnego. Powinienem również wspomnieć, że chętnie korzystamy z produktów dostawców w części Samoobsługowa deska rozdzielcza, ale możemy skończyć na niestandardowych kompilacjach w tym obszarze, jeśli dostawcy nie będą mogli zaoferować nam wszystkiego, czego chcemy.
źródło
{key: pk, value: the_rest_of_the_row}
? Prawdopodobnie będziesz też chciał buforować metadane tabel.Odpowiedzi:
Nie ma zbyt dużej ilości szczegółów na temat tego, co próbujesz osiągnąć tutaj, ale z tego, co opisałeś, wygląda na to, że możesz zrobić z bazą danych, aby wyodrębnić główne repozytoria i udostępnić minimalny podzbiór danych obsłużyć aplikację.
Nawet jeśli mógłby zaprojektować przyzwoitą warstwę aplikacji, jesteś prawdopodobnie problemy z wydajnością hitem ze względu na obciążenie na jednym (lub oba) repozytorium baz danych. Zaletą podejścia Mart jest to, że baza danych, z którą rozmawia aplikacja, jest bardzo wydajna. Aktualizacje odbywają się na bazach danych repozytorium za kulisami i są przenoszone na dowolne podstawy, które uznają za stosowne.
Dodatkowa korzyść, którą możesz wziąć pod uwagę tylko jednego dostawcy bazy danych w warstwie aplikacji.
źródło