CREATE TABLE (Stream Analytics)

Instrukcja CREATE TABLE służy do definiowania schematu ładunku zdarzeń przychodzących do usługi Azure Stream Analytics. Dzięki temu użytkownik może jawnie zdefiniować typy danych każdej nazwanej kolumny dla ładunku zdarzeń przychodzących. Spowoduje to informowanie o zadaniu schematu wejściowego i uniemożliwi wnioskowanie typu.

Uwaga

Aby porównać różne opcje dostępne do konwersji typów, zobacz rzutowanie danych

Ważne jest, aby zrozumieć, że tabela CREATE nie tworzy żadnej tabeli. FUNKCJA CREATE TABLE definiuje tylko typ danych każdej kolumny w ładunku aliasu wejściowego. Ten alias wejściowy to ten, który został utworzony w sekcji "Dodaj dane wejściowe" portalu. W przypadku braku takiej deklaracji kompilator wywnioskuje typ danych kolumn.

W przypadku błędów konwersji funkcja CREATE TABLE usunie wiersze ze strumienia. Wiersze w błędzie zostaną przeniesione do dzienników diagnostycznych z następującą klasyfikacją:

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

Oznacza to, że nie można użyć metody CREATE TABLE do konwertowania typów między oryginalnym formatem (CSV, JSON.). Funkcja CREATE TABLE może służyć tylko do jawnego informowania kompilatora typów, których można oczekiwać, więc odchylenia można usunąć ze strumienia. Jeśli należy dokonać konwersji, należy wykonać ją w późniejszym kroku zapytania przy użyciu funkcji CAST lub TRY_CAST.

Składnia

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

Argumenty

  • Nazwa_tabeli

    Nazwa strumienia wejściowego, z którego pochodzą dane. Ta nazwa musi być zgodna z aliasem wejściowym utworzonym w sekcji "Dodaj dane wejściowe" w portalu usługi Azure Stream Analytics.

  • Column_name

    Nazwa kolumny w ładunku zdarzenia przychodzącego. Jeśli w ładunku nie ma nazw kolumn, domyślne nazwy kolumn1, kolumny2, ... są generowane przez system i powinny być używane tutaj w instrukcji CREATE TABLE.

  • Data_type

    Typy danych obsługiwane przez usługę Azure Stream Analytics. Zobacz Typy danych (Azure Stream Analytics).

Przykłady

Przy użyciu następującego schematu wejściowego (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
  }

Możemy użyć następującej instrukcji 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)