Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
✅ Azure Stream Analytics ✅ Fabric Eventstream
L’instruction CREATE TABLE permet de définir le schéma de la charge utile des événements entrant dans Azure Stream Analytics. Cela permet à l’utilisateur de définir explicitement les types de données de chaque colonne nommée pour la charge utile des événements entrants. Cela informe le travail du schéma d’entrée et empêche l’inférence de type.
Remarque
Pour comparer les différentes options disponibles pour la conversion de type, consultez cast des données
Il est important de comprendre que CREATE TABLE ne crée pas réellement de table. CREATE TABLE définit uniquement le type de données de chaque colonne dans la charge utile d’un alias d’entrée. Cet alias d’entrée est celui qui a été créé dans la section « Ajouter une entrée » du portail. En l’absence d’une telle déclaration, le compilateur déduit le type de données des colonnes.
En cas d’erreurs de conversion, CREATE TABLE supprime les lignes du flux. Les lignes d’erreur sont déplacées vers les journaux de diagnostic avec la classification suivante :
"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"
Cela signifie que CREATE TABLE ne peut pas être utilisé pour convertir des types entre le format d’origine (CSV, JSON..) et les nouveaux. CREATE TABLE ne peut être utilisé que pour informer explicitement le compilateur des types à attendre, afin que les écarts puissent être supprimés du flux. Si une conversion doit être effectuée, elle doit être effectuée dans une étape de requête ultérieure à l’aide de CAST ou de TRY_CAST.
Syntaxe
CREATE TABLE
table_name
( column_name <data_type> [ ,...n ] );
Les arguments
nom_de_table
Nom du flux d’entrée à partir duquel les données proviennent. Ce nom doit correspondre à l’alias d’entrée créé dans la section « Ajouter une entrée » du portail Azure Stream Analytics.
nom_de_colonne
Nom de la colonne dans la charge utile de l’événement entrant. S’il n’existe aucun nom de colonne dans la charge utile, les noms par défaut de column1, column2, ... sont générés par le système et doivent être utilisés ici dans l’instruction CREATE TABLE.
type_de_données
Types de données pris en charge par Azure Stream Analytics. Consultez types de données.
Exemples
Avec le schéma d’entrée suivant (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
}
Nous pouvons utiliser l’instruction CREATE TABLE suivante :
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)