Omówienie przetwarzania zdarzeń
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Azure Stream Analytics to usługa służąca do złożonego przetwarzania zdarzeń i analizowania danych przesyłanych strumieniowo. Usługa Stream Analytics służy do:
- Pobranie danych z wejścia, takich jak Azure Event Hub, Azure IoT Hub lub kontener obiektów blob w Azure Storage.
- Przetwarzaj dane przy użyciu zapytania, aby wybrać, dokonać projekcji i zagregować wartości danych.
- Zapisz wyniki w danych wyjściowych, takich jak Azure Data Lake Storage Gen2, Azure SQL Database, Azure Cosmos DB, Azure Functions, Azure Event Hubs, Microsoft Power BI lub inne.
Po uruchomieniu zapytanie usługi Stream Analytics jest uruchamiane w sposób ciągły, przetwarzając nowe dane w miarę ich napływania na wejście i przechowując wyniki w danych wyjściowych.
Usługa Stream Analytics gwarantuje dokładnie jednokrotne przetwarzanie zdarzeń i co najmniej jednokrotne dostarczanie zdarzeń, więc zdarzenia nigdy nie zostaną utracone. Dokładnie jednokrotne przetwarzanie jest gwarantowane przy użyciu wybranych wyjść. Aby uzyskać więcej informacji, zobacz Gwarancje dostarczania zdarzeń. Usługa Stream Analytics ma wbudowane mechanizmy odzyskiwania na wypadek awaryjnego niedostarczenia zdarzenia. Ponadto usługa Stream Analytics zapewnia wbudowane punkty kontrolne, aby zachować stan zadania i uzyskać powtarzalne wyniki. Ponieważ Azure Stream Analytics to rozwiązanie typu "platforma jako usługa" (PaaS), jest w pełni zarządzane. Wbudowana integracja z różnymi źródłami i miejscami docelowymi zapewnia elastyczny model programowalności. Silnik Stream Analytics umożliwia przetwarzanie w pamięci, dzięki czemu zapewnia wysoką wydajność.
Zadania i klastry usługi Azure Stream Analytics
Najprostszym sposobem użycia Azure Stream Analytics jest utworzenie zadania usługi Stream Analytics w subskrypcji Azure, skonfigurowanie danych wejściowych i wyjściowych oraz zdefiniowanie zapytania używanego przez zadanie do przetwarzania danych. Zapytanie jest wyrażane przy użyciu składni języka zapytań strukturalnych (SQL) i może uwzględniać statyczne dane referencyjne z wielu źródeł danych w celu dostarczania wartości odnośników, które można połączyć z danymi przesyłanymi strumieniowo pozyskanymi z danych wejściowych.
Jeśli wymagania dotyczące przetwarzania strumieniowego są złożone lub intensywnie obciążające zasoby, możesz utworzyć klaster usługi Stream Analytics, który używa tego samego podstawowego aparatu przetwarzania co zadanie usługi Stream Analytics, ale w środowisku z pojedynczą dzierżawą (dzięki czemu inni klienci nie wpływają na Twoje przetwarzanie) i z możliwością skonfigurowania skalowalności, która umożliwia zdefiniowanie odpowiedniej równowagi między przepływnością a kosztami dla konkretnego scenariusza. Aby uzyskać więcej informacji, zobacz Omówienie klastra Azure Stream Analytics.
Dane wejściowe
Usługa Azure Stream Analytics może pozyskiwać dane z następujących rodzajów danych wejściowych:
- Azure Event Hubs
- Azure IoT Hub
- Azure Blob magazynowanie
- Azure Data Lake Storage Gen2
- Apache Kafka
Dane wejściowe są zwykle używane do odwołowania się do źródła danych przesyłanych strumieniowo, które są przetwarzane w miarę dodawania nowych rekordów zdarzeń. Ponadto można zdefiniować referencyjne dane wejściowe używane do wprowadzania danych statycznych, aby wzbogacić dane strumienia zdarzeń w czasie rzeczywistym. Można na przykład pozyskać strumień danych obserwacji pogody w czasie rzeczywistym, który zawiera unikatowy identyfikator dla każdej stacji pogodowej, i rozszerzyć te dane przy użyciu statycznych danych wejściowych referencyjnych, które pasują do identyfikatora stacji pogody, aby uzyskać bardziej znaczącą nazwę.
Wyniki
Dane wyjściowe to miejsca docelowe, do których są wysyłane wyniki przetwarzania strumienia. Usługa Azure Stream Analytics obsługuje szeroką gamę ujść danych wyjściowych, których można użyć do:
- Zapisz wyniki w celu dalszej analizy; na przykład, zapisując w Azure Data Lake Storage Gen2, Azure SQL Database lub Azure Cosmos DB.
- Analizowanie danych dzienników i danych telemetrycznych na dużą skalę; na przykład przez wysłanie wyników do usługi Azure Data Explorer.
- Wyświetlanie wizualizacji strumienia danych w czasie rzeczywistym; na przykład przez dołączenie danych do zestawu danych w usłudze Microsoft Power BI.
- Generuj przefiltrowane lub podsumowane zdarzenia na potrzeby przetwarzania podrzędnego; na przykład, pisząc wyniki w usłudze Azure Event Hubs.
Kwerendy
Logika przetwarzania strumieniowego jest hermetyzowana w zapytaniu. Zapytania są definiowane przy użyciu instrukcji SQL, które wybierają pola danych Z jednego lub więcej źródeł danych, filtrują lub agregują dane i zapisują wyniki do danych wyjściowych. Na przykład, następujące zapytanie filtruje zdarzenia z wejścia weather-events, aby uwzględnić tylko dane z zdarzeń o wartości temperatury mniejszej niż 0, i zapisuje wyniki do wyjścia cold-temps.
SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0
Pole o nazwie EventProcessedUtcTime jest tworzone automatycznie w celu zdefiniowania czasu przetwarzania zdarzenia przez zapytanie usługi Azure Stream Analytics. Domyślnie usługa Stream Analytics używa czasu nadejścia zdarzenia jako znacznika czasu lub można jawnie określić inne pole DateTime przy użyciu klauzuli TIMESTAMP BY, jak pokazano w tym przykładzie. W zależności od danych wejściowych, z których dane przesyłane strumieniowo są odczytywane, co najmniej jedno potencjalne pole znacznika czasu może być tworzone automatycznie; na przykład w przypadku korzystania z danych wejściowych usługi Event Hubs jest generowane pole o nazwie EventEnqueuedUtcTime w celu zarejestrowania czasu odebrania zdarzenia w centrum zdarzeń.
Pole używane jako znacznik czasu jest ważne podczas agregowania danych w oknach czasowych, które zostały omówione w dalszej części.
Edytor bez kodu
Jeśli wolisz utworzyć zadanie przetwarzania strumieniowego bez pisania kodu SQL, usługa Azure Stream Analytics zawiera edytor bez kodu. Dostęp do niego można uzyskać za pomocą portalu Azure Stream Analytics (wersja zapoznawcza) lub portalu Azure Event Hubs. Edytor bez kodu udostępnia obszar roboczy typu przeciągnij i upuść, w którym można łączyć źródła wejściowe, dodawać przekształcenia (w tym agregacje okien czasowych, takie jak okna stałe, okna przesuwne i okna sesji) oraz konfigurować dane wyjściowe bez konieczności pisania kodu. Aby uzyskać więcej informacji, zobacz Przetwarzanie strumieniowe bez kodu w Azure Stream Analytics.