Delen via


MAAK TABEL AAN

✅ Azure Stream Analytics ✅ Fabric Eventstream

De INSTRUCTIE CREATE TABLE wordt gebruikt om het schema te definiëren van de nettolading van de gebeurtenissen die binnenkomen in Azure Stream Analytics. Hierdoor kan de gebruiker expliciet de gegevenstypen van elke benoemde kolom definiëren voor de nettolading van binnenkomende gebeurtenissen. Hiermee wordt de taak van het invoerschema geïnformeerd en wordt typedeductie voorkomen.

Opmerking

Zie cast-gegevens voor het vergelijken van de verschillende opties die beschikbaar zijn voor typeconversie

Het is belangrijk te weten dat CREATE TABLE geen tabel maakt. CREATE TABLE definieert alleen het gegevenstype van elke kolom in de nettolading van een invoeralias. Deze invoeralias is de alias die is gemaakt in de sectie Invoer toevoegen van de portal. Als een dergelijke declaratie ontbreekt, leidt de compiler het gegevenstype van de kolommen af.

Als er conversiefouten optreden, worden de rijen uit de stream verwijderd door CREATE TABLE. De rijen in de fout worden verplaatst naar de diagnostische logboeken met de volgende classificatie:

"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"

Dit betekent dat CREATE TABLE niet kan worden gebruikt om typen te converteren tussen de oorspronkelijke indeling (CSV, JSON..) en nieuwe. CREATE TABLE kan alleen worden gebruikt om de compiler expliciet op de hoogte te stellen van de verwachte typen, zodat afwijkingen uit de stroom kunnen worden verwijderd. Als een conversie moet worden uitgevoerd, moet deze in een latere querystap worden uitgevoerd met behulp van CAST of TRY_CAST.

Syntaxis

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

Argumenten

  • tabelnaam

    De naam van de invoerstroom waaruit de gegevens afkomstig zijn. Deze naam moet overeenkomen met de invoeralias die is gemaakt in de sectie Invoer toevoegen van de Azure Stream Analytics-portal.

  • kolomnaam

    De naam van de kolom in de nettolading van de binnenkomende gebeurtenis. Als er geen kolomnamen in de nettolading staan, dan standaardnamen van kolom1, kolom2, ... worden gegenereerd door het systeem en moeten hier worden gebruikt in de instructie CREATE TABLE.

  • gegevenstype

    De gegevenstypen die worden ondersteund door Azure Stream Analytics. Zie gegevenstypen.

Voorbeelden

Met het volgende invoerschema (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
  }

We kunnen de volgende CREATE TABLE-instructie gebruiken:

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)