Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wybór technologii zrównoleglającej działania #6

Open
Zekhire opened this issue Dec 18, 2020 · 2 comments
Open

Wybór technologii zrównoleglającej działania #6

Zekhire opened this issue Dec 18, 2020 · 2 comments
Assignees

Comments

@Zekhire
Copy link
Collaborator

Zekhire commented Dec 18, 2020

Z listy otrzymanych samolotów trzeba wybrać tylko te, które są w/nad Polską. Sprawdzanie musi wykonywać się równolegle dla każdego samolotu, a do tego trzeba wybrać odpowiednią technologię i je jakoś przetestować.
Wstępnie do sprawdzenia są:

  • kinesis
  • kafka
@gynvael515
Copy link
Collaborator

gynvael515 commented Dec 19, 2020

Dzisiaj przyjrzałem się trochę Amazon Kinesis. Umożliwia ono w czasie rzeczywistym (lub bardzo krótkim) zbieranie dużej ilości danych, ich przetworzenie czy analizę (na bieżąco, nie musimy czekać na zgromadzenie danych itp). W dużym skrócie dane wysyłane są przez "producentów" do strumienia, z którego "konsumenci" mogą je odczytywać oraz przetwarzać. Konsumenci mogą realizować różne zadania. Strumień można podzielić na "shardy" co zwiększa możliwości strumienia.

Wystąpiło trochę problemów z uwierzytelnianiem, ale udało mi się utworzyć strumień danych (Kinesis) oraz go przetestować. Do testu wykorzystałem przykładowe kody (LINK), które musiałem trochę zmodyfikować. Skrypty działają w oparciu o Pythona i Boto3. Przykład wrzuciłem na gita (959adf1).

EDIT: Wrzuciłem instrukcję do przygotowania środowiska oraz uruchomienia przykładu (be365e8).

@gynvael515
Copy link
Collaborator

gynvael515 commented Dec 20, 2020

Wrzuciłem skrypty (69cb6a7) wykorzystujące Kinesis, które pobierają dane z OpenSky i wykorzystują też sprawdzanie w Geoapify.
Póki co to po prostu taka poglądowa wersja.

Producer co 10sek pobiera dane dla odpowiedniego bounding boxa z OpenSky, wyciąga z danych współrzędne geograficzne oraz kierunek i wysyła to na stream (póki co 1 shard, można śmiało zmieniać) wykorzystując 2 klucze do partycjonowania wiadomości. W tym czasie 2 konsumenci pobierają dane ze streama (dla odpowiadającego im klucza) i odpytują Geoapify, po czym wypisują na standardowe wyjście odebrane dane lotu i kraj uzyskany z API.

Możemy zwiększać liczbę shard'ów, klientów; modyfikować czasy odpytywania API itp. Można tam właściwie jeszcze dorzucić kilka poprawek i to rozbudować, ale miał być to tylko test wykorzystujący pozostałe API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants