Sdílet prostřednictvím


CREATE TABLE (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 bude informovat úlohu o vstupním schématu a zabránit odvozování typu.

Poznámka

Pokud chcete porovnat různé možnosti, které jsou k dispozici pro převod typů, přečtěte si téma 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. Pokud taková deklarace neexistuje, kompilátor odvodí datový typ sloupců.

V případě chyb převodu příkaz CREATE TABLE vyřadí řádky z datového proudu. Chybové řádky 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 příkaz 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 typech, které očekáváte, takže odchylky lze z datového proudu odebrat. Pokud je potřeba provést převod, měli byste ho provést v pozdějším kroku dotazu pomocí cast nebo TRY_CAST.

Syntaxe

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

Argumenty

  • Table_name

    Název vstupního datového proudu, ze kterého data pocházejí. Tento název se musí shodovat se vstupním aliasem vytvořeným v části Přidat vstup na portálu Azure Stream Analytics.

  • Column_name

    Název sloupce v datové části příchozí události. Pokud datová část neobsahuje žá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.

  • Data_type

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

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)