Dela via


SKAPA TABELL (Stream Analytics)

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.

Anteckning

Om du vill jämföra de olika alternativ som är tillgängliga för typkonvertering kan du läsa om att konvertera data

Det är viktigt att förstå att CREATE TABLE faktiskt inte skapar någon tabell. CREATE TABLE definierar bara 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.

Om konverteringsfel uppstår 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 uttryckligen informera kompilatorn om vilka typer som ska förväntas, så avvikelser kan tas bort från dataströmmen. Om en konvertering behöver göras bör den utföras i ett senare frågesteg med hjälp av CAST eller TRY_CAST.

Syntax

CREATE TABLE   
    table_name   
    ( column_name <data_type> [ ,...n ] );  
  

Argument

  • Table_name

    Namnet på den indataström 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.

  • column_name

    Namnet på kolumnen i nyttolasten för den inkommande händelsen. Om det inte finns några kolumnnamn i nyttolasten anger du standardnamnen för column1, column2, ... genereras av systemet och bör användas här i CREATE TABLE-instruktionen.

  • data_type

    De datatyper som stöds av Azure Stream Analytics. Se Datatyper (Azure Stream Analytics).

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)