Megosztás a következőn keresztül:


CREATE TABLE (Stream Analytics)

A CREATE TABLE utasítás az Azure Stream Analyticsbe érkező események hasznos adatainak sémáját határozza meg. Ez lehetővé teszi, hogy a felhasználó explicit módon definiálja az egyes elnevezett oszlopok adattípusait a bejövő események hasznos adataihoz. Ez tájékoztatja a feladatot a bemeneti sémáról, és megakadályozza a típuskövetkeztetést.

Megjegyzés

A típuskonvertáláshoz elérhető különböző lehetőségek összehasonlításához tekintse meg az adatok kiosztását

Fontos tisztában lenni azzal, hogy a CREATE TABLE valójában nem hoz létre táblát. A CREATE TABLE csak az egyes oszlopok adattípusát határozza meg egy bemeneti alias hasznos adataiban. Ez a bemeneti alias lett létrehozva a portál "Bemenet hozzáadása" szakaszában. Ilyen deklaráció hiányában a fordító az oszlopok adattípusát fogja következtetni.

Konverziós hibák esetén a CREATE TABLE elveti a sorokat a streamből. A hibasorokat a rendszer a következő besorolással helyezi át a diagnosztikai naplókba:

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

Ez azt jelenti, hogy a CREATE TABLE nem használható típusok konvertálására az eredeti formátum (CSV, JSON..) és az új formátumok között. A CREATE TABLE csak arra használható, hogy explicit módon tájékoztassa a fordítót a várható típusokról, így az eltérések eltávolíthatók a streamből. Ha átalakításra van szükség, azt egy későbbi lekérdezési lépésben kell elvégezni a CAST vagy a TRY_CAST használatával.

Szintaxis

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

Argumentumok

  • table_name

    Annak a bemeneti adatfolyamnak a neve, ahonnan az adatok származnak. Ennek a névnek meg kell egyeznie az Azure Stream Analytics portál "Bemenet hozzáadása" szakaszában létrehozott bemeneti aliasszal.

  • column_name

    A bejövő esemény hasznos adataiban lévő oszlop neve. Ha a hasznos adatban nincsenek oszlopnevek, akkor az oszlop1, oszlop2, ... alapértelmezett nevei. a rendszer hozza létre, és itt kell használni a CREATE TABLE utasításban.

  • data_type

    Az Azure Stream Analytics által támogatott adattípusok. Lásd: Adattípusok (Azure Stream Analytics).

Példák

A következő bemeneti sémával (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
  }

A következő CREATE TABLE utasítást használhatjuk:

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)