Bagikan melalui


BUAT TABEL

✅ Azure Stream Analytics ✅ Fabric Eventstream

Pernyataan CREATE TABLE digunakan untuk menentukan skema payload peristiwa yang masuk ke Azure Stream Analytics. Ini memungkinkan pengguna untuk secara eksplisit menentukan jenis data dari setiap kolom bernama untuk payload peristiwa masuk. Ini akan menginformasikan pekerjaan skema input, dan mencegah inferensi jenis.

Nota

Untuk membandingkan berbagai opsi yang tersedia untuk konversi jenis, lihat data transmisi

Penting untuk dipahami bahwa CREATE TABLE tidak benar-benar membuat tabel apa pun. CREATE TABLE hanya menentukan jenis data setiap kolom dalam payload alias input. Alias input ini adalah alias yang telah dibuat di bagian "Tambahkan Input" portal. Dengan tidak adanya deklarasi seperti itu, pengkompilasi akan menyimpulkan jenis data kolom.

Jika terjadi kesalahan konversi, CREATE TABLE akan menghilangkan baris dari aliran. Baris dalam kesalahan akan dipindahkan ke log diagnostik dengan klasifikasi berikut:

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

Ini berarti bahwa CREATE TABLE tidak dapat digunakan untuk mengonversi jenis antara format asli (CSV, JSON..) dan yang baru. CREATE TABLE hanya dapat digunakan untuk secara eksplisit menginformasikan pengkompilasi jenis yang diharapkan, sehingga penyimpangan dapat dihapus dari aliran. Jika konversi perlu dilakukan, konversi harus dilakukan di langkah kueri selanjutnya dengan menggunakan CAST atau TRY_CAST.

Sintaksis

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

Argumen

  • nama_tabel

    Nama aliran input tempat data berasal. Nama ini perlu cocok dengan alias input yang dibuat di bagian "Tambahkan Input" di portal Azure Stream Analytics.

  • nama_kolom

    Nama kolom dalam payload peristiwa masuk. Jika tidak ada nama kolom dalam payload, maka nama default kolom1, kolom2, ... dihasilkan oleh sistem dan harus digunakan di sini dalam pernyataan CREATE TABLE.

  • jenis_data

    Jenis data yang didukung oleh Azure Stream Analytics. Lihat Jenis Data.

Contoh

Dengan skema input berikut (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
  }

Kita dapat menggunakan pernyataan CREATE TABLE berikut:

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)