Partilhar via


CREATE TABLE

✅ Azure Stream Analytics ✅ Fabric Eventstream

A instrução CREATE TABLE é usada para definir o esquema da carga útil dos eventos que entram no Azure Stream Analytics. Isso permite que o usuário defina explicitamente os tipos de dados de cada coluna nomeada para a carga útil 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 tipos, consulte dados de transmissão

É importante entender que CREATE TABLE não cria nenhuma tabela. CREATE TABLE define apenas o tipo de dados de cada coluna na carga útil 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 irá inferir o tipo de dados das colunas.

Em caso de erros de conversão, CREATE TABLE soltará as linhas do fluxo. As linhas em 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, para que os desvios possam ser removidos do fluxo. Se uma conversão precisar ser feita, ela deve ser feita em uma etapa de consulta posterior usando CAST ou TRY_CAST.

Sintaxe

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

Argumentos

  • nome_da_tabela

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

  • nome_da_coluna

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

  • tipo de dados

    Os tipos de dados suportados pelo Azure Stream Analytics. Consulte Tipos de dados.

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)