Aktywne Wpisy

WarmianinPodlaski +309
Jak myślicie dokąd mogą posunąć sie deweloperzy w swojej propagandzie ? podsyłam baner w centrum Legnicy który zrobił na mnie wielkie wrażenie XD #nieruchomosci
źródło: 1000016805
Pobierz
AST0N +34
Jakbyśmy chcieli zrobić bingo z samymi sztandarowymi tekstami Milana, to byłoby ciężko, bo do bingo trzeba by wrzucić przynajmniej 9 tekstów, a ja odnoszę wrażenie, że on w kółko mówi ich tylko 5 xD
- Ja Ci powiem sceze, nie będę kłamał
- Ty mi się podobas najbardziej
- Chciałbym z tobom twozyć parę
- No jo
- Ja Ci powiem sceze, nie będę kłamał
- Ty mi się podobas najbardziej
- Chciałbym z tobom twozyć parę
- No jo





Mamy dużą bazę danych (Oracle), z której generujemy raporty (SQL-ki z różnymi count, group by, join, where itd).
Obecnie mamy w bazie tyle danych, że takie zapytania wykonują się długo (mimo pozakładanych indeksów i optymalizacji przez speca od DB).
Chcielibyśmy użyć czegoś, żeby obok "indeksować" potrzebne dane do raportów (nie wiem, jakaś inna "baza").
Przy okazji, żeby łatwiej tworzyć nowe raporty (np. coś w stylu jak są hurtownie danych i kostki OLAP/ETL).
Czego do tego najlepiej użyć? Miałem dwa pomysły, ale chyba żaden nie jest dobry:
- Elasticsearch: Łatwo indeksować i wyszukiwać. Jest to "baza danych", więc mam gotowe rozwiązanie gdzie mogę obok przechowywać dane (ten "index"). Ale problematyczne są group by (których mamy sporo) i raporty agregujące dane (tzn. ciężko osiągnąć coś w stylu kostek OLAP).
- Spark: Wydaje mi się, że łatwo osiągnąć te group by i agregacje. Ale co z przechowywaniem tych zagregowanych danych? Nie chciałbym za każdym razem ciągnąć wszystkiego z bazy i liczyć od nowa. A tak w tutorialch jest: pociągnij wszystko z bazy, przelicz, zapisz do CSV i koniec. A jak jutro chcesz nowy raport z aktualnymi danymi, to od nowa wszystko (i mielisz bazę na produkcji :/ ). Trzeba sobie samemu podpiąć bazę i ręcznie zapisywać, a potem wczytywać? Czy inaczej się do tego podchodzi? Może coś w HDFS?
W którym kierunku powinienem iść? (Uwzględniając też dla mnie przydatność na rynku pracy.) A może coś innego? Słyszałem o rozwiązaniach np. QlikView lub Microsoft SQL Server, gdzie jest już gotowiec ze wszystkim (nawet z GUI, że można sobie takie raporty wyklikać). Ale kosztuje to miliony monet i jako Java dev wolałbym coś czego się używa na rynku (np. Spark często się pojawia w wymaganiach o pracę - chociaż słyszałem też głosy, że się od tego odchodzi), a nie zostać konfiguratorem jakiegoś płatnego rozwiązania.
Komentarz usunięty przez autora
Ew możesz odwzorowac relacyjna bazę w hivie ale to dość złożony proces.
Sparka mozesz wpiac do powerbi lub tableau. Impale tez.
Jak cos to chętnie pomogę.
Komentarz usunięty przez autora
Po drugie, Spark jest imho najlepszym rozwiazaniem do tego. I nie musisz wszystkiego obliczac za kazdym razem raczej, nie pamietam juz szczegolow ale pogoogluj koncpet Sparkowego "checkpoint" - on jest
@MikelThief: @Myzreal: myślałem o tym na początku, żeby po prostu zrobić replikację do drugiej bazy Oracle obok. Aktualnie tego nie mamy, bo raporty, które są konieczne jeszcze obecnie dają radę się wykonywać (ale nie potrwa to długo). Jak mamy przerzucać dane obok, to zamiast takiej samej bazy wolelibyśmy coś dedykowanego pod
Nastepnie procesowac np za pomoca nifi dalej.
Co do sqoopa mozesz ustawic crona lub oozie(przy hdfs) . W komendzie sqoopa mozesz podac warunek where (on dziala w calosci po jdbc)
https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports
w sqoop pobierasz całą tabele --table albo zapytaniem w --query mozesz sobie wybrac co tam chcesz, no i jak nawet byś pobierał całą tabele to sqooop moze to szybko robić (zwiekszenie num-mappers i podanie kolumny --split-by)
Cykliczne agregacje danych mają sens wtedy, gdy dane wejściowe albo wyjściowe będą się do tego nadawały.
Weźmy przykład z Mirko. Zakładając że masz tabele userów, wpisów i plusów, która zawiera id wpisu i id usera, robisz zapytanie do plusów o X wpisów z największą ich liczbą. Utrwalasz wtedy np. datę wygenerowania danej, id wpisu, liczbę plusów. Taka