Sdílet prostřednictvím


Připojení referenčních dat (Azure Stream Analytics)

V obvyklém scénáři používáme modul pro zpracování událostí k výpočtu streamovaných dat s velmi nízkou latencí. V mnoha případech uživatelé potřebují korelovat trvalá historická data nebo pomalu se měnící datovou sadu (neboli referenční data) s datovým proudem událostí v reálném čase, aby mohli dělat inteligentnější rozhodnutí o systému. Například připojte stream události ke statické datové sadě, která mapuje IP adresy na umístění. Toto je jediný join podporovaný ve Stream Analytics, u kterého není potřeba dočasná vazba. Referenční data je také možné použít k získání prahových hodnot specifických pro zařízení.

Příklad

Pokud je užitkové vozidlo registrováno u tollové společnosti, může projíždět mýtnou kabinou, aniž by bylo zastaveno pro kontrolu. K identifikaci všech nákladních vozidel s ukončenou registrací použijeme vyhledávací tabulku registrace komerčních vozidel.

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'

Specifika referenčních dat JOIN

  • Použití funkce JOIN referenčních dat vyžaduje, aby byl definován vstupní zdroj pro referenční data.
  • Referenční data JOIN jsou podporována pro vnitřní join (výchozí) a levý vnější JOIN s referenčními daty na pravé straně operátoru JOIN.
  • Datové typy jsou důležitým aspektem při vyhodnocování predikátu join (ON klauzule). Podobné hodnoty u různých datových typů (1.0 a "1") se nemusí shodovat. Explicitní převod klíčů na běžný typ se doporučuje.
  • Referenční data můžou být statická (načtená jenom jednou) nebo dynamická (pravidelně se aktualizují). Ani v dynamickém případě ale referenční data nevedou k časovému pokroku, takže stream na levé straně potřebuje získat nové události, aby mohl vytvářet výstupy. Další informace najdete také v tématu o průběhu času ve službě Azure Stream Analytics .

Otázky výkonu

Aby se zabránilo snížení výkonu, měly by být predikáty odkazových spojení (ON klauzule) definovány prostřednictvím jednoduchých rovnítků klíče (ON s.myKey = r.myKey). Použití složitých výrazů neboli nerovností interně způsobí křížová spojení následovaná filtry (úplná kontrola vs. vyhledávání), které můžou výrazně ovlivnit celkovou latenci.

Pokud je to možné, přesuňte tyto složité výrazy do WHERE klauzule kroku dotazu nebo spojte stejná referenční data několikrát za jednodušších podmínek.

Viz také