Dołączanie do danych referencyjnych (Azure Stream Analytics)

W typowym scenariuszu używamy aparatu przetwarzania zdarzeń do obliczania danych przesyłanych strumieniowo z bardzo małym opóźnieniem. W wielu przypadkach użytkownicy muszą skorelować utrwalone dane historyczne lub powolny zmieniający się zestaw danych (np. dane referencyjne) ze strumieniem zdarzeń w czasie rzeczywistym w celu podejmowania mądrzejszych decyzji dotyczących systemu. Na przykład dołącz mój strumień zdarzeń do statycznego zestawu danych, który mapuje adresy IP na lokalizacje. Jest to jedyna funkcja JOIN obsługiwana w usłudze Stream Analytics, gdzie ograniczenie czasowe nie jest konieczne. Dane referencyjne mogą być również używane do określania wartości progowych specyficznych dla urządzenia.

Przykład

Jeśli pojazd komercyjny jest zarejestrowany w firmie Toll Company, mogą przejść przez kabinę opłat bez zatrzymania do kontroli. Użyjemy tabeli odnośników rejestracji pojazdów komercyjnych, aby zidentyfikować wszystkie pojazdy komercyjne z wygasłą rejestracją.

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'

Specyfika dołączania danych referencyjnych

  • Użycie funkcji Dołączanie danych referencyjnych wymaga, aby zdefiniowano źródło danych wejściowych dla danych referencyjnych.
  • Dane referencyjne JOIN są obsługiwane w przypadku sprzężenia wewnętrznego (domyślnego) i lewej zewnętrznej sprzężenia z danymi referencyjnymi po prawej stronie operatora JOIN.
  • Typy danych są ważnym aspektem oceny predykatu sprzężenia (ON klauzula). Podobne wartości dla różnych typów danych (1.0 i "1") mogą nie być zgodne. Zalecane jest jawne konwertowanie kluczy na typ typowy.
  • Dane referencyjne mogą być statyczne (ładowane tylko raz) lub dynamiczne (odświeżane regularnie). Jednak nawet w przypadku dynamicznym dane referencyjne nie powodują postępu czasu, więc strumień po lewej stronie musi uzyskać nowe zdarzenia w celu wygenerowania danych wyjściowych. Aby uzyskać więcej informacji, zobacz również , jak postępuje czas w usłudze Azure Stream Analytics .

Zagadnienia dotyczące wydajności

Aby zapobiec pogorszeniu wydajności, predykaty sprzężenia referencyjnego (ON klauzula) powinny być definiowane za pomocą prostych kluczowych równości (ON s.myKey = r.myKey). Użycie złożonych wyrażeń lub nierówności spowoduje wewnętrzne sprzężenia krzyżowe, po których następują filtry (pełne skanowanie i wyszukiwanie), co może mieć wpływ na ogólne opóźnienie.

Jeśli to możliwe, przenieś te złożone wyrażenia do WHERE klauzuli kroku zapytania lub sprzężenie tych samych danych referencyjnych wiele razy z prostszymi warunkami.

Zobacz też