Udostępnij przez


Wybieranie technologii przetwarzania strumieniowego na platformie Azure

W tym artykule porównaliśmy opcje technologii przetwarzania strumienia w czasie rzeczywistym na platformie Azure.

Omówienie danych przesyłanych strumieniowo

Organizacje często mają różne źródła danych, które jednocześnie emitują komunikaty, rekordy lub dane. Ilość danych może wahać się od kilku bajtów do kilku megabajtów (MB). Dane przesyłane strumieniowo są przesyłane w dużej ilości w sposób ciągły, przyrostowy, który można przetwarzać niemal w czasie rzeczywistym. Ten typ danych obejmuje informacje używane przez firmy do analizy w czasie rzeczywistym i wgląd w różne aspekty swojej działalności, takie jak dzienniki aplikacji, aktualizacje geolokalizacji, zdarzenia i odczyty czujników.

Dane przesyłane strumieniowo często mają następujące cechy:

  • Niedoskonałe integralność danych: Błędy tymczasowe w źródle mogą spowodować brak elementów danych. Ciągły charakter strumienia może powodować niespójność danych. W związku z tym systemy przetwarzania strumieniowego i analizy zwykle obejmują logikę weryfikacji danych w celu ograniczenia tych błędów.

  • Ciągły przepływ danych: Strumień danych nie ma początku ani końca, więc musisz stale zbierać dane. Na przykład dzienniki aktywności serwera gromadzą się tak długo, jak działa serwer.

  • Różne formaty danych: Możesz przesyłać strumieniowo dane w wielu formatach, takich jak JSON, Avro i CSV. Może również zawierać różne typy danych, takie jak ciągi, liczby, daty i typy binarne. Systemy przetwarzania strumieniowego muszą obsługiwać te odmiany danych.

  • Kolejność danych wrażliwych na czas: Poszczególne elementy w strumieniu danych zawierają znaczniki czasu. Sam strumień danych może być wrażliwy na czas i utracić wartość po upływie określonego czasu. W niektórych przypadkach należy zachować kolejność przetwarzania danych.

Opcje technologii przetwarzania w czasie rzeczywistym

Aby ułatwić wybór odpowiedniej technologii, w tej sekcji opisano typowe opcje na platformie Azure, od pozyskiwania po zużycie. Każda podsekcja wyróżnia zalecane technologie na podstawie ich roli w przepływie przetwarzania danych strumieniowych.

Przepływ danych w przetwarzaniu strumieniowym na wysokim poziomie

Diagram przedstawiający przepływ danych dla rozwiązania do przetwarzania strumieniowego.

Pobierz plik programu Visio tej architektury.

Producenci transmisji

Producenci strumieni generują i wypychają dane do usług pozyskiwania danych platformy Azure. Stale tworzą dane ze źródeł, takich jak urządzenia Internetu rzeczy (IoT), dzienniki aplikacji lub bazy danych.

Producenci strumieni zapewniają następujące korzyści:

  • Przechwyć dane niemal w czasie rzeczywistym. Producenci mogą stale zbierać dane ze źródeł, takich jak urządzenia IoT, interakcje użytkowników i dzienniki aplikacji. Przesyłają strumieniowo dane do usług platformy Azure, takich jak Azure Event Hubs lub Azure IoT Hub.

  • Optymalizowanie przepływności przy użyciu przetwarzania wsadowego i kompresji. Producenci mogą grupować komunikaty i stosować kompresję w celu zminimalizowania rozmiaru danych podczas transmisji. Te możliwości zwiększają wydajność.

  • Zapewnij niezawodną transmisję przy użyciu obsługi błędów i ponownych prób. Producenci mogą zarządzać zakłóceniami sieci lub awariami brokera dzięki automatycznym ponawianiu prób w celu zapewnienia zapewnienia niezawodnego dostarczania danych.

  • Zapewnij integralność danych dzięki idempotencji. Producenci można skonfigurować tak, aby obsługiwali dokładnie jednokrotne dostarczanie, co uniemożliwia duplikowanie komunikatów i zapewnia spójny przepływ danych.

Komponenty

  • Usługa IoT Hub pozyskiwa dane IoT . Udostępnia funkcje, takie jak dwukierunkowa komunikacja, uwierzytelnianie urządzeń i buforowanie komunikatów w trybie offline. Idealnie nadaje się do zarządzania urządzeniami IoT i ich strumieniami danych.

  • Producenci przechwytywania zmian danych (CDC) obejmują bazy danych platformy Azure, takie jak Azure SQL Database i Azure Cosmos DB.

    Aby uzyskać dostęp do danych usługi CDC, możesz użyć łączników, takich jak Debezium dla usługi SQL Database lub zestawienia zmian usługi Azure Cosmos DB. Te łączniki są często hostowane w środowiskach usługi Azure Functions lub Azure App Service. Jeśli używasz funkcji eventstreams usługi Microsoft Fabric, nie potrzebujesz oddzielnych aplikacji, takich jak Debezium, aby połączyć producentów cdC z odbiorcami podrzędnymi.

  • Aplikacje niestandardowe , takie jak Debezium, mogą być również hostowane jako aplikacje autonomiczne w usługach zarządzanych, takich jak Usługa Azure Kubernetes Service (AKS) lub środowiska usługi App Service. Takie podejście zapewnia większą kontrolę lub dostosowanie.

Ogólne możliwości

Zdolność Centrum IoT Producenci CDC Aplikacje niestandardowe
Metryki i logi urządzeń Tak Nie. Nie.
Usługa zarządzana Tak Nie. Nie.
Skalowalność Tak Tak Tak

Pozyskiwanie strumienia

Producenci, tacy jak aplikacje internetowe i mobilne, urządzenia IoT i czujniki, stale generują dane. Potok przetwarzania strumieniowego musi efektywnie pozyskiwać te dane zarówno do analizy w czasie rzeczywistym, jak i analizy wsadowej.

Rozważmy następujący czynniki:

  • Szybkość danych: Określ, jak obsługiwać dane o wysokiej częstotliwości z wielu źródeł, które często różnią się w formacie i rozmiarze.

  • Skalowalność: Upewnij się, że warstwa akwizycji danych może być skalowana dynamicznie w miarę zwiększania się ilości danych, wariantów i szybkości.

  • Integralność i niezawodność danych: Zapobiegaj utracie lub duplikowaniu danych podczas transmisji.

Składniki pozyskiwania strumienia

  • Event Hubs to usługa pozyskiwania danych w czasie rzeczywistym, która może obsługiwać miliony zdarzeń na sekundę, co sprawia, że jest idealnym rozwiązaniem w scenariuszach o wysokiej przepływności. Może ona dynamicznie skalować i przetwarzać ogromne ilości danych z małym opóźnieniem.

    Usługa Event Hubs obsługuje funkcje, takie jak partycjonowanie na potrzeby przetwarzania równoległego i zasad przechowywania danych. Integruje się z usługami platformy Azure, takimi jak Azure Stream Analytics, Fabric, Azure Databricks i Azure Functions. Usługa Event Hubs integruje się również z platformą Apache Kafka i można uruchamiać istniejące obciążenia platformy Kafka bez żadnych zmian w kodzie.

  • Event Grid to w pełni zarządzana usługa routingu zdarzeń. Umożliwia pozyskiwanie, dystrybucję i reagowanie na zdarzenia z różnych źródeł, dzięki czemu jest idealnym rozwiązaniem dla architektur opartych na zdarzeniach w czasie rzeczywistym. Efektywnie obsługuje powiadomienia o zdarzeniach i integruje się z usługami platformy Azure, aplikacjami niestandardowymi i systemami partnerskimi. Event Grid odgrywa kluczową rolę w przetwarzaniu danych strumieniowych.

  • Platforma Kafka w usłudze Azure HDInsight to zarządzana usługa Apache Kafka do pozyskiwania i przetwarzania danych w czasie rzeczywistym na dużą skalę. Ta usługa służy do przechwytywania i przechowywania danych przesyłanych strumieniowo z różnych źródeł, takich jak urządzenia IoT, dzienniki aplikacji i kanały informacyjne mediów społecznościowych. Ta usługa zapewnia dodatkową kontrolę nad konfiguracją platformy Kafka w infrastrukturze zarządzanej.

  • Apache Kafka on Confluent Cloud to w pełni zarządzana usługa Apache Kafka na potrzeby pozyskiwania danych w czasie rzeczywistym. Integruje się z platformą Azure, aby uprościć wdrażanie i skalowanie. To rozwiązanie obejmuje funkcje, takie jak rejestr schematów, ksqlDB na potrzeby zapytań strumieniowych i zabezpieczenia klasy korporacyjnej. Użyj tej opcji, jeśli używasz rozszerzonego ekosystemu łączników i narzędzi przetwarzania strumieniowego platformy Confluent.

Ogólne możliwości przetwarzania strumieni

Zdolność Centra zdarzeń Kafka na HDInsight Kafka na platformie Confluent
Przechowywanie komunikatów Tak Tak Tak
Limit rozmiaru komunikatu 1 MB Konfigurowalny Konfigurowalny
Usługa zarządzana Tak Zarządzana infrastruktura jako usługa Tak
Automatyczne skalowanie Tak Tak Tak
Oferta partnerów Nie. Nie. Tak
Model wyceny Na podstawie poziomu Na godzinę klastra Modele zużycia

Przetwarzanie strumieniowe

Ten krok obejmuje procesy, które przekształcają dane w czasie rzeczywistym i filtrują, agregują, wzbogacają lub analizują pozyskane dane.

Rozważmy następujący czynniki:

  • Przetwarzanie stanowe i bezstanowe: Zdecyduj, czy przetwarzanie zależy od wcześniej widocznych danych (stanowych) lub niezależnych zdarzeń (bezstanowych).

  • Obsługa czasu zdarzenia: Należy uwzględnić scenariusze, w których należy przetwarzać strumienie danych z wielu źródeł, szczególnie w przypadku rekordów z opóźnieniem.

  • Windowing: Użyj okien przesuwnych lub wirujących, aby zarządzać agregacjami i analizami opartymi na czasie.

  • Odporność na uszkodzenia: Upewnij się, że system może odzyskać sprawność po awariach bez utraty danych lub ponownego przetwarzania błędów.

Składniki przetwarzania strumieniowego

  • Stream Analytics to usługa zarządzana, która używa języka zapytań opartego na języku SQL w celu umożliwienia analizy w czasie rzeczywistym. Ta usługa służy do prostych zadań przetwarzania, takich jak filtrowanie, agregowanie i łączenie strumieni danych. Bezproblemowo integruje się z usługami Event Hubs, IoT Hub i Azure Blob Storage na potrzeby danych wejściowych i wyjściowych. Usługa Stream Analytics najlepiej pasuje do zadań o niskiej złożoności, w czasie rzeczywistym, w których wystarczy proste, zarządzane rozwiązanie z zapytaniami opartymi na języku SQL.

  • Spark Structured Streaming jest obsługiwane przez usługi, takie jak Fabric i Azure Databricks. Te usługi zapewniają ujednoliconą platformę analizy, która jest oparta na platformie Apache Spark i może obsługiwać złożone przekształcenia danych, potoki uczenia maszynowego i obciążenia danych big data. Interfejsy API przesyłania strumieniowego platformy Spark obsługują głęboką integrację z usługą Delta Lake na potrzeby przechowywania wersji danych i spójności.

  • Fabric eventstreams to funkcja przesyłania danych w czasie rzeczywistym w ramach Fabric, która jest ujednoliconą platformą analityczną. Strumienie zdarzeń umożliwiają bezproblemowe pozyskiwanie, przetwarzanie i integrację danych przesyłanych strumieniowo na potrzeby analizy i aplikacji w czasie rzeczywistym. Użytkownicy mogą uzyskiwać dostęp do strumieni zdarzeń przy minimalnym poziomie wiedzy technicznej. Udostępnia interfejsy przeciągania i upuszczania do konfigurowania potoków danych.

  • Azure Functions to bezserwerowa usługa obliczeniowa do przetwarzania sterowanego zdarzeniami. Jest to przydatne w przypadku lekkich zadań, takich jak przekształcanie danych lub wyzwalanie przepływów pracy na podstawie zdarzeń w czasie rzeczywistym. Funkcje platformy Azure są bezstanowe w swojej konstrukcji. Funkcja durable functions rozszerza możliwości obsługi stanowych przepływów pracy na potrzeby złożonej koordynacji zdarzeń.

Ogólne możliwości przetwarzania strumieniowego

Zdolność analiza strumienia Strukturalne przesyłanie strumieniowe Spark (Fabric, usługa Azure Databricks) Strumienie zdarzeń sieciowych Azure Functions
Przetwarzanie mikrosadowe Tak Tak Tak Nie.
Przetwarzanie oparte na zdarzeniach Nie. Nie. Tak Tak
Przetwarzanie stanowe Tak Tak Tak Nie.
Obsługa wskazywania kontrolnego Tak Tak Tak Nie.
Interfejs z małą ilością kodu Tak Nie. Tak Nie.
Model wyceny Jednostki strumieniowania Tak SKU tkaniny Tak

Odbiorniki przesyłania strumieniowego

Po zakończeniu przetwarzania danych system kieruje dane do odpowiednich miejsc docelowych lub ujść do magazynowania, dalszej analizy lub użycia w aplikacjach czasu rzeczywistego. Te miejsca docelowe mogą obejmować bazy danych, magazyny danych, narzędzia analityczne lub pulpity nawigacyjne do wizualizacji.

Rozważmy następujący czynniki:

  • Konsumpcja i wykorzystanie danych: Power BI używa się do analizy w czasie rzeczywistym lub tworzenia raportów za pomocą pulpitów nawigacyjnych. Dobrze integruje się z usługami platformy Azure i udostępnia wizualizacje na żywo strumieni danych.

  • Wymagania dotyczące małych opóźnień: Ustal, czy system musi dostarczać analizy strumieni danych w czasie rzeczywistym, takich jak metryki urządzeń i dzienniki aplikacji. Niektóre aplikacje mogą również wymagać bardzo małego opóźnienia dla operacji odczytu i zapisu, co sprawia, że nadają się do analizy operacyjnej lub aplikacji w czasie rzeczywistym.

  • Skalowalność i wolumen: Oceń potrzebę pozyskiwania dużych ilości danych, obsługi różnych formatów danych oraz efektywnego kosztowo skalowania.

Odbiorniki strumieniowe

  • Usługa Azure Data Lake Storage to skalowalne, rozproszone i ekonomiczne rozwiązanie do przechowywania danych bez struktury i częściowo ustrukturyzowanych. Obsługuje ona magazyn petabajtowy i obciążenia o wysokiej przepływności do przechowywania dużych ilości danych przesyłanych strumieniowo. Umożliwia również szybkie operacje odczytu i zapisu, które obsługują analizę danych przesyłanych strumieniowo i potoków danych w czasie rzeczywistym.

  • Magazyn zdarzeń Fabric to baza danych KQL do analizy i eksploracji danych w czasie rzeczywistym na podstawie wydarzeń, takich jak metryki i dane dziennika, dane szeregów czasowych i dane IoT. Obsługuje przetwarzanie milionów zdarzeń na sekundę z niską latencją. Ta funkcja umożliwia niemal natychmiastowy dostęp do danych przesyłanych strumieniowo. Eventhouse głęboko integruje się z ekosystemem Fabric. Umożliwia ona użytkownikom natychmiastowe wykonywanie zapytań i analizowanie danych przesyłanych strumieniowo przy użyciu narzędzi takich jak usługa Power BI.

  • Usługa Azure Cosmos DB to baza danych NoSQL do przechowywania danych o niskim opóźnieniu, globalnej dystrybucji i wysokiej skalowalności. Zapewnia wysoką przepływność i może obsługiwać duże ilości danych przesyłanych strumieniowo z spójną wydajnością.

  • SQL Database to w pełni zarządzana, oparta na chmurze usługa relacyjnej bazy danych. Opiera się na silniku SQL Server. Dzięki temu zapewnia ona możliwości tradycyjnej bazy danych programu SQL Server z zaletami skalowalności, niezawodności i mniejszego obciążenia związanego z zarządzaniem opartym na chmurze.

Ogólne możliwości odbiorników przesyłania strumieniowego

Zdolność Data Lake Storage Fabryka Wydarzeń Azure Cosmos DB Baza danych SQL
Ogólne przeznaczenie magazynu obiektów Tak Nie. Nie. Nie.
Agregacje danych przesyłanych strumieniowo Nie. Tak Nie. Nie.
Odczyty i zapisy z niskim opóźnieniem dla dokumentów JSON Nie. Tak Tak Nie.
Agregacje danych strukturalnych dla usługi Power BI Nie. Tak Nie. Tak
Model wyceny Na GB lub TB SKU tkaniny Jednostki żądania Jednostka transakcji bazy danych (DTU) lub rdzeń wirtualny

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główny autor:

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Zapoznaj się z następującymi modułami szkoleniowymi: