Case Study

Duże wolumeny danych i wymagania wydajnościowe.


Jak przygotować rozwiązanie do przetwarzania JPK_KR_PD?

Profil klienta

  • Branża: logistyczno – finansowa
  • Wielkość firmy: 51 tys. Pracowników
  • Kontekst biznesowy: Klient to jedna z największych organizacji w Polsce, obsługująca miliony klientów indywidualnych i biznesowych oraz zarządzająca rozbudowaną siecią placówek na terenie całego kraju. Skala prowadzonej działalności przekłada się na bardzo duże wolumeny danych finansowo-księgowych, co stawia wysokie wymagania wobec systemów odpowiedzialnych za przygotowanie i przetwarzanie plików JPK. 

Wyzwania związane z przetwarzaniem pliku JPK_KR_PD

Jednym z podstawowych założeń przyjętych przez Klienta było przetwarzanie kompletnego pliku JPK_KR_PD jako pojedynczego artefaktu danych, bez wcześniejszego podziału na mniejsze części. W toku prowadzonych uzgodnień ustalono, że założenie to wynikało zarówno z przyjętego sposobu organizacji procesu po stronie biznesowej, jak i z potencjalnych problemów z rozliczaniem sald przejściowych, które mogłyby pojawić się przy przetwarzaniu danych partiami.

Równocześnie Klient oczekiwał, aby pełne przetworzenie pliku zakończyło się w czasie nie przekraczającym jednej zmiany roboczej, tj. ośmiu godzin. W związku z tym pojawiały się pytania dotyczące możliwości zastosowania przetwarzania równoległego. Niestety Klient nie zdawał sobie sprawy z istoty możliwości przetwarzania równoległego w sytuacji, kiedy plik był pojedynczy, nie podzielony na okresy cząstkowe. 

Czy przetwarzanie równoległe może przyspieszyć obsługę JPK_KR_PD?

Z technicznego punktu widzenia równoległe przetwarzanie danych w strukturze JPK_KR_PD jest zagadnieniem złożonym. Potencjalne korzyści mogłyby zostać osiągnięte przede wszystkim poprzez merytoryczny podział dokumentu na główne obszary danych, takie jak dziennik, zestawienie obrotów i sald, zapisy księgowe oraz dane kontrahentów. Możliwe byłoby również dalsze rozdrobnienie poszczególnych zbiorów na mniejsze partie przetwarzane niezależnie. Jednak takie podejście wymagałoby wdrożenia dodatkowych mechanizmów agregacji i synchronizacji danych wspólnych. Dotyczy to w szczególności obliczeń kontrolnych, takich jak sumowanie wartości stron Wn i Ma dla zbiorów dekretów, których wyniki muszą być następnie wykorzystane podczas walidacji integralności danych.

Ze względu na wysoką złożoność takiego rozwiązania oraz jego ograniczoną wartość z perspektywy założonych celów biznesowego, temat ten nie był rozwijany jako preferowany kierunek realizacji projektu.

Testy wydajnościowe JPK_KR_PD. Jak zweryfikowaliśmy rzeczywiste możliwości rozwiązania?

Skoncentrowaliśmy się na weryfikacji rzeczywistych parametrów przetwarzania dla reprezentatywnych zbiorów danych, w postaci jednego pliku.

Dodatkowym wyzwaniem było oczekiwanie określenia wydajności rozwiązania w postaci czasu przetwarzania przypadającego na jednostkę objętości pliku (GB). W praktyce parametr ten ma ograniczoną wartość prognostyczną dla dokumentów JPK_KR_PD, ponieważ rzeczywista pracochłonność przetwarzania jest w znacznie większym stopniu uzależniona od liczby oraz struktury wystąpień poszczególnych węzłów biznesowych, zwłaszcza rekordów dekretów i ich elementów podrzędnych. Na etapie formułowania wymagań nie były dostępne informacje pozwalające na pełną charakterystykę tych zależności.

Przygotowanie danych testowych dla dużych wolumenów JPK

Klient nie dostarczył pliku testowego umożliwiającego przeprowadzenie wiarygodnych pomiarów, przygotowanie materiału zostało wykonane przez ekspertów Pentacomp. Do jego konstrukcji wykorzystano:

  • informacje dotyczące wolumenów danych,
  • strukturę występowania poszczególnych typów danych,
  • charakterystykę danych przekazanych podczas uzgodnień projektowych.

Na tak przygotowanym zbiorze przeprowadzono następnie testy wydajnościowe.

Wyniki tekstów i weryfikacja wymagań wydajnościowych

Na przygotowanym środowisku przeprowadzono testy wydajnościowe przetwarzania JPK_KR_PD.  Analiza obejmowała rzeczywiste czasy obsługi plików dla uzgodnionych wolumenów danych. Uzyskane wyniki zostały przekazane Klientowi jako podstawowy materiał do oceny spełnienia wymagań wydajnościowych. 

Projekt pokazał, że skuteczne przetwarzanie dużych struktur JPK_KR_PD wymaga nie tylko odpowiedniej technologii, ale przede wszystkim właściwej analizy danych, zrozumienia procesów biznesowych oraz przeprowadzenia rzetelnych testów wydajnościowych.