Veri Türleri (Azure Stream Analytics)

Azure Stream Analytics'te her kaydın ilgili bir veri türü vardır. Veri türü, o türdeki bir kaydın tutabileceği veya o türdeki bir ifadenin üretebileceği değer kümesini açıklar (ve kısıtlar).

Bunun sütun değil türü olan kayıtlar olduğunu lütfen unutmayın. Bir sütunun her kaydı farklı bir türe sahip olabilir. Bu çoğu uygulama için saydam olacaksa, şema kayma senaryolarının ve diğer olağan dışı yazma desenlerinin kolayca işlenmesine olanak tanır.

Desteklenen veri türleri

Desteklenen veri türlerinin listesi aşağıdadır.

Veri türü Açıklama
bigint -2^63 (-9.223.372.036.854.775.808) ile 2^63-1 (9.223.372.036.854.775.807) aralığındaki tamsayılar.
float Aralıktaki kayan noktalı sayılar - 1,79E+308 - -2,23E-308, 0 ve 2,23E-308 - 1,79E+308. Kayan nokta ondalık değerleri genellikle tam bir ikili gösterime sahip değildir. Duyarlık kaybı yaşanabilir. Bu, Azure Stream Analytics'e özgü değildir ancak tüm kayan noktalı sayı uygulamalarında gerçekleşir.
nvarchar(max) Unicode karakterlerinden oluşan metin değerleri. Not: Max dışında bir değer desteklenmez.
datetime 24 saatlik saati temel alan ve UTC'ye göre (saat dilimi uzaklığı 0) kesirli saniyelerle (7 basamak, 100 nanosaniye duyarlığı) günün saatiyle birleştirilen tarihi tanımlar.
bit 1, 0 veya NULL değer alabilen bir tamsayı. Bu, uyumluluk düzeyi 1.2 ve üzerinde desteklenir.
kaydet Ad/değer çiftleri kümesi. Değerler desteklenen veri türünde olmalıdır.
array Sıralı değer koleksiyonu. Değerler desteklenen veri türünde olmalıdır.

Bigint ve float veri türüne katılabilirsiniz (veya karşılaştırabilirsiniz). Temsil edilemeyen çok büyük bigint değerleri dışında her durumda düzgün çalışır.

Not

Azure Stream Analytics, aralığın dışında bigint veri türlerini okurken şunları destekler: InputDeserializationError hata iletisiyle Stream Analytics işiniz olayları seri durumdan çıkaramaz. Verileri önceden işleyebilir ve dizeye dönüştürebilirsiniz. Seçeneklerden biri, verileri önceden işlemek ve bu büyük tamsayıları dizeye dönüştürmek için Azure işlevlerini kullanmaktır.

Tür dönüştürmeleri

Veri türü dönüştürmelerini yöneten kurallar şunlardır:

  • Giriş okuma ve çıkış yazma işlemleri sırasında duyarlık kaybı olmadan dönüştürme örtülüdür ve her zaman başarılı olur
  • Çıkış yazma işlemlerinin içinde duyarlık kaybı ve taşması yapılandırılmış hata ilkesi tarafından işlenir (Bırak veya Yeniden Dene olarak ayarlanır)
  • Çıkış yazma işlemleri sırasında oluşan tür dönüştürme hataları hata ilkesi tarafından işlenir
  • Giriş okuma işlemleri sırasında oluşan tür dönüştürme hataları işin olayı bırakmasına neden oluyor

Değerlerin float değerine dönüştürülmesinde duyarlık kaybı olabilir. Azure Stream Analytics'e değil genel olarak kayan veri türüne özgüdür. Bu nedenle hata olarak kabul edilmez. Her rakamın korunması gerektiğinde, verilerin dize olarak okunması gerekir.

Veri atama

Akış SQL dilinde verilerinizin veri türünü gözlemlemek ve ayarlamak için yararlı olan dört işlev vardır.

  • CAST : Belirli bir türe tek bir sütun atama - dönüştürme hatası durumunda iş başarısız olur
  • TRY_CAST : belirli bir türe tek bir sütun yayınlar; hatalar NULL olarak geçirilir. En iyi kullanımın nasıl yapılacağını öğrenmek için giriş doğrulamaya bakın TRY_CAST
  • CREATE TABLE : Bir giriş için tek bir açık şema tanımlayın. Dönüştürme hatası olan satırlar akıştan kaldırılır
  • GetType : bir sütunun türünü döndürür

Çoğu kullanım örneğinde önerilen seçenek TRY_CAST kullanmaktır. Bu işlev çıkış türünü sağlayarak aşağı akış işlemeyi korurken, hatadaki değeri NULL ile değiştirerek veri kaybını önler. Satır bırakılmaz ve bu özgün değer başka bir sütuna yansıtılabilir.

Güçlü garantiler için önerilen seçenek CREATE TABLE kullanmaktır. Bu yaklaşım, sapma riski olmadan belirli bir girişin şemasının işini bilgilendirmeye olanak tanır. Belirli bir girişte yalnızca tek bir şema tanımlanabilir ve uyumlu olmayan satırlar bırakılır.

Mümkünse, tüm atama işlemleri diğer işlevlerde örtük (sessizce) yerine bu işlevler aracılığıyla açıkça yapılmalıdır. Bu, SQL veritabanları gibi kesin olarak belirtilmiş çıkışlar için tür uyuşmazlıklarını, beklenmeyen davranışları ve ekleme hatalarını önler. Ana sorgu mantığını bu tür hatalardan nasıl koruyacağınızı öğrenmek için giriş doğrulama konusuna bakın.

Bite dönüştürme

Değerler float ve bit arasında aşağıdaki kurallarla dönüştürülür:

Kaynak Amaç
(BIT) 1 (KAYAN) 1.0
(BIT) 0 (KAYAN) 0,0
(BIT) NULL (KAYAN) NULL
(KAYAN) 0,0 (BIT) 0
(KAYAN) başka bir değer (BIT) 1
(KAYAN) NULL (BIT) NULL

Tür eşlemeleri ve serileştirme biçimleri

Veri türü içinde CSV CSV çıkışı JSON JSON çıkışı Avro in Avro çıkışı
bigint 64 bit işaretli tamsayıya dönüştürülen dize İş kültürü kullanılarak dizeye dönüştürülen 64 bit imzalı tamsayı sayı: 64 bit işaretli tamsayıya dönüştürülen tamsayı;

Boole değeri: Uyumluluk düzeyi 1.1 ve altındaki "false" değeri 0'a, "true" ise 1'e dönüştürülür
sayı: tamsayı long ve int 64 bit işaretli tamsayıya dönüştürülür;

Boole değeri: Uyumluluk düzeyi 1.1'de ve false'un altında 0'a, true değeri 1'e dönüştürülür
long
float 64 bit işaretli kayan nokta numarasına dönüştürülen dize İş kültürü kullanılarak dizeye dönüştürülen 64 bit imzalı kayan nokta numarası sayı: kesir 64 bit işaretli kayan nokta numarasına dönüştürüldü sayı: kesir double ve float 64 bit işaretli kayan nokta numarasına dönüştürüldü double
nvarchar(max) string string string string string string
Datetime ISO 8601 standardına göre tarih saatine dönüştürülen dize ISO 8601 standard kullanan dize ISO 8601 standardına göre tarih saatine dönüştürülen dize DATETIME, ISO 8601 standardı kullanılarak dizeye dönüştürüldü ISO 8601 standardına göre tarih saatine dönüştürülen dize DATETIME, ISO 8601 standardı kullanılarak dizeye dönüştürüldü
bit (uyumluluk düzeyi 1.2 ve üzeri) "true", "false" veya "null" dizesi karşılık gelen 1, 0 veya null tamsayı değerine dönüştürülür "true" veya "false" dizesine dönüştürüldü Boole: "false" 0'a, "true" ise 1'e dönüştürülür Boole değeri: boole değeri Boole değeri: false 0'a, true değeri 1'e dönüştürülür boolean
Kayıt Yok Desteklenmez, "Kayıt" dizesi çıkarılır JSON nesnesi JSON nesnesi Avro kayıt türü Avro kayıt türü
Dizi Yok Desteklenmez, "Dizi" dizesi çıkarılır JSON nesnesi JSON nesnesi Avro kayıt türü Avro kayıt türü

Not

Parquet için veri türü dönüştürmesi gerekmez.

Yapılandırılmış veri depolarına yazarken tür eşleme

Veri türü SQL Power BI Azure Cosmos DB PostgreSQL Azure Veri Gezgini
bigint bigint, int, smallint, tinyint, tüm dize türleri (ntext, nvarchar, char, ...) evet sayısal: tamsayı bigint dinamik, int, uzun
float float, gerçek, ondalık, sayısal, tüm dize türleri (ntext, nvarchar, char, ...) evet sayı: kesir çift duyarlık, sayısal. 1,78E+308 ile sınırlıdır dinamik, gerçek, çift
nvarchar(max) Tüm dize türleri (ntext, nvarchar, char, uniqueidentifier...) evet string karakter değişen, metin dinamik, dize
Datetime datetime, datetime2, datetimeoffset, tüm dize türleri (ntext, nvarchar, char, ...) evet DATETIME, ISO 8601 standardı kullanılarak dizeye dönüştürüldü zaman damgası, zaman. Saat dilimi seçeneği destekleniyor ancak saat dilimi sağlanamaz dynamic, string, datetime
bit (uyumluluk düzeyi 1.2 ve üzeri) bigint, int, smallint, tinyint, bit, tüm dize türleri (ntext, nvarchar, char, ...) evet boolean: 1 true, 0 false olarak dönüştürülür bit dinamik, bool
Kayıt Desteklenmez, "Kayıt" dizesi çıkarılır Desteklenmez, "Kayıt" dizesi çıkarılır JSON nesnesi Desteklenmez dynamic, bool, long, datetime, bayt dizisi, gerçek, çift, dize
Dizi Desteklenmez, "Dizi" dizesi çıkarılır Desteklenmez, "Dizi" dizesi çıkarılır JSON nesnesi Desteklenmez dinamik, dize