Dela via


Referens för Azure Stream Analytics och Eventstream Query Language

Azure Stream Analytics erbjuder ett SQL-frågespråk för att utföra transformeringar och beräkningar över händelseströmmar.

En delmängd av T-SQL-syntaxen

I det här dokumentet beskrivs syntax, användning och metodtips för Stream Analytics-frågespråket. Alla exempel som används i det här dokumentet förlitar sig på ett scenario med avgiftsbelagda bås enligt beskrivningen nedan.

Stream Analytics-frågespråk är en delmängd av standard-T-SQL-syntaxen för att utföra strömningsberäkningar.

Scenariot med avgiftsbelagda bås

En vägtullstation är ett vanligt fenomen – vi stöter på dem i många expresswayer, broar och tunnlar över hela världen. Varje avgiftsstation har flera avgiftsbelagda bås, vilket kan vara manuellt – vilket innebär att du slutar betala vägtullen till en dirigering eller automatiserad – där en sensor som placeras ovanpå montern skannar ett RFID-kort fäst på vindrutan på ditt fordon när du passerar vägtullsbåset. Det är enkelt att visualisera passagen av fordon genom dessa avgiftsbelagda stationer som en händelseström över vilken intressanta åtgärder kan utföras.

Ankomsttid jämfört med programtid

I alla tidsmässiga system som Azure Stream Analytics är det viktigt att förstå tidens förlopp. Varje händelse som flödar genom systemet levereras med en tidsstämpel som kan nås via System.Timestamp(). Med andra ord visar varje händelse i vårt system en tidpunkt. Den här tidsstämpeln kan antingen vara en programtid som användaren kan ange i frågan eller så kan systemet tilldela baserat på ankomsttid. Ankomsttiden har olika betydelser baserat på indatakällorna. För händelserna från Azure Event Hub är ankomsttiden tidsstämpeln som anges av händelsehubben. för Blob Storage är det blobens senaste ändringstid. Tidsstämpeln är den tidpunkt som är relevant för att samla in eller analysera data. Om användaren vill använda en programtid kan de göra det med nyckelordet TIMESTAMP BY . I scenariot ovan är det fordonets inträde i vägtullsbåset. Det är viktigt att identifiera "tidsstämpeln" i den inkommande dataströmmen. Man bör se till att den tid som samlas in även bekräftar förekomsten av en händelse. Om man till exempel övervakar kassaräknare och vill räkna antalet fakturerade kunder bör händelsetidsstämpeln helst vara "betalning lyckades" i stället för "fakturagenererad" tid.

TIDSSTÄMPEL AV

I Azure Stream Analytics har alla händelser en väldefinierad tidsstämpel. Om användaren vill använda programtid kan de använda nyckelordet TIMESTAMP BY för att ange kolumnen i nyttolasten som ska användas för att tidsstämpla varje inkommande händelse för att utföra tidsberäkningar som Fönster, Kopplingar osv. Vi rekommenderar att du använder TIMESTAMP BY över ankomsttiden som bästa praxis. TIMESTAMP BY kan användas i valfri kolumn av typen datetime och alla ISO 8601-format stöds. System.Timestamp() kan bara användas i Välj.

Följande är ett TIMESTAMP BY-exempel som använder kolumnen EntryTime som programtid för händelser:

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

Skiftlägeskänslighet för fält

Fältnamn för ett jobb som skapas med hjälp av kompatibilitetsnivå 1.0 ändras till gemener (skiftlägesokänsliga) när de bearbetas av Azure Stream Analytics-motorn. För indataformat som stöder skiftlägeskänsligt schema, till exempel JSON, kan du skapa händelser som har duplicerade fält när fältnamn jämförs på ett skiftlägeskänsligt sätt. Sådana händelser anses vara ogiltiga händelser och tas bort under bearbetningen.

Skiftlägeskänslighet sparas för fältnamn när Stream Analytics-jobbet skapas med hjälp av kompatibilitetsnivå 1.1 eller senare. Mer information finns i avsnittet konfigurera kompatibilitetsnivå .

I det här avsnittet

Mer information om hur du använder Stream Analytics-frågespråket finns i följande avsnitt.

Se även