Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
✅ Azure Stream Analytics ✅ Fabric Eventstream
CREATE TABLE-instruktionen används för att definiera schemat för nyttolasten för de händelser som kommer till Azure Stream Analytics. På så sätt kan användaren uttryckligen definiera datatyperna för varje namngiven kolumn för nyttolasten för inkommande händelser. Detta informerar jobbet för indataschemat och förhindrar typinferens.
Anmärkning
Information om hur du jämför de olika alternativ som är tillgängliga för typkonvertering finns i castingdata
Det är viktigt att förstå att CREATE TABLE faktiskt inte skapar någon tabell. CREATE TABLE definierar endast datatypen för varje kolumn i nyttolasten för ett indataalias. Det här indataaliaset är det som har skapats i avsnittet "Lägg till indata" i portalen. I avsaknad av en sådan deklaration kommer kompilatorn att härleda kolumnernas datatyp.
Vid konverteringsfel släpper CREATE TABLE raderna från strömmen. Raderna i fel flyttas till diagnostikloggarna med följande klassificering:
"Type": "DataError",
"DataErrorType": "InputDeserializerError.InvalidData",
"BriefMessage": "Could not deserialize the input event(s) from resource ... . Some possible reasons: 1) Malformed events 2) Input source configured with incorrect serialization format",
"ErrorCode": "InputDeserializationError",
"ErrorCategory": "DataError"
Det innebär att CREATE TABLE inte kan användas för att konvertera typer mellan det ursprungliga formatet (CSV, JSON..) och nya. CREATE TABLE kan endast användas för att explicit informera kompilatorn om vilka typer som ska förväntas, så avvikelser kan tas bort från strömmen. Om en konvertering behöver göras bör den göras i ett senare frågesteg med hjälp av CAST eller TRY_CAST.
Syntax
CREATE TABLE   
    table_name   
    ( column_name <data_type> [ ,...n ] );  
  
Argumentpunkter
- tabell_namn - Namnet på indataströmmen där data kommer från. Det här namnet måste matcha indataaliaset som skapades i avsnittet "Lägg till indata" i Azure Stream Analytics-portalen. 
- kolumnnamn - Namnet på kolumnen i nyttolasten för den inkommande händelsen. Om det inte finns några kolumnnamn i nyttolasten, kommer standardnamnen för column1, column2, ... genereras av systemet och bör användas här i CREATE TABLE-instruktionen. 
- datatyp - De datatyper som stöds av Azure Stream Analytics. Se Datatyper. 
Exempel
Med följande indataschema (JSON):
  {
    "TollId":1,
    "EntryTime":"2014-09-10T12:11:00.0000000Z",
    "LicensePlate":"NJB 1006",
    "State":"CT",
    "Make":"Ford",
    "Model":"Focus",
    "VehicleType":1,
    "VehicleWeight":0,
    "Toll":4.5,
    "Tag":678912345
  }
Vi kan använda följande CREATE TABLE-instruktion:
CREATE TABLE Entry (
	TollId bigint,
	EntryTime datetime,
	LicensePlate nvarchar(max),
	State nvarchar(max),
	Make nvarchar(max),
	Model nvarchar(max),
	VehicleType bigint,
	VehicleWeight float,
	Toll float,
	Tag bigint
);
SELECT
	DATEADD(hour,-1,System.Timestamp()) AS WindowStart,
	System.Timestamp AS WindowEnd,
	TollId,
	SUM(Toll) AS TollTotal -- guaranteed to be a float
INTO MyOutput
FROM Entry TIMESTAMP BY EntryTime -- guaranteed to be a timestamp
GROUP BY TollId, Tumbling(hour,1)