Compartilhar via


CREATE TABLE (Stream Analytics)

A instrução CREATE TABLE é usada para definir o esquema do conteúdo dos eventos que chegam ao Azure Stream Analytics. Isso permite ao usuário definir explicitamente os tipos de dados de cada coluna nomeada para a carga de eventos de entrada. Isso informará o trabalho do esquema de entrada e impedirá a inferência de tipo.

Observação

Para comparar as diferentes opções disponíveis para conversão de tipo, consulte dados de conversão

É importante entender que CREATE TABLE não cria nenhuma tabela. CREATE TABLE define apenas o tipo de dados de cada coluna no conteúdo de um alias de entrada. Esse alias de entrada é aquele que foi criado na seção "Adicionar Entrada" do portal. Na ausência de tal declaração, o compilador deduz o tipo de dados das colunas.

No caso de erros de conversão, CREATE TABLE removerá as linhas do fluxo. As linhas com erro serão movidas para os logs de diagnóstico com a seguinte classificação:

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

Isso significa que CREATE TABLE não pode ser usado para converter tipos entre o formato original (CSV, JSON..) e novos. CREATE TABLE só pode ser usado para informar explicitamente o compilador dos tipos esperados, portanto, os desvios podem ser removidos do fluxo. Se uma conversão precisar ser feita, ela deverá ser feita em uma etapa de consulta posterior usando CAST ou TRY_CAST.

Sintaxe

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

Argumentos

  • table_name

    O nome do fluxo de entrada de onde vêm os dados. Esse nome precisa corresponder ao alias de entrada criado na seção "Adicionar Entrada" do portal do Azure Stream Analytics.

  • column_name

    O nome da coluna na carga do evento de entrada. Se não houver nomes de coluna no conteúdo, os nomes padrão de column1, column2, ... são gerados pelo sistema e devem ser usados aqui na instrução CREATE TABLE.

  • data_type

    Os tipos de dados que são compatíveis com o Azure Stream Analytics. Consulte Tipos de dados (Azure Stream Analytics).

Exemplos

Com o seguinte esquema de entrada (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
  }

Podemos usar a seguinte instrução 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)