Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Setiap rekaman memiliki jenis data terkait. Jenis data menjelaskan (dan membatasi) kumpulan nilai yang dapat ditahan oleh rekaman jenis tersebut atau ekspresi jenis tersebut.
Harap dicatat bahwa ini adalah rekaman yang memiliki jenis dan bukan kolom. Setiap rekaman kolom dapat memiliki jenis yang berbeda. Jika ini akan transparan untuk sebagian besar aplikasi, ini memungkinkan penanganan langsung skenario penyimpangan skema dan pola pengetikan lain yang tidak biasa.
Jenis data yang didukung
Di bawah ini adalah daftar jenis data yang didukung.
| Jenis data | Deskripsi |
|---|---|
| bigint | Bilangan bulat dalam rentang -2^63 (-9.223.372.036.854.775.808) hingga 2^63-1 (9.223.372.036.854.775.807). |
| float | Angka titik mengambang dalam rentang - 1,79E+308 hingga -2,23E-308, 0, dan 2,23E-308 hingga 1,79E+308. Nilai desimal titik mengambang umumnya tidak memiliki representasi biner yang tepat. Kehilangan presisi dapat dialami. Ini tidak khusus untuk Azure Stream Analytics tetapi terjadi di semua implementasi angka floating-point. |
| nvarchar(maks) | Nilai teks, terdiri dari karakter Unicode. Catatan: Nilai selain maks tidak didukung. |
| tanggalwaktu | Menentukan tanggal yang dikombinasikan dengan waktu hari dengan detik pecahan (7 digit, presisi 100 nanodetik) yang didasarkan pada jam 24 jam dan relatif terhadap UTC (offset zona waktu 0). |
| sedikit | Bilangan bulat yang dapat mengambil nilai 1, 0, atau NULL. Ini didukung dalam tingkat kompatibilitas 1.2 ke atas. |
| rekaman | Kumpulan pasangan nama/nilai. Nilai harus dari jenis data yang didukung. |
| array | Pengumpulan nilai yang diurutkan. Nilai harus dari jenis data yang didukung. |
Anda dapat bergabung pada (atau membandingkan) jenis data bigint dan float. Ini akan bekerja dengan benar dalam semua kasus kecuali untuk kasus nilai bigint yang sangat besar yang tidak dapat diwakili.
Nota
Saat membaca jenis data bigint di luar rentang, Azure Stream Analytics mendukung, pekerjaan Azure Stream Analytics Anda akan gagal mendeserialisasi peristiwa dengan pesan kesalahan: InputDeserializationError. Anda dapat melakukan pra-proses data dan mengonversinya menjadi string. Salah satu opsinya adalah menggunakan fungsi Azure untuk memproses data sebelumnya dan mengonversi bilangan bulat besar tersebut menjadi string.
Konversi tipe atau jenis
Berikut adalah aturan yang mengatur konversi jenis data:
- Konversi tanpa kehilangan presisi selama operasi baca dan tulis output input bersifat implisit dan selalu berhasil
- Kehilangan presisi dan luapan di dalam operasi tulis output ditangani oleh kebijakan kesalahan yang dikonfigurasi (diatur ke Hilangkan atau Coba Lagi)
- Kesalahan konversi jenis yang terjadi selama operasi tulis output ditangani oleh kebijakan kesalahan
- Kesalahan konversi jenis yang terjadi selama operasi baca input menyebabkan pekerjaan menghilangkan peristiwa
Hilangnya presisi dapat terjadi dalam mengonversi nilai menjadi float. Ini tidak khusus untuk Azure Stream Analytics tetapi untuk jenis data float secara umum. Dengan demikian tidak dianggap sebagai kesalahan. Dalam kasus di mana setiap digit perlu dilayani, data harus dibaca sebagai string.
Data casting
Ada empat fungsi dalam bahasa SQL streaming yang berguna untuk mengamati dan menyesuaikan jenis data data Anda.
- CAST : melemparkan satu kolom ke jenis tertentu - akan gagal pekerjaan jika terjadi kesalahan konversi
-
TRY_CAST : transmisikan satu kolom ke jenis tertentu - kesalahan dibiarkan sebagai NULL. Lihat validasi input untuk cara terbaik menggunakan
TRY_CAST - CREATE TABLE : tentukan skema eksplisit tunggal ke input. Baris dengan kesalahan konversi dihapus dari aliran
- GetType : mengembalikan jenis kolom
Untuk sebagian besar kasus penggunaan, opsi yang direkomendasikan adalah menggunakan TRY_CAST. Fungsi ini melindungi pemrosesan hilir dengan memastikan jenis output, sekaligus mencegah hilangnya data dengan mengganti nilai dalam kesalahan oleh NULL. Baris tidak dihilangkan, dan nilai asli tersebut masih dapat diproyeksikan di kolom lain.
Untuk jaminan yang kuat, opsi yang direkomendasikan adalah menggunakan CREATE TABLE. Pendekatan ini memungkinkan untuk menginformasikan pekerjaan skema input tertentu, tanpa risiko penyimpangan. Trade-off adalah bahwa hanya satu skema yang dapat didefinisikan pada input tertentu, dan baris yang tidak sesuai akan dihilangkan.
Jika memungkinkan, semua operasi pengecoran harus dilakukan secara eksplisit melalui fungsi-fungsi ini, daripada secara implisit (diam-diam) dalam fungsi lain. Ini menghindari ketidakcocokan jenis, perilaku tak terduga, dan kesalahan penyisipan untuk output yang sangat diketik seperti database SQL. Lihat validasi input untuk cara melindungi logika kueri utama dari kesalahan tersebut.
Konversi ke bit
Nilai akan dikonversi antara float dan bit dengan aturan berikut:
| Dari | Untuk |
|---|---|
| (BIT) 1 | (FLOAT) 1.0 |
| (BIT) 0 | (FLOAT) 0,0 |
| (BIT) NOL | (FLOAT) NOL |
| (FLOAT) 0,0 | (BIT) 0 |
| (FLOAT) nilai lainnya | (BIT) 1 |
| (FLOAT) NOL | (BIT) NOL |
Jenis pemetaan dan format serialisasi
| Jenis data | CSV di | CSV keluar | JSON di | JSON keluar | Avro di | Avro keluar |
|---|---|---|---|---|---|---|
| bigint | string dikonversi menjadi bilangan bulat bertanda tangan 64 bit | Bilangan bulat bertanda tangan 64 bit dikonversi ke string menggunakan budaya pekerjaan | angka: bilangan bulat dikonversi ke bilangan bulat bertanda tangan 64 bit; Boolean: dalam tingkat kompatibilitas 1.1 dan di bawah "false" dikonversi ke 0, "true" dikonversi ke 1 |
angka: bilangan bulat | bilangan bulat panjang dan int dikonversi menjadi bilangan bulat bertanda tangan 64 bit; Boolean: dalam tingkat kompatibilitas 1.1 dan di bawah false dikonversi ke 0, true dikonversi ke 1 |
panjang |
| mengapung | string dikonversi menjadi angka titik float bertanda tangan 64 bit | Angka titik float bertanda tangan 64 bit dikonversi ke string menggunakan budaya pekerjaan | angka: pecahan dikonversi ke angka titik float bertanda tangan 64 bit | angka: pecahan | double dan float dikonversi ke angka float point bertanda tangan 64 bit | dua kali lipat |
| nvarchar(maks) | string | string | string | string | string | string |
| tanggalwaktu | string dikonversi ke datetime mengikuti standar ISO 8601 | string menggunakan standar ISO 8601 | string dikonversi ke datetime mengikuti standar ISO 8601 | datetime dikonversi ke string menggunakan standar ISO 8601 | string dikonversi ke datetime mengikuti standar ISO 8601 | datetime dikonversi ke string menggunakan standar ISO 8601 |
| bit (tingkat kompatibilitas 1.2 ke atas) | string "true", "false", atau "null" dikonversi ke nilai bilangan bulat 1, 0, atau null yang sesuai | dikonversi ke string "true" atau "false" | Boolean: "false" dikonversi ke 0, "true" dikonversi ke 1 | Boolean: nilai boolean | Boolean: false dikonversi ke 0, true dikonversi ke 1 | Boolean |
| rekaman | Tidak tersedia | Tidak didukung, string "Rekam" dihasilkan | Objek JSON | Objek JSON | Jenis catatan Avro | Jenis catatan Avro |
| Array | Tidak tersedia | Tidak didukung, string "Array" dihasilkan | Objek JSON | Objek JSON | Jenis catatan Avro | Jenis catatan Avro |
Nota
Tidak diperlukan konversi jenis data untuk Parquet.
Ketik pemetaan saat menulis ke penyimpanan data terstruktur
| Jenis data | SQL | Power BI | Azure Cosmos DB | PostgreSQL | Azure Data Explorer |
|---|---|---|---|---|---|
| bigint | bigint, int, smallint, tinyint, semua jenis string (ntext, nvarchar, char, ...) | Ya | numerik: bilangan bulat | bigint Jika jenis kolom adalah smallint atau bilangan bulat, kesalahan "format data biner yang salah" akan terjadi. |
dinamis, int, panjang |
| mengapung | float, nyata, desimal, numerik, semua jenis string (ntext, nvarchar, char, ...) | Ya | angka: pecahan | presisi ganda, numerik. Dibatasi hingga 1,78E+308 Jika jenis kolom nyata, kesalahan "format data biner yang salah" akan terjadi. |
dinamis, nyata, ganda |
| nvarchar(maks) | Semua jenis string (ntext, nvarchar, char, uniqueidentifier...) | Ya | string | karakter bervariasi, teks | dinamis, string |
| tanggalwaktu | datetime, datetime2, datetimeoffset, semua jenis string ( ntext, nvarchar, char, ...) | Ya | datetime dikonversi ke string menggunakan standar ISO 8601 | timestamptz untuk tanda waktu UTC, tanda waktu jika tidak | dinamis, string, tanggalwaktu |
| bit (tingkat kompatibilitas 1.2 ke atas) | bigint, int, smallint, tinyint, bit, semua jenis string (ntext, nvarchar, char, ...) | Ya | boolean: 1 dikonversi ke true, 0 dikonversi ke false | sedikit | dinamis, bool |
| rekaman | Tidak didukung, string "Rekam" dihasilkan | Tidak didukung, string "Rekam" dihasilkan | Objek JSON | Tidak didukung | dinamis, bool, panjang, tanggalwaktu, byte array, nyata, ganda, string |
| Array | Tidak didukung, string "Array" dihasilkan | Tidak didukung, string "Array" dihasilkan | Objek JSON | Tidak didukung | dinamis, string |