Mam dużą bazę danych. Jednak czasem oprócz zwykłych operacji potrzebuję generować jakieś raporty czy zestawiania. Oczywiście jest to bardzo obciążające dla bazy danych (trwa to długo, przy generowaniu spowalnia cały system).
Pomyślałem, że chciałbym postawić obok coś w stylu hurtowni danych tylko do tych raportów i zestawień. Co ileś dni dane byłyby przerzucane z operacyjnej bazy do tej hurtowni.
Jak to rozwiązać?
1. Pierwsze co przychodzi na myśl, to po prostu zrobić kopię bazy, postawić obok i puszczać takie same zapytania. A kolejne raporty dalej robić ręcznie (SQL na Oracle + Java + JSP).
2. Ale pewnie nie jestem pierwszy, który potrzebuje takie coś i po co wymyślać koło na nowo? Poza tym taka baza do raportów pewnie powinna mieć inną strukturę niż ta operacyjna, żeby była wydajniejsza pod tym kątem. Słyszałem o rozwiązaniach jak Microsoft Business Intelligence Development Studio, Qlik Sense, Qlik View, Tableau. Kostki OLAP, ETL itd. Ale chyba są to bardzo drogie i bardzo zaawansowane narzędzia.
3. Potrzebuję czegoś w miarę prostego i taniego/darmowego (jest coś open source?). I jak już to związanego z ekosystemem Javy (Oracle, Spring, Hibernate, Linux), a nie z Microsoftem.
@kovalski: znalazłem jeszcze takie narzędzia od Apache jak: Zeppelin, Spark, Ignite. Nie jestem jednak pewny, które do czego służy. Wydaje mi się, że: Ignite - zebranie danych z bazy (tak jakby "cache", "index"), Spark - operacje na tych danych (wyłuskanie jakieś danych czy zrobienie zestawienia), Zeppelin - wizualizacja tych danych
@mk321: nie spelnia pkt 3, ale skoro chcesz stawiac druga instancje to i tak potrzebujesz drugiej licencji. W takiej sytuacji to rozwiazaniem jest active data guard.
@mk321: Spark jest popularny w światku jvm i rozwijany, teraz cisną bodajże structured streaming, generalnie do etl i ml się nadaje
Zeppelin, hmm... Też jest rozwijany chociaż nie widzę, żeby w jakimś szybkim tempie, wizualizacje, zależnie jak skomplikowanych potrzebujesz, są raczej dosyć proste, nie ma zbyt zaawansowanych opcji tworzenia wykresów, do tego lepiej użyć innych narzędzi, D3, matplotliby, ggploty czy co tam jeszcze jest w data analitycs popularne, ja używałem
Mam dużą bazę danych. Jednak czasem oprócz zwykłych operacji potrzebuję generować jakieś raporty czy zestawiania. Oczywiście jest to bardzo obciążające dla bazy danych (trwa to długo, przy generowaniu spowalnia cały system).
Pomyślałem, że chciałbym postawić obok coś w stylu hurtowni danych tylko do tych raportów i zestawień. Co ileś dni dane byłyby przerzucane z operacyjnej bazy do tej hurtowni.
Jak to rozwiązać?
1. Pierwsze co przychodzi na myśl, to po prostu zrobić kopię bazy, postawić obok i puszczać takie same zapytania. A kolejne raporty dalej robić ręcznie (SQL na Oracle + Java + JSP).
2. Ale pewnie nie jestem pierwszy, który potrzebuje takie coś i po co wymyślać koło na nowo? Poza tym taka baza do raportów pewnie powinna mieć inną strukturę niż ta operacyjna, żeby była wydajniejsza pod tym kątem. Słyszałem o rozwiązaniach jak Microsoft Business Intelligence Development Studio, Qlik Sense, Qlik View, Tableau. Kostki OLAP, ETL itd. Ale chyba są to bardzo drogie i bardzo zaawansowane narzędzia.
3. Potrzebuję czegoś w miarę prostego i taniego/darmowego (jest coś open source?). I jak już to związanego z ekosystemem Javy (Oracle, Spring, Hibernate, Linux), a nie z Microsoftem.
Wydaje mi się, że:
Ignite - zebranie danych z bazy (tak jakby "cache", "index"),
Spark - operacje na tych danych (wyłuskanie jakieś danych czy zrobienie zestawienia),
Zeppelin - wizualizacja tych danych
Zeppelin, hmm... Też jest rozwijany chociaż nie widzę, żeby w jakimś szybkim tempie, wizualizacje, zależnie jak skomplikowanych potrzebujesz, są raczej dosyć proste, nie ma zbyt zaawansowanych opcji tworzenia wykresów, do tego lepiej użyć innych narzędzi, D3, matplotliby, ggploty czy co tam jeszcze jest w data analitycs popularne, ja używałem
Komentarz usunięty przez autora