CREATE TABLE ( Stream Analytics)
La instrucción CREATE TABLE se usa para definir el esquema de la carga de los eventos que entran en Azure Stream Analytics. Esto le permite al usuario definir de manera explícita los tipos de datos de cada columna con nombre para la carga de eventos próximos. Esto informará al trabajo del esquema de entrada y evitará la inferencia de tipos.
Nota
Para comparar las distintas opciones disponibles para la conversión de tipos, consulte conversión de datos.
Es importante comprender que CREATE TABLE no crea realmente ninguna tabla. CREATE TABLE solo define el tipo de datos de cada columna en la carga de un alias de entrada. Este alias de entrada es el que se ha creado en la sección "Agregar entrada" del portal. Si no se encuentra una declaración de ese tipo, el compilador deducirá el tipo de datos de las columnas.
En caso de errores de conversión, CREATE TABLE quitará las filas de la secuencia. Las filas en error se moverán a los registros de diagnóstico con la clasificación siguiente:
"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"
Esto significa que CREATE TABLE no se puede usar para convertir tipos entre el formato original (CSV, JSON..) y otros nuevos. CREATE TABLE solo se puede usar para informar explícitamente al compilador de los tipos que se esperan, por lo que las desviaciones se pueden quitar de la secuencia. Si es necesario realizar una conversión, se debe realizar en un paso de consulta posterior mediante CAST o TRY_CAST.
Sintaxis
CREATE TABLE
table_name
( column_name <data_type> [ ,...n ] );
Argumentos
table_name
El nombre del flujo de entrada de donde provienen los datos. Este nombre debe coincidir con el alias de entrada creado en la sección "Agregar entrada" del portal de Azure Stream Analytics.
column_name
El nombre de la columna en la carga del evento entrante. Si no hay nombres de columna en la carga, entonces los nombres predeterminados de column1, column2, ... son generados por el sistema y se deben usar aquí en la instrucción CREATE TABLE.
data_type
Los tipos de datos admitidos por Azure Stream Analytics. Consulte Tipos de datos (Azure Stream Analytics) .
Ejemplos
Con el siguiente 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 la siguiente instrucción 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)