Referencia data JOIN (Azure Stream Analytics)
Egy szokásos forgatókönyvben egy eseményfeldolgozó motort használunk a streamelési adatok nagyon alacsony késésű kiszámításához. Sok esetben a felhasználóknak korrelálniuk kell a megőrzött előzményadatokat vagy egy lassú adathalmazt (más néven referenciaadatokat) a valós idejű eseménystreamel, hogy intelligensebb döntéseket hozhassanak a rendszerről. Csatlakozzon például az eseménystreamemhez egy statikus adatkészlethez, amely ip-címeket képez le helyekre. Ez az egyetlen támogatott JOIN a Stream Analyticsben, ahol nincs szükség időbeli kötöttségre. A referenciaadatok eszközspecifikus küszöbértékekkel is használhatók.
Példa
Ha egy haszongépjármű regisztrálva van a díjköteles vállalatnál, akkor anélkül haladhat át az útdíjszedőn, hogy ellenőrzésre megállnának. Egy haszongépjármű-regisztrációs keresési táblát használunk az összes lejárt regisztrációval rendelkező haszongépjármű azonosításához.
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'
A referenciaadatok JOIN-jának sajátosságai
- A Referenciaadat-illesztés használatához meg kell határozni egy bemeneti forrást a referenciaadatokhoz.
- A referenciaadatok ILLESZTése támogatott a belső JOIN (alapértelmezett) és bal oldali külső JOIN esetében, a hivatkozási adatok pedig a JOIN operátor jobb oldalán.
- Az adattípusok fontos szerepet jelentenek az illesztési predikátum (záradék)
ON
értékelésében. Előfordulhat, hogy a különböző adattípusok (1.0
és"1"
) hasonló értékei nem egyeznek. Javasoljuk, hogy a kulcsokat explicit módon alakítsa át közös típusra. - A referenciaadatok lehetnek statikusak (csak egyszer tölthetők be) vagy dinamikusak (rendszeresen frissítve). A referenciaadatok azonban még a dinamikus esetben sem teszik meg az idő előrehaladását, ezért a bal oldali streamnek új eseményeket kell lekérnie a kimenetek előállításához. További információért tekintse meg , hogyan halad az idő az Azure Stream Analyticsben .
A teljesítménnyel kapcsolatos megfontolások
A teljesítménycsökkenés megelőzése érdekében egyszerű kulcsegyenlegekkel () kell meghatározni a referenciaillesztési predikátumokat (ON
ON s.myKey = r.myKey
záradékot). Összetett kifejezések vagy egyenlőtlenségek használata belsőleg keresztillesztéseket, majd szűrőket (teljes vizsgálat és keresés) eredményez, amelyek külön-külön befolyásolhatják a teljes késést.
Ha lehetséges, helyezze át ezeket az összetett kifejezéseket a WHERE
lekérdezési lépés záradékába, vagy csatlakozzon ugyanazokat a referenciaadatokat többször is egyszerűbb feltételekkel.