Dela via


SKAPA TABELL

✅ 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)