Badanie architektury IoT Lambda

Ukończone

Poniższa lista zawiera trzy odrębne cele przechowywania odczytów danych telemetrycznych generowanych przez urządzenia IoT:

  • Aby przeprowadzić analizę pod kątem anomalii — na potrzeby konserwacji prewencyjnej.
  • Wizualizacja przez operatora zdalnego — pomoc w podejmowaniu decyzji.
  • Do zarchiwizowania — do późniejszej analizy.

Każdy z tych scenariuszy ma sprzeczne wymagania dotyczące magazynu. Jednak posiadanie sprzecznych celów nie musi być złe. Sprzeczne cele dotyczące magazynu danych prowadzą nas do systemów hybrydowych, które mogą być elastyczne i zaawansowane.

W poniższych sekcjach opisano hybrydowy charakter architektury lambda IoT.

Ścieżki danych

Widoczny konflikt z danymi usługi Azure IoT jest następujący. Dane telemetryczne są odbierane na gorąco, jest ich bardzo dużo i muszą być analizowane szybko. Konserwacja zapobiegawcza jest celem tej analizy, w której dane powinny być przechowywane, zarówno w celu archiwizacji, jak i do przeprowadzania dokładniejszej analizy w dłuższych okresach czasu. Głębsza analiza służy do wykrywania długoterminowych trendów lub wzorców awarii, które mogą być trudne do wykrycia przy użyciu krótszej próbki w czasie rzeczywistym.

Jednym z najprostszych sposobów obsługi tej podwójnej wartości na końcu czujnika urządzenia jest wysłanie dwóch komunikatów:

  • Pierwszy komunikat zawiera tylko dane telemetryczne, które muszą być analizowane w czasie rzeczywistym.
  • Drugi komunikat zawiera dane telemetryczne i wszystkie inne dane, które mogą być potrzebne do dokładniejszej analizy lub archiwizacji.

Usługa Azure IoT Hub kieruje te dwa komunikaty do różnych zasobów. Często używa się znanych terminów gorąca, ciepła, chłodna i chłodna w analizie danych:

  • Gorąco wyraźnie oznacza, że potrzebne jest podejście w czasie rzeczywistym.
  • Ciepło może mieć takie samo znaczenie, choć być może dane są "blisko" w czasie rzeczywistym, a przynajmniej ostatnie.
  • Chłodna oznacza, że przepływ danych działa wolno.
  • Zimno oznacza, że dane są przechowywane, a nie "przepływające".

Zrozumienie architektury lambda

Architektura lambda dla rozwiązania Azure IoT umożliwia korzystanie z wielu ścieżek danych. Jednak ze względu na wyjaśnienie pracujmy z dwiema ścieżkami: gorącą i zimną.

Na poniższym diagramie:

  • Szybka ścieżka — przetwarzanie w czasie rzeczywistym (ścieżka gorąca) to dane telemetryczne przesyłane strumieniowo kierowane do analizy w czasie rzeczywistym. Ta ścieżka jest również właściwą ścieżką do wyzwalania ostrzeżeń i alertów.

  • Powolna ścieżka — przetwarzanie wsadowe (ścieżka zimna) to ścieżka przetwarzania wsadowego dla magazynu danych telemetrycznych.

Diagram przedstawiający architekturę lambda dla rozwiązania IoT zawierającego ścieżki magazynowania gorącego i zimnego.

Ścieżka gorąca

W tym scenariuszu urządzenie zdalne IoT pompuje określone dane telemetryczne. Ta telemetria jest wysyłana we własnym komunikacie, kierowanym przez usługę IoT Hub do natychmiastowej analizy i wizualizacji. Analiza może być wykonywana przez operatora ludzkiego, na przykład przy użyciu usługi Azure Data Explorer. To podejście zostało opisane w tym module.

Alternatywnie analiza może być obsługiwana przez modele usługi Azure Machine Edukacja za pośrednictwem usługi Azure Stream Analytics. Ten scenariusz jest bardziej złożony i obejmuje kodowanie.

Ścieżka zimna

W tym scenariuszu urządzenie zdalne IoT wysyła również wszystkie dane telemetryczne i dane rejestrowania. Usługa IoT Hub kieruje te komunikaty trasą do konta usługi Azure Storage. Na platformie Azure dostępne są różne zasoby magazynu. Te opcje zostały opisane w kolejnych lekcjach.

Problemy z architekturą lambda

Podobnie jak w przypadku większości systemów hybrydowych, występują problemy. Jednym z głównych problemów dotyczących IoT jest duplikowanie danych i kodu. Im więcej duplikacji, tym większe prawdopodobieństwo niepożądanej rozbieżności między duplikatami. Deweloperzy kodu czujnika urządzenia IoT muszą upewnić się, że dane telemetryczne wysyłane w tych dwóch komunikatach są identyczne, jeśli jest to konieczne. W aplikacjach analizy dla ścieżek gorących i zimnych mogą występować duplikowanie kodu. Z duplikowaniem należy obchodzić się ostrożnie, chociaż jest to niemal nieunikniona konsekwencja systemu hybrydowego.