Sdílet prostřednictvím


CREATE TABLE

✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅

Příkaz CREATE TABLE slouží k definování schématu datové části událostí přicházejících do Azure Stream Analytics. To uživateli umožňuje explicitně definovat datové typy jednotlivých pojmenovaných sloupců pro datovou část příchozích událostí. To informuje úlohu vstupního schématu a zabrání odvození typu.

Poznámka:

Porovnání různých možností dostupných pro převod typů najdete v tématu Přetypování dat.

Je důležité si uvědomit, že funkce CREATE TABLE ve skutečnosti nevytvoří žádnou tabulku. CREATE TABLE definuje pouze datový typ každého sloupce v datové části vstupního aliasu. Tento vstupní alias je ten, který byl vytvořen v části Přidat vstup na portálu. V případě absence takové deklarace kompilátor odvodí datový typ sloupců.

Vpřípaděch Řádky v chybě se přesunou do diagnostických protokolů s následující klasifikací:

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

To znamená, že funkci CREATE TABLE nelze použít k převodu typů mezi původním formátem (CSV, JSON.)) a novými. CREATE TABLE lze použít pouze k explicitnímu informování kompilátoru o očekávaných typech, takže odchylky lze ze streamu odebrat. Pokud je potřeba provést převod, měli byste ho provést v pozdějším kroku dotazu pomocí funkce CAST nebo TRY_CAST.

Syntaxe

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

Argumenty

  • název_tabulky

    Název vstupního datového proudu, ze kterého data pocházejí. Tento název musí odpovídat vstupnímu aliasu vytvořenému v části Přidat vstup na portálu Azure Stream Analytics.

  • název sloupce

    Název sloupce v datové části příchozí události. Pokud v datové části nejsou žádné názvy sloupců, pak výchozí názvy sloupců1, sloupec2, ... jsou generovány systémem a měly by být použity zde v příkazu CREATE TABLE.

  • typ dat

    Datové typy podporované službou Azure Stream Analytics. Viz datové typy.

Příklady

S následujícím vstupním schématem (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
  }

Můžeme použít následující příkaz CREATE TABLE:

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)