Dynamiczne mapowanie i transformacja danych

0

Cześć. Potrzebuję coś napisać w Pythonie w którym mam zerowe doświadczenie (od ponad 10 lat programuję w C# i trochę Java) i potrzebuję porady jakich bibliotek/narzędzi Pythonowych użyć do mojego problemu. Mianowicie potrzebuję zrobić taki background job który sobie chodzi w tle i robi coś takiego:

  1. Pobiera dane z systemu A poprzez API/bazę danych/odczyt pliku cokolwiek ten system udostępnia.
  2. Robi prostą transformację/mapowanie danych, może też jakieś proste obliczenia/agregacje danych.
  3. Rezultat zapisywany jest w systemie B wykorzystując HTTP API tego systemu.

To na czym mi najbardziej zależy to aby te reguły transformacji/mapowania można było definiować w osobnym pliku z konfiguracją (JSON, YAML, Excel też może być...). Tak więc kod tego joba nie powinien mieć wiedzy o regułach mapowania, przez co można je modyfikować bez konieczności dłubania w kodzie.

Mamy więc tu taki proces ETL, ale z racji skali wykorzystania tego narzędzia nie chcę korzystać z narzędzi firm trzecich w stylu Airflow, AWS Glue czy Azure Data Factory. Pisać tego wszystkiego samemu też nie chcę (choć bym mógł i w ostateczności jak nie ma narzędzi do tego to będę musiał tak zrobić).

3

Może ktoś inny będzie znał narzędzie, ja nie kojarzę - co do użycia bibliotek to do łączenia z API i do wysyłania do API możesz użyć requests, do tych reguł to jest biblioteka do pracy z JSON. Obie są proste do użycia przy podstawowych operacjach. Do bazy danych czy odczytu plików z systemu to zależy jaka baza/format pliku - ale prawie na pewno biblioteka do tego jest.

Czyli najpierw requests żeby wykonać zapytanie do systemu/jakaś inna biblioteka np. do połączenia się z bazą danych. Potem kod do pobrania wartości z pliku np. JSON i wykonania transformacji i na końcu przez requests do tego systemu B przesyłane dane.

3

To co up + zależy jakie to mają by transformacje. Jeśli jakaś konkatenacja, filtrowanie itp to można to załatwić czystym pythonem.

Jeśli coś bardziej zaawansowanego to może warto rozważyć sparka / pandasa?

0

Dzięki. Pobieranie i zapis danych nie będzie problemem. Do transformacji danych Pandas wydaje się być tym czego szukam. Pozostaje tylko kwestia ogarnięcia wstrzykiwania/pobierania konfiguracji dla tych transformacji z zewnątrz, ale chyba będzie to coś do napisania samemu bo nie trafiłem na żadną taką bibliotekę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1