Freigeben über


TABELLE ERSTELLEN

✅ Azure Stream Analytics ✅ Fabric Eventstream

Die CREATE TABLE-Anweisung wird verwendet, um das Schema der Nutzlast der Ereignisse zu definieren, die in Azure Stream Analytics eingehen. Dadurch kann der Benutzer explizit die Datentypen jeder benannten Spalte für die Nutzlast eingehender Ereignisse definieren. Dadurch wird der Auftrag des Eingabeschemas informiert und die Typabweichung verhindert.

Hinweis

Informationen zum Vergleichen der verschiedenen verfügbaren Optionen für die Typkonvertierung finden Sie unter Umwandlungsdaten.

Es ist wichtig zu verstehen, dass CREATE TABLE tatsächlich keine Tabelle erstellt. CREATE TABLE definiert nur den Datentyp jeder Spalte in der Nutzlast eines Eingabealias. Dieser Eingabealias ist der, der im Abschnitt "Eingabe hinzufügen" des Portals erstellt wurde. Wenn keine solche Deklaration vorliegt, leitet der Compiler den Datentyp der Spalten ab.

Bei Konvertierungsfehlern wird CREATE TABLE die Zeilen aus dem Datenstrom ablegen. Die Fehlerzeilen werden in die Diagnoseprotokolle mit der folgenden Klassifizierung verschoben:

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

Dies bedeutet, dass CREATE TABLE nicht zum Konvertieren von Typen zwischen dem ursprünglichen Format (CSV, JSON..) und neuen verwendet werden kann. CREATE TABLE kann nur verwendet werden, um den Compiler explizit über die erwarteten Typen zu informieren, sodass Abweichungen aus dem Datenstrom entfernt werden können. Wenn eine Konvertierung erfolgen muss, sollte sie in einem späteren Abfrageschritt mithilfe von CAST oder TRY_CAST erfolgen.

Syntax

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

Argumente

  • Tabellenname

    Der Name des Eingabedatenstroms, aus dem die Daten stammen. Dieser Name muss mit dem eingabealias übereinstimmen, der im Abschnitt "Eingabe hinzufügen" des Azure Stream Analytics-Portals erstellt wurde.

  • Spaltenname

    Der Name der Spalte in der Nutzlast des eingehenden Ereignisses. Wenn keine Spaltennamen in der Nutzlast vorhanden sind, dann werden die Standardnamen von Spalte1, Spalte2, ... werden vom System generiert und sollten hier in der CREATE TABLE-Anweisung verwendet werden.

  • Datentyp

    Die Datentypen, die von Azure Stream Analytics unterstützt werden. Siehe Datentypen.

Beispiele

Mit dem folgenden Eingabeschema (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
  }

Wir können die folgende CREATE TABLE-Anweisung verwenden:

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)