Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu sayfa, ÖNIZLEME aşamasında olan Kubernetes dağıtım bildirimlerini kullanarak Azure IoT İşlemleri bileşenlerini yönetme yönergelerini içerir. Bu özellik çeşitli sınırlamalarla sağlanır ve üretim iş yükleri için kullanılmamalıdır.
Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Azure IoT İşlemlerindeki verileri dönüştürmek için veri akışı dönüştürmelerini kullanabilirsiniz. Veri akışındaki dönüştürme öğesi, çıkış alanlarının değerlerini hesaplamak için kullanılır. Veri akışı dönüştürmelerinde giriş alanlarını, kullanılabilir işlemleri, veri türlerini ve tür dönüştürmelerini kullanabilirsiniz.
Veri akışı dönüştürme öğesi, çıkış alanlarının değerlerini hesaplamak için kullanılır:
inputs: [
'*.Max' // - $1
'*.Min' // - $2
]
output: 'ColorProperties.*'
expression: '($1 + $2) / 2'
Dönüştürmeler hakkında anlaşılması gereken çeşitli yönler vardır:
- Giriş alanlarına başvuru: Dönüştürme formülündeki giriş alanlarından değerlere başvurma.
- Kullanılabilir işlemler: Dönüştürmelerde kullanılabilecek işlemler. Örneğin, toplama, çıkarma, çarpma ve bölme.
- Veri türleri: Bir formülün işleyebileceği ve işleyebileceği veri türleri. Örneğin, tamsayı, kayan nokta ve dize.
- Tür dönüştürmeleri: Veri türlerinin giriş alanı değerleri, formül değerlendirmesi ve çıkış alanları arasında nasıl dönüştürüldüğü.
Giriş alanları
Dönüşümlerde formüller, 25 gibi bir sayı veya giriş alanlarından türetilen parametreler gibi statik değerler üzerinde çalışabilir. Eşleme, formülün erişebileceği bu giriş alanlarını tanımlar. Her alana giriş listesindeki sırasına göre başvurulur:
inputs: [
'*.Max' // - $1
'*.Min' // - $2
'*.Mid.Avg' // - $3
'*.Mid.Mean' // - $4
]
output: 'ColorProperties.*'
expression: '($1, $2, $3, $4)'
Bu örnekte dönüştürme, değerlerini içeren bir diziyle [Max, Min, Mid.Avg, Mid.Mean]sonuç verir. YAML dosyasındaki (# - $1, # - $2) açıklamalar isteğe bağlıdır, ancak her alan özelliği ile dönüştürme formülündeki rolü arasındaki bağlantıyı netleştirmeye yardımcı olur.
Veri türleri
Farklı serileştirme biçimleri çeşitli veri türlerini destekler. Örneğin, JSON birkaç temel tür sunar: dize, sayı, Boole ve null. Ayrıca bu temel türlerin dizilerini içerir.
Eşleyici bir giriş özelliğini okuduğunda, bunu bir iç türe dönüştürür. Bu dönüştürme, verileri bir çıkış alanına yazılana kadar bellekte tutmak için gereklidir. İç türe dönüştürme, giriş ve çıkış serileştirme biçimlerinin aynı olup olmamasına bakılmaksızın gerçekleşir.
İç gösterim aşağıdaki veri türlerini kullanır:
| Türü | Açıklama |
|---|---|
bool |
Mantıksal true/false. |
integer |
128 bit imzalı tamsayı olarak depolanır. |
float |
64 bit kayan nokta numarası olarak depolanır. |
string |
UTF-8 dizesi. |
bytes |
İkili veriler, 8 bit işaretsiz değerler dizesidir. |
datetime |
Nanosaniye çözünürlüğü ile UTC veya yerel saat. |
time |
Nanosaniye çözünürlüğe sahip günün saati. |
duration |
Nanosaniye çözünürlüğe sahip bir süre. |
array |
Daha önce listelenen türlerden oluşan bir dizi. |
map |
Daha önce listelenen türlerin (anahtar, değer) çiftlerinden oluşan bir vektör. |
Giriş kaydı alanları
Giriş kaydı alanı okunduğunda, temel alınan türü bu iç tür değişkenlerinden birine dönüştürülür. İç gösterim, en az dönüştürmeyle veya hiç dönüştürme olmadan çoğu giriş türünü işleyecek kadar çok yönlüdür.
Bazı biçimler için vekil türler kullanılır. Örneğin, JSON'un türü datetime yoktur ve bunun yerine değerleri ISO8601 göre biçimlendirilmiş dizeler olarak depolar datetime . Eşleyici böyle bir alanı okuduğunda, iç gösterim bir dize olarak kalır.
Çıkış kaydı alanları
Eşleyici, verilerin sınırlı tür sistemine sahip bir serileştirme biçiminden geldiği senaryolara uyum sağlamak için iç türleri çıkış türlerine dönüştürerek esnek olacak şekilde tasarlanmıştır. Aşağıdaki örnekler, dönüştürmelerin nasıl işleneceğini gösterir:
-
Sayısal türler: Duyarlık kaybı anlamına gelse bile bu türler diğer gösterimlere dönüştürülebilir. Örneğin, 64 bit kayan noktalı sayı (
f64), 32 bit tamsayıya (i32) dönüştürülebilir. -
Sayı dizeleri: Gelen kayıt gibi
123bir dize içeriyorsa ve çıkış alanı 32 bitlik bir tamsayıysa, eşleyici değeri sayı olarak dönüştürür ve yazar. -
Diğer türlerdeki dizeler:
- Çıkış alanı ise
datetime, eşleyici dizeyi ISO8601 biçimlendirilmişdatetimeolarak ayrıştırmaya çalışır. - Çıkış alanı ise
binary/bytes, eşleyici dizeyi base64 ile kodlanmış bir dizeden seri durumdan çıkarmaya çalışır.
- Çıkış alanı ise
-
Boole değerleri:
- Çıkış alanı sayısal ise olarak dönüştürülür
0/1. - Çıkış alanı dizeyse olarak dönüştürülür
true/false.
- Çıkış alanı sayısal ise olarak dönüştürülür
Türlerle dönüştürme formülü kullanma
Eşlemelerde isteğe bağlı bir formül, çıkış alanına yazılmadan önce girişteki verilerin nasıl işleneceğini belirtebilir. Formül belirtilmezse, eşleyici iç türü ve dönüştürme kurallarını kullanarak giriş alanını çıkışa kopyalar.
Bir formül belirtilirse, formüllerde kullanılabilen veri türleri şunlarla sınırlıdır:
- Tam Sayılar
- Kayan noktalı sayılar
- Dizeler
- Boolean değerleri
- Önceki türlerin dizileri
- Eksik değer
Map ve byte formüllere katılamaz.
Saatle (datetime, ve time) ilgili türler, durationsaniye cinsinden zamanı temsil eden tamsayı değerlerine dönüştürülür. Formül değerlendirmesinin ardından sonuçlar iç gösterimde depolanır ve geri dönüştürülmez. Örneğin, datetime saniyeye dönüştürülen bir tamsayı kalır. Değer alanlarda kullanılacaksa datetime , açık bir dönüştürme yöntemi uygulanmalıdır. Bir örnek, değeri otomatik olarak çıkış serileştirme biçiminin türüne dönüştürülen bir ISO8601 dizesine datetime dönüştürmektir.
Düzensiz türler kullanma
Diziler ve eksik değer gibi türlerde dikkat edilmesi gereken özel noktalar vardır.
Diziler
Diziler, birden çok öğeden tek bir değeri hesaplamak için toplama işlevleri kullanılarak işlenebilir. Örneğin, giriş kaydını kullanarak:
{
"Measurements": [2.34, 12.3, 32.4]
}
Eşleme ile:
inputs: [
'Measurements' // - $1
]
output: 'Measurement'
expression: 'min($1)'
Bu yapılandırma, çıkış alanı için dizideki Measurements en küçük değeri seçer.
Diziler birden çok tek değerden de oluşturulabilir:
inputs: [
'minimum' // - - $1
'maximum' // - - $2
'average' // - - $3
'mean' // - - $4
]
output: 'stats'
expression: '($1, $2, $3, $4)'
Bu eşleme minimum, maksimum, ortalama ve ortalama değerlerini içeren bir dizi oluşturur.
Eksik değer
Eksik değer, senaryolarda kullanılan özel bir türdür, örneğin:
- Alternatif bir değer sağlayarak girişteki eksik alanları işleme.
- Bir alanı, varlığına göre koşullu olarak kaldırma.
Eksik bir değer kullanan örnek eşleme:
{
"Employment": {
"Position": "Analyst",
"BaseSalary": 75000,
"WorkingHours": "Regular"
}
}
Giriş kaydı alanını BaseSalary içerir, ancak bu isteğe bağlıdır. Alan eksikse bağlamsallaştırma veri kümesinden bir değer eklenmesi gerektiğini varsayalım:
{
"Position": "Analyst",
"BaseSalary": 70000,
"WorkingHours": "Regular"
}
Eşleme, alanın giriş kaydında mevcut olup olmadığını denetleyebilir. Alan bulunursa, çıkış bu mevcut değeri alır. Aksi takdirde, çıkış değeri bağlam veri kümesinden alır. Örneğin:
inputs: [
'BaseSalary' // - - - - - - - - - - - $1
'$context(position).BaseSalary' // - $2
]
output: 'BaseSalary'
expression: 'if($1 == (), $2, $1)'
üç conversion parametresi olan işlevini kullanır if :
- İlk parametre bir koşuldur. Örnekte, giriş alanının alanının (diğer
BaseSalaryadla) eksik değer olup olmadığını$1denetler. - İkinci parametre, ilk parametredeki koşul true ise işlevin sonucudur. Bu örnekte bağlamsallaştırma
BaseSalaryveri kümesinin alanıdır (diğer adı olarak$2adlandırılır). - Üçüncü parametre, ilk parametre false ise koşulun değeridir.
Kullanılabilir işlevler
Veri akışları, dönüştürme formüllerinde kullanılabilecek bir dizi yerleşik işlev sağlar. Bu işlevler aritmetik, karşılaştırma ve dize işleme gibi yaygın işlemleri gerçekleştirmek için kullanılabilir. Kullanılabilir işlevler şunlardır:
| İşlev | Açıklama | Örnekler |
|---|---|---|
min |
Bir diziden en düşük değeri döndürür. |
min(2, 3, 1) döndürür 1, min($1) diziden en küçük değeri verir $1 |
max |
Bir diziden en büyük değeri döndürür. |
max(2, 3, 1) döndürür 3, max($1) diziden en büyük değeri verir $1 |
if |
Bir koşula göre değerler arasında dönüş. |
if($1 > 10, 'High', 'Low')değerinden 'High'büyükse $1 döndürür10, aksi takdirde'Low' |
len |
Bir dizenin karakter uzunluğunu veya bir tanımlama grubundaki öğe sayısını döndürür. |
len("Azure") döndürür 5, len(1, 2, 3) döndürür 3, len($1) dizideki öğe sayısını verir $1 |
floor |
Bir sayıya eşit veya ondan küçük en büyük tamsayıyı döndürür. |
floor(2.9) Döndürür 2 |
round |
En yakın tamsayıyı bir sayıya döndürerek yarım durumları 0,0'dan uzağa yuvarlar. |
round(2.5) Döndürür 3 |
ceil |
Bir sayından büyük veya buna eşit en küçük tamsayıyı döndürür. |
ceil(2.1) Döndürür 3 |
scale |
Bir değeri bir aralıktan diğerine ölçeklendirin. |
scale($1, 0, 10, 0, 100) giriş değerini 0 ile 10 aralığından 0 ile 100 arasında ölçeklendirir |
Dönüştürme işlevleri
Veri akışları sıcaklık, basınç, uzunluk, ağırlık ve hacim gibi yaygın birim dönüştürmeleri için çeşitli yerleşik dönüştürme işlevleri sağlar. Burada bazı örnekler verilmiştir:
| Dönüştürme | Formül | İşlev adı |
|---|---|---|
| Santigrat'tan Fahrenheit'e | F = (C * 9/5) + 32 | cToF |
| Psi to bar | Çubuk = PSI * 0,0689476 | psiToBar |
| İnç - cm | Cm = inç * 2,54 | inToCm |
| Metreye ayak | Ölçüm = ayak * 0,3048 | ftToM |
| Pound'dan kilograma | Kg = lbs * 0,453592 | lbToKg |
| Litreye galon | Litre = galon * 3.78541 | galToL |
Ters dönüştürmeler de desteklenir:
| Dönüştürme | Formül | İşlev adı |
|---|---|---|
| Fahrenheit'ten Celsius'a | C = (F - 32) * 5/9 | fToC |
| Çubuk-PSI | PSI = çubuk / 0,0689476 | barToPsi |
| Cm to inç | İnç = cm / 2,54 | cmToIn |
| Metreden ayaka | Ayak = ölçüm / 0,3048 | mToFt |
| Kilogramdan pound'a | Lbs = kg / 0,453592 | kgToLb |
| Litreden galon'a | Galon = litre / 3.78541 | lToGal |
Ayrıca, temel matematiksel formülleri kullanarak kendi dönüştürme işlevlerinizi tanımlayabilirsiniz. Sistem toplama (), çıkarma (+-), çarpma (*) ve bölme (/ gibi işleçleri destekler. Bu işleçler, doğru işlem sırasını sağlamak için parantezler kullanılarak ayarlanabilen standart öncelik kurallarına uyar. Bu sayede birim dönüşümlerini belirli gereksinimleri karşılayacak şekilde özelleştirebilirsiniz.
Önceliğe göre kullanılabilir işleçler
| Operatör | Açıklama |
|---|---|
| ^ | Üs: $1 ^ 3 |
En yüksek önceliğe sahip olduğundan Exponentiation , parantezler bu sırayı geçersiz kılmadığı sürece önce yürütülür:
-
$1 * 2 ^ 3olarak yorumlanır$1 * 8çünkü2 ^ 3parça ilk olarak, çarpmadan önce yürütülür. -
($1 * 2) ^ 3üstelleştirmeden önce çarpmayı işler.
| Operatör | Açıklama |
|---|---|
| - | Olumsuzlama |
| ! | Mantıksal değil |
Negation ve Logical not yüksek önceliğe sahiptir, bu nedenle üslemenin söz konusu olduğu durumlar dışında her zaman yakın komşularına bağlı kalırlar:
-
-$1 * 2önce olumsuzlar$1ve sonra çarpar. -
-($1 * 2)çarpar ve ardından sonucu olumsuzlar.
| Operatör | Açıklama |
|---|---|
| * | Çarpma: $1 * 10 |
| / | Bölme: $1 / 25 (Her iki bağımsız değişken de tamsayıysa sonuç bir tamsayıdır, aksi takdirde kayan değerdir) |
| % | Modulo: $1 % 25 |
Multiplication, Divisionve Modulo, aynı önceliğe sahip, sıra parantezlerle değiştirilmediği sürece soldan sağa yürütülür.
| Operatör | Açıklama |
|---|---|
| + | Sayısal değerler için ekleme, dizeler için birleştirme |
| - | Çıkarma |
Addition ve Subtraction önceki gruptaki işlemlerle karşılaştırıldığında daha zayıf işlemler olarak kabul edilir:
-
$1 + 2 * 3$1 + 6, yüksek önceliği nedeniyle ilk olarak yürütülür çünkü2 * 3ile sonuçlanırmultiplication. -
($1 + 2) * 3önceliğini öncelerAdditionMultiplication.
| Operatör | Açıklama |
|---|---|
| < | Küçüktür |
| > | Büyüktür |
| <= | Küçüktür veya eşittir |
| >= | Büyüktür veya eşittir |
| == | Eşittir |
| != | Eşit değil |
Comparisons sayısal, Boole ve dize değerleri üzerinde çalışır. Aritmetik işleçlerden daha düşük önceliğe sahip olduklarından sonuçları etkili bir şekilde karşılaştırmak için parantez gerekmez:
-
$1 * 2 <= $2eşdeğeri,($1 * 2) <= $2olur.
| Operatör | Açıklama |
|---|---|
| || | Mantıksal VEYA |
| && | Mantıksal VE |
Mantıksal işleçler koşulları zincirleme için kullanılır:
$1 > 100 && $2 > 200