CREATE TABLE (Stream Analytics)

Инструкция CREATE TABLE используется для определения схемы полезных данных событий, поступающих в Azure Stream Analytics. Это позволяет пользователю явно определить типы данных каждого именованного столбца для полезных данных входящих событий. Это сообщит задание входной схемы и предотвратит вывод типа.

Примечание

Чтобы сравнить различные варианты преобразования типов, см. приведение данных.

Важно понимать, что инструкция CREATE TABLE на самом деле не создает таблицу. ИНСТРУКЦИЯ CREATE TABLE определяет только тип данных каждого столбца в полезных данных входного псевдонима. Этот псевдоним входных данных создан в разделе "Добавление входных данных" на портале. В отсутствие такого объявления компилятор логически выводит тип данных столбцов.

В случае ошибок преобразования ИНСТРУКЦИЯ CREATE TABLE удаляет строки из потока. Строки с ошибкой будут перемещены в журналы диагностики со следующей классификацией:

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

Это означает, что инструкцию CREATE TABLE нельзя использовать для преобразования типов между исходным форматом (CSV, JSON.) и новыми. ИНСТРУКЦИЮ CREATE TABLE можно использовать только для явного информирования компилятора об ожидаемых типах, чтобы отклонения можно было удалить из потока. Если требуется выполнить преобразование, его следует выполнить на более позднем этапе запроса с помощью CAST или TRY_CAST.

Синтаксис

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

Аргументы

  • имя_таблицы

    Имя входного потока, из которого поступают данные. Это имя должно соответствовать псевдониму входных данных, созданному в разделе "Добавление входных данных" на портале Azure Stream Analytics.

  • column_name

    Имя столбца в полезных данных входящего события. Если в полезных данных нет имен столбцов, то имена по умолчанию столбцов column1, column2, ... создаются системой и должны использоваться здесь в инструкции CREATE TABLE.

  • Тип данных

    Типы данных, поддерживаемые Azure Stream Analytics. См. статью Типы данных (Azure Stream Analytics).

Примеры

С помощью следующей входной схемы (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
  }

Можно использовать следующую инструкцию 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)