Skip to content

sebkaz/RTA_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modelowanie dla biznesu - Analityka w czasie rzeczywistym - narzędzia informatyczne i biznesowe

Wydawnictwo: Oficyna Wydawnicza SGH 2022, Wydanie 1

Opublikowano: 2022

ISBN 978-83-8030-540-3

Kup książkę

W niniejszej monografii podjęto wiele zagadnień związanych z przetwarzaniem danych strumieniowych oraz opisano narzędzia wykorzystywane w tym celu. Rozdział 1 przedstawia dane, zarówno ustrukturyzowane, jak i nieustrukturyzowane, poprzez ich różne obiektowe reprezentacje oraz metody ich programowania w języku Python: od podstawowych pythonowych list przez tablice Numpy, Pandasowe ramki danych aż po tensory realizowane przez biblioteki związane z uczeniem głębokim. W przypadku danych nieustrukturyzowanych ukazano podstawy przetwarzania zdjęć oraz formatu JSON. Ze względu na wykorzystanie oprogramowania Apache Spark przedstawiono również podstawy przetwarzania obiektów RDD i sparkowych ramek danych. Ponieważ użytkowanie danych oznacza nie tylko ich wytwarzanie, lecz także ich zapis, wskazano podstawowe biblioteki oraz metody (funkcyjne i obiektowe) realizujące połączenie i wykonywanie prostych zapytań na relacyjnych bazach danych. Pandasowe ramki danych są jedną znajczęściej wykorzystywanych form przechowywania informacji, dlatego określono, jakie narzędzia można wykorzystać do dołączenia metadanych, tak by inne programy mogły przetwarzać kompletny zestaw informacji. Następnym elementem jest wskazanie historycznego i zarazem biznesowego podejścia do modeli przetwarzania danych. Ich definicja była ściśle związana z biznesowymi oczekiwaniami. Podstawą była realizacja głównych zadań, które realizowane są przez systemy OLTP (ang. On-Line Transaction Processing). Biznesowa potrzeba analizy gromadzonych danych i wyciągania ukrytych informacji oraz odpowiedzi na coraz bardziej złożone zapytania wymusiła na technologii wprowadzenie rozwiązań typu hurtownie danych, które przetwarzają dane z wykorzystaniem modelu OLAP (ang. On-Line Analytic Processing). Coraz większe zaangażowanie statystyki i analityków doprowadziło do tworzenia systemów pozwalających wykonywać operacje związane z data mining i coraz szerszym zakresem realizacji zadań AI czy uczenia maszynowego. Zrozumienie obiektowego myślenia o danych uzupełnione zostało o budowę prostych klas realizujących podstawowe algorytmy uczenia sieci neuronowych. Nie ma lepszego sposobu na zrozumienie działania algorytmu niż napisanie jego własnej wersji. Umiejętność posługiwania się klasami pozwala nie tylko używać gotowych bibliotek, ale również tworzyć własne rozwiązania na podstawie istniejących elementów. Nie ogranicza nas to już do myślenia o tym, jak przekształcić otrzymane dane w jakąś istniejącą formę i wykorzystać istniejące biblioteki. Możemy generować własne transformatory czy nawet modele.

Rozdział 2 poświęcony został procesowi tworzenia, przetwarzania i generowania wartości biznesowej z danych w ujęciu przetwarzania wsadowego i strumieniowego. Wyjaśniono w nim podstawowe pojęcia związane ze zdarzeniami i strumieniami. Omówiona została również istotna koncepcja czasu, która jest podstawowym elementem wpływającym na otrzymywane wyniki.

Rozdział 3 z kolei to krótka charakterystyka współczesnych narzędzi informatycznych każdego analityka danych. Skrócone opisy mają przedstawić idee towarzyszące tworzeniu tych narzędzi oraz sposób ich używania.

Rozdział kończący książkę prezentuje: kody wykorzystujące obiektowe włas-ności języka Python i realizujące przypadki biznesowych zastosowań do tworzenia prostego środowiska produkcyjnego, wykorzystania nowoczesnych bibliotek do analizy tekstów (w czasie niemal rzeczywistym), strumieniowanie danych z wykorzystaniem narzędzia Apache Spark oraz wykorzystanie algorytmu Isolation Forest do detekcji anomalii zarówno w trybie wsadowym, jak i w czasie rzeczywistym.

Mam nadzieję, że książka będzie źródłem ciekawych informacji oraz nowego spojrzenia na pojęcie danych i ich przepływy w biznesie i życiu codziennym. Wspomoże również rozwiązania informatyczne, jak również dostarczy wiele praktycznych rozwiązań w przetwarzaniu danych wsadowo i w czasie rzeczywistym.

Aktualizacja

Nowy requirements.txt zawiera wersje bibliotek, które pozwalają uruchomić kody z rozdziału 1 w środowisku Python3.11.

Aktualnie Apache Spark nie wymaga już ściągania katalogu spark - dlatego też biblioteka findspark również może zostać pominięta.

Aktualnie (w 2023 roku) zaktualizowałem wszystkie obrazy Dockerowe używane na zajęciach. Dzięki wykorzystaniu mechanizmów Docker Compose w jednym obrazie uruchamiany jest JupyterLab + Apache Spark + Apache Kafka + MongoDB. Całość można znaleźć Github repo Docker

Do innych zmian bibliotek open-source można zaliczyć:

  1. Biblioteka Keras (używana do sieci neuronowych) została zmieniona i wprowadzona bezpośrednio do biblioteki Tensorflow.
  2. Biblioteka SQLAlchemy posiada już drugie wydanie, które całkowicie zmienia zastosowane metody.

Zmiany te pokazują trudność jaka powstaje, gdy w środowiskach nie zdefiniuje się wersji pakietów do instalacji. Rodzi to również pozostałe konsekwencje używania kodów bazujących na języku Python. Częste zmiany środowiska, częste zmiany pakietów, które instalujemy jako podstawowe, częste zmiany (o których trudno się dowiedzieć) bibliotek, które ukryte są w zależnościach dla pakietów głównych, prowdzą do częstych "awarii" naszych kodów.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published