Witam, pytanie odnośnie PostgreSQL lub innego systemu i połączenia dwóch baz siedzących na tym samym serwerze oraz trzymania danych w pamięci RAM.
Mam bazę danych PostgreSQL do której zapisywane są dane z innego systemu (kilkadziesiąt insertów na sekunde). Zależy mi aby te dane w formie zmodyfikowanej (nie wszystko ale to co potrzebuje) były automatycznie kopiowane do drugiej bazy. Założenie jest takie, że pierwsza baza trzyma tylko małą cząstkę danych do wykonywania operacji przez inny system, a druga baza trzyma dane z długiego okresu i na niej wykonywane są różnego rodzaju zapytania. Bazy są dwie niezależne i to jest warunek konieczny.
Pierwszy problem to synchronizacja, trigery fajnie działają ale w obrębie jednej bazy. W przypadku dwóch baz PostgreSQL trigery już chyba nie nadają się, chyba żeby połączyć bazy używająć DBLink-a i wówczas triger wywoływany po insercie w DB1 mógłby robić inserta do DB2? Dobrze myślę? Nie używałem dblinka więc jeśli ktoś ma doświadczenie to proszę o poradę.
Zawsze mogę utworzyć dodatkową tabelę loga w DB1 i utworzyć trigera który będzie po insercie dodawał info do loga i zewnętrzny proces który będzie iterował po logu i przenosił dane do drugiej bazy i usuwał info z loga ale to jest takie na około i nie ładne, i za dużo CPU, i w ogóle blee.
Druga sprawa to zapytania do drugiej bazy które za względu na ilość danych mogą wykonywać się wolno. Zdecydowanie będę używał partycjonawania tabel by rozłożyć dane na wiele podrzednych tabel by przyspieszyć niektóre operacje jak kasowanie (drop table zamiast delete) ale i tu pojawia się pomysł załadowania wszystkiego do pamięci gdy system startuje i uaktualniania danych w pamięci by miały stan tego co jest w fizycznej drugiej bazie. Wiem że SQLite ma opcje in-memory jednak czy można łatwo podłączyć się do PostgreSQL by załadować taką bazę i uaktualniać? Czy lepiej dla drugiej bazy używać innego systemu zamiast PostgreSQL? PostgreSQL jest darmowy i to jest bardzo duża przewaga więc w pierwszej kolejności szukam rozwiązania podobnego a w drugim kroku wersji płatnej.
Co proponujecie, czy ktoś z Was miał podobny schemat i podzieli się rozwiązaniem?
Pozdrawiam