You are currently viewing Telemetria w Supply Chain: Jak wymodelować dane IoT i wykrywać anomalie chłodnicze w Power BI

Telemetria w Supply Chain: Jak wymodelować dane IoT i wykrywać anomalie chłodnicze w Power BI

Analiza Danych BI Wykres

Wyzwanie Analityczno-Zarządcze

Współczesny łańcuch dostaw w branży logistycznej opiera się na ciągłym strumieniu danych telemetrycznych IoT. Zarządzanie flotą pojazdów chłodniczych (Cold Chain Logistics) wymaga nie tylko śledzenia lokalizacji GPS, ale przede wszystkim bieżącej kontroli warunków przewozu (temperatura, wilgotność) oraz poziomu zatowarowania (Inventory_Level).

Analizowany zbiór danych telemetrycznych obejmuje 1000 odczytów z 10 floty pojazdów (od Truck_1 do Truck_10). Głównym wyzwaniem biznesowym jest identyfikacja przyczyn wysokiego udziału przesyłek opóźnionych (status Delayed stanowi aż 35% wszystkich zdarzeń) oraz zbadanie, czy wahania temperatury i wilgotności korelują ze spadkiem efektywności dostaw i uszkodzeniami ładunku.

Wnioski z Analizy Danych

Weryfikacja danych przy użyciu narzędzi statystycznych, macierzy korelacji oraz wykresów kategorycznych pozwoliła na zidentyfikowanie kluczowych wzorców operacyjnych:

  • Wysoki poziom opóźnień: Status Delayed jest najczęstszym stanem w zbiorze (350 obserwacji na 1000), wyprzedzając przesyłki w trasie (In Transit) i dostarczone (Delivered).
  • Macierz Korelacji: Liniowa korelacja Pearsona pomiędzy zmiennymi ciągłymi (Temperature, Humidity, Inventory_Level) wskazuje na brak silnych bezpośrednich zależności liniowych (współczynniki bliskie 0). Oznacza to, że opóźnienia nie wynikają wprost z samych skrajnych wartości klimatycznych, ale mogą mieć charakter złożony (np. nakładanie się awarii agregatu z czasem trwania opóźnienia).
  • Wykres Kategoryczny (Analiza Floty): Rozkład statusu dostaw w rozbiciu na poszczególne aktywa (Asset_ID) wykazuje równomierne rozłożenie próbek (~100 odczytów na ciężarówkę), jednak wybrane jednostki (np. Truck_7, Truck_8) generują zagęszczenie odczytów z podwyższoną temperaturą (>26°C) w trakcie trwania opóźnienia.

Okiem BI Developera – Architektura i Inżynieria Danych

Surowy zbiór danych ma postać płaskiej tabeli zdarzeniowej (Event Log). Załadowanie takiego zbioru bezpośrednio do silnika VertiPaq w Power BI bez wcześniejszego przygotowania modelu danych prowadzi do problemów z wydajnością przy skalowaniu do milionów odczytów.

Propozycja Schematu Gwiazdy (Star Schema)

W celu optymalizacji wydajności oraz zapewnienia przejrzystości DAX, przekształcamy płaską strukturę w klasyczny schemat gwiazdy:

  • Tabela Faktów: Fact_TelemetryEvents
    • Klucze obce: DateKey, TimeKey, AssetKey, StatusKey
    • Miary/Degenerate Dimensions: Latitude, Longitude, Inventory_Level, Temperature, Humidity
  • Tabela Wymiaru: Dim_Asset
    • AssetKey (Surrogate Key), Asset_ID (np. Truck_7), Asset_Type, Capacity
  • Tabela Wymiaru: Dim_ShipmentStatus
    • StatusKey, Shipment_Status (Delayed, In Transit, Delivered)
  • Tabela Wymiaru: Dim_Date / Dim_Time
    • Kluczowa rozdzielenie daty i czasu w celu uniknięcia wysokie kardynalności (High Cardinality) kolumny Timestamp.

Ziarnistość i Optymalizacja Wydajności (ETL/SQL)

Surowy znacznik czasu (Timestamp) posiada bardzo wysoką kardynalność (1000 unikalnych wartości na 1000 wierszy). W rozwiązaniu produkcyjnym na poziomie warstwy hurtowni danych (T-SQL / Azure Synapse / Fabric):

  1. Rozdzielamy Timestamp na DateKey (INT: YYYYMMDD) oraz TimeKey (INT: HHMMSS) lub zaokrąglamy czas do interwałów 5-minutowych, co drastycznie redukuje rozmiar słownika w kompresji kolumnowej VertiPaq.
  2. Szerokości i długości geograficzne (Latitude, Longitude) konwertujemy do typu decimal z ograniczoną precyzją lub tworzymy zagregowane siatki geolokalizacyjne (Geohash), aby zmniejszyć unikalność zmiennych ciągłych.

Power BI Showcase & DAX Pro-Tip

W analizie logistycznej kluczowe jest wykrywanie przekroczeń progów krytycznych (np. przetrzymanie ładunku w temperaturze > 25°C podczas opóźnienia) bez używania zasobożernych kolumn obliczeniowych. Użyjemy zaawansowanego wzorca DAX z funkcją KEEPFILTERS oraz tabelami tymczasowymi do obliczenia wolumenu zagrożonych przesyłek.

Zaawansowana Miara DAX: Wskaźnik Zagrożonych Zapasów (Inventory at Risk)

Gatunek Inventory at Risk (Temp Breach & Delay) = 
VAR TempThreshold = 25.0
RETURN
CALCULATE(
    SUM(Fact_TelemetryEvents[Inventory_Level]),
    KEEPFILTERS(Dim_ShipmentStatus[Shipment_Status] = "Delayed"),
    KEEPFILTERS(Fact_TelemetryEvents[Temperature] > TempThreshold)
)
% Share of At-Risk Inventory = 
VAR TotalInventory = SUM(Fact_TelemetryEvents[Inventory_Level])
VAR AtRiskInventory = [Gatunek Inventory at Risk (Temp Breach & Delay)]
RETURN
DIVIDE(AtRiskInventory, TotalInventory, 0)

Dlaczego to rozwiązanie działa lepiej?
Zamiast tworzenia kolumny obliczeniowej w języku DAX (co zwiększa rozmiar pliku .pbix w pamięci RAM), kontekst filtrowania jest modyfikowany dynamicznie w locie. Wykorzystanie KEEPFILTERS gwarantuje, że nie nadpisujemy istniejących filtrów w raporcie (np. wyboru konkretnej ciężarówki na pędzlu/slicerze), lecz nakładamy na nie iloczyn logiczny (AND). Jest to podejście w pełni zoptymalizowane pod kątem silnika Tabular.

Rekomendacje Strategiczne dla Biznesu

  1. Wdrożenie Alertingu IoT w Czasie Rzeczywistym: Zintegrowanie strumienia danych z Azure Stream Analytics lub Fabric Real-Time Intelligence, aby wysyłać powiadomienia natychmiast, gdy Temperature > 25°C dla pojazdu w stanie Delayed.

    Sugerowany wpływ na KPI: Spadek strat w towarach wrażliwych (Cold Chain) o 20-25%.
  2. Prewencyjny Serwis Najbardziej Awaryjnych Jednostek: Skierowanie ciężarówek generujących największy odsetek statusów Delayed (np. Truck_7, Truck_8) do audytu stanu technicznego agregatów chłodniczych.

    Sugerowany wpływ na KPI: Redukcja ogólnego poziomu opóźnień floty o 10-15 p.p.
  3. Dynamiczne Przekierowywanie Zapasów (Inventory Re-routing): Automatyczna zmiana docelowego węzła logistycznego w przypadku wykrycia opóźnienia przekraczającego 2 godziny, jeśli poziom Inventory_Level na pojeździe jest krytyczny dla ciągłości dostaw.

    Sugerowany wpływ na KPI: Wzrost wskaźnika On-Time In-Full (OTIF) o 8%.

Podsumowanie dla Zarządu (Executive Summary)

Przeprowadzona analiza telemetrii floty wykazuje, że opóźnienia dostaw stanowią krytyczne wąskie gardło operacyjne (35% rejestrowanych zdarzeń). Transformacja płaskich struktur danych IoT w uporządkowany model gwiaździsty (Star Schema) pozwala na błyskawiczne identyfikowanie incydentów chłodniczych bezpośrednio w Power BI. Wdrożenie zalecanych architektur danych oraz prewencyjnego monitoringu parametrów środowiskowych pozwoli na znaczne ograniczenie strat materiałowych i poprawę terminowości sieci logistycznej.

Dodaj komentarz