Dokumentacja języka zapytań usługi Stream Analytics

Usługa Azure Stream Analytics oferuje język zapytań SQL do wykonywania przekształceń i obliczeń na strumieniach zdarzeń.

Język zapytań usługi Stream Analytics, podzbiór składni języka T-SQL

W tym dokumencie opisano składnię, użycie i najlepsze rozwiązania dotyczące języka zapytań usługi Stream Analytics. Wszystkie przykłady używane w tym dokumencie opierają się na scenariuszu płatnego stoiska, jak opisano poniżej.

Język zapytań usługi Stream Analytics to podzbiór standardowej składni języka T-SQL do wykonywania obliczeń przesyłanych strumieniowo.

Scenariusz płatnego stoiska

Stacja opłat jest powszechnym zjawiskiem - spotykamy je w wielu drogach ekspresowych, mostach i tunelach na całym świecie. Każda stacja opłat ma wiele punktów płatnych, które mogą być ręczne — co oznacza, że przestajesz płacić opłaty za uczestnictwo lub zautomatyzowano – gdzie czujnik umieszczony na górze kabiny skanuje kartę RFID przyklejoną do przedniej szyby pojazdu podczas przejazdu płatnego stoiska. Można łatwo wizualizować przejazd pojazdów przez te stacje płatne jako strumień zdarzeń, w którym można wykonywać interesujące operacje.

Czas przybycia a czas aplikacji

W dowolnym systemie czasowym, np. usłudze Azure Stream Analytics, ważne jest, aby zrozumieć postęp czasu. Każde zdarzenie, które przepływa przez system, zawiera znacznik czasu, do którego można uzyskać dostęp za pośrednictwem elementu System.Timestamp(). Innymi słowy każde zdarzenie w naszym systemie przedstawia punkt w czasie. Ten znacznik czasu może być czasem aplikacji, który użytkownik może określić w zapytaniu lub system może przypisać na podstawie czasu przybycia. Czas przybycia ma różne znaczenie na podstawie źródeł wejściowych. W przypadku zdarzeń z usługi Azure Event Hub czas przybycia to sygnatura czasowa podana przez centrum zdarzeń; w przypadku usługi Blob Storage jest to czas ostatniej modyfikacji obiektu blob. Sygnatura czasowa to punkt w czasie, który jest odpowiedni do przechwytywania lub analizowania danych. Jeśli użytkownik chce użyć czasu aplikacji, może to zrobić przy użyciu słowa kluczowego TIMESTAMP BY . W powyższym scenariuszu jest to wejście pojazdu do punktu płatnego. Ważne jest zidentyfikowanie "znacznika czasu" w przychodzącym strumieniu danych. Należy upewnić się, że przechwycony czas potwierdza również wystąpienie zdarzenia. Jeśli na przykład monitoruje liczniki gotówkowe i chce policzyć liczbę rozliczanych klientów, najlepiej, aby znacznik czasu zdarzenia był "pomyślny", a nie "wygenerowany rachunek".

TIMESTAMP BY

W usłudze Azure Stream Analytics wszystkie zdarzenia mają dobrze zdefiniowany znacznik czasu. Jeśli użytkownik chce używać czasu aplikacji, może użyć słowa kluczowego TIMESTAMP BY, aby określić kolumnę w ładunku, która powinna być używana do znacznika czasu każdego zdarzenia przychodzącego do wykonywania dowolnych obliczeń czasowych, takich jak Windowing, Joins itp. Zalecamy używanie funkcji TIMESTAMP BY w czasie przyjazdu jako najlepsze rozwiązanie. Funkcja TIMESTAMP BY może być używana w dowolnej kolumnie typu data/godzina, a obsługiwane są wszystkie formaty ISO 8601. System.Timestamp() można używać tylko w obszarze Wybierz.

Poniżej znajduje się przykład TIMESTAMP BY, który używa kolumny EntryTime jako czasu aplikacji dla zdarzeń:

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

Ważność wielkości liter nazw pól

Nazwy pól dla zadania utworzonego przy użyciu poziomu zgodności 1.0 są zmieniane na małe litery (bez uwzględniania wielkości liter) podczas przetwarzania przez aparat usługi Azure Stream Analytics. W przypadku formatów wejściowych obsługujących schemat uwzględniający wielkość liter, na przykład w formacie JSON, można konstruować zdarzenia, które mają zduplikowane pola, gdy nazwy pól są porównywane w sposób bez uwzględniania wielkości liter. Takie zdarzenia są uznawane za nieprawidłowe zdarzenia i są porzucane podczas przetwarzania.

Ważność wielkości liter jest zachowywana dla nazw pól podczas tworzenia zadania usługi Stream Analytics przy użyciu poziomu zgodności 1.1 lub nowszego. Aby uzyskać więcej informacji, zapoznaj się z tematem konfigurowanie poziomu zgodności .

W tej sekcji

Zapoznaj się z następującymi tematami, aby uzyskać wskazówki dotyczące korzystania z języka zapytań usługi Stream Analytics.

Zobacz też