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.
Azure IoT İşlemleri data akış grafikleri eşleme, filtreleme ve toplama gibi yaygın işleme görevleri için yerleşik dönüşümler içerir. Yerleşik dönüşümlerin sağladığının ötesinde özel mantığa ihtiyacınız olduğunda, WebAssembly (WASM) modüllerini veri akışı grafı işlem hatlarınızda özel dönüşümler olarak dağıtabilirsiniz.
Tip
Çoğu veri işleme senaryosu için yerleşik dönüşümlerle başlayın. Özel iş mantığına, özelleştirilmiş algoritmalara veya yerleşik seçeneklerin kapsamadığını işlemeye ihtiyacınız olduğunda WASM dönüşümlerini kullanın.
Tip
Yapay zekayı bant içinde çalıştırmak mı istiyorsunuz? WASM işleçlerinizde küçük ONNX modellerini paketlemek ve yürütmek için bkz. WebAssembly veri akışı grafiklerinde ONNX çıkarımını çalıştırma .
Önemli
Veri akışı grafikleri şu anda yalnızca MQTT, Kafka ve OpenTelemetry uç noktalarını desteklemektedir. Veri Gölü, Microsoft Fabric OneLake, Azure Veri Gezgini ve Yerel Depolama gibi diğer uç nokta türleri desteklenmez. Daha fazla bilgi için bkz. Bilinen sorunlar.
Önkoşullar
- Kubernetes kümesinde dağıtılan Azure IoT İşlemleri örneği. Daha fazla bilgi için bkz. Deploy Azure IoT İşlemleri.
- WASM modüllerine ve graf tanımlarına erişmek için bir kayıt defteri uç noktası yapılandırın. İki seçeneğiniz vardır:
-
Genel kayıt defteriyle hızlı başlangıç: Anonim kimlik doğrulaması ile için
ghcr.iobir kayıt defteri uç noktası oluşturun. Yönergeler için bkz. Genel kayıt defterinden önceden oluşturulmuş modülleri kullanma. - Özel kayıt defteri: WebAssembly (WASM) modüllerini ve graf tanımlarını dağıtma konusunda yönergeleri izleyerek kendi kapsayıcı kayıt defterinizi ayarlayın ve örnek modülleri gönderin.
-
Genel kayıt defteriyle hızlı başlangıç: Anonim kimlik doğrulaması ile için
Uyarı
Veri akışları ve veri akışı grafikleri: Veri akışı , yerleşik dönüştürmeleri kullanarak verileri uç noktalar arasında taşıyan ve dönüştüren bir işlem hattıdır. Veri akışı grafiği, veri akışlarını birleştirilebilir işleme adımlarıyla genişletir. Azure IoT İşlemleri eşleme, filtreleme, dallanma ve toplama gibi yaygın işlemler için built-in veri akışı grafikleri sağlar. Özel işleme mantığı için, bu makalede açıklandığı gibi WebAssembly modüllerini uygulayabilirsiniz. Veri akışı grafikleri, işleçlerin nasıl bağlanacağını belirten YAML graf tanımlarını kullanır. Veri akışı grafı kaynağı bu tanımı sarmalar ve soyut kaynak ve havuz işlemlerini MQTT konuları ve Kafka konuları gibi somut uç noktalara eşler.
Genel Bakış
Azure IoT İşlemleri veri akışı grafiklerinde WebAssembly (WASM) modüllerini kullanarak verileri uçta yüksek performans ve güvenlikle işleyebilirsiniz. WASM korumalı bir ortamda çalışır ve Rust ile Python destekler.
WASM veri akışı grafikleri nasıl çalışır?
WASM veri akışı uygulaması şu iş akışını izler:
- WASM modülleri geliştirme: Desteklenen bir dilde özel işleme mantığı yazın ve WebAssembly Bileşen Modeli biçiminde derleyin. Daha fazla bilgi edinmek için bkz. Veri akışları için WASM modülleri oluşturma
- Graf tanımı geliştirme: YAML yapılandırma dosyalarını kullanarak verilerin modüller arasında nasıl hareket ettigini tanımlayın. Daha fazla bilgi için bkz. WebAssembly graf tanımlarını yapılandırma.
- Yapıtları kayıt defterinde depolama: ORAS gibi OCI uyumlu araçları kullanarak derlenmiş WASM modüllerini ve graf tanımlarını kapsayıcı kayıt defterine gönderin. Daha fazla bilgi edinmek için bkz. WebAssembly (WASM) modüllerini ve graf tanımlarını dağıtma.
- Kayıt defteri uç noktalarını yapılandırın: Azure IoT İşlemleri kapsayıcı kayıt defterine erişebilmesi için kimlik doğrulamasını ve bağlantı ayrıntılarını ayarlayın. Daha fazla bilgi edinmek için bkz. Kayıt defteri uç noktalarını yapılandırma.
- Veri akışı grafı oluştur: Grafik tanımı kullanan bir veri akışı tanımlamak için işlem deneyimi web kullanıcı arabirimini veya Bicep dosyalarını kullanın.
- Dağıtım ve Çalıştırma: Azure IoT İşlemleri, graf tanımlarını ve WASM modüllerini kapsayıcı kayıt defterinden alır ve çalıştırır.
Aşağıdaki örneklerde WASM veri akışı grafiklerinin yaygın senaryolar için nasıl yapılandırıldığı gösterilmektedir. Örneklerde hızlı bir şekilde kullanmaya başlayabilmeniz için sabit kodlanmış değerler ve basitleştirilmiş yapılandırmalar kullanılır.
Örnek 1: Tek bir WASM modülüyle temel dağıtım
Bu örnek, WASM modülü kullanarak sıcaklık verilerini Fahrenheit'ten Santigrat'a dönüştürür.
temperature modülü kaynak kodu GitHub üzerinde kullanılabilir.
WebAssembly (WASM) modüllerini ve graf tanımlarını dağıtma konusunda örnek adımları izlediyseniz, graph-simple:1.0.0 grafik tanımı ve önceden derlenmiş temperature:1.0.0 modül zaten kapsayıcı kayıt defterinizdedir. Örnek grafik yapıtı yolu azure-samples/explore-iot-operations/graph-simple:1.0.0 şeklindedir. Genel GHCR örnekleri için veya örnek yapıtları aynı depo yolunu kullanarak kendi kayıt defterinize kopyalarken bu yolu kullanın.
Nasıl çalışır?
graph tanımı basit, üç aşamalı bir işlem hattı oluşturur:
- Kaynak: MQTT'den sıcaklık verilerini alır
- Harita: Sıcaklık WASM modülüyle verileri işler
- Veri Alıcısı: Dönüştürülen verileri MQTT'ye geri gönderir
Basit graf tanımının nasıl çalıştığı ve yapısı hakkında daha fazla bilgi için bkz . Örnek 1: Basit grafik tanımı.
Giriş biçimi:
{"temperature": {"value": 100.0, "unit": "F"}}
Çıkış biçimi:
{"temperature": {"value": 37.8, "unit": "C"}}
Aşağıdaki yapılandırma, bu sıcaklık dönüştürme işlem hattını kullanan bir veri akışı grafiği oluşturur. Veri akışı grafiği YAML graf tanımına graph-simple:1.0.0 başvurur ve kapsayıcı kayıt defterinizden sıcaklık modülünü çeker. Azure örnek grafı azure-samples/explore-iot-operations depo yolu altında depolanır, bu nedenle bu yolu artifact değerine ekleyin.
Veri akışı grafiğini yapılandırma
Bu yapılandırma, sıcaklık dönüştürme iş akışını uygulayan üç düğümü tanımlar: gelen sıcaklık verilerine abone olan bir kaynak düğüm, WASM modülünü çalıştıran bir grafik işleme düğümü ve dönüştürülen sonuçları yayımlayan bir hedef düğüm.
Veri akışı grafı kaynağı, grafik tanım nesnesini barındırır ve soyut kaynak ile sink işlemlerini kesin uç noktalara bağlar.
- Graf tanımının
sourceişlemi veri akışının kaynak düğümüne bağlanır (MQTT konusu) - Graf tanımının
sinkişlemi veri akışının hedef düğümüne bağlanır (MQTT konusu) - Graf tanımının işleme işlemleri graf işleme düğümü içinde çalıştırılır
Bu ayrım, aynı graf tanımını farklı uç noktalarla ortamlar arasında dağıtmanıza olanak tanırken işleme mantığını değiştirmeden tutmanızı sağlar.
İşlem deneyiminde veri akışı grafiği oluşturmak için Veri akışı sekmesine gidin.
+ Oluştur'un yanındaki açılan menüyü ve ardından Veri akışı grafı oluştur'u seçin.
Veri akışı özelliklerini ayarlamak için new-data-flow yer tutucu adını seçin. Veri akışı grafiğinin adını girin ve kullanılacak veri akışı profilini seçin.
Kaynak düğümü yapılandırmak için veri akışı diyagramında Kaynak'ı seçin. Kaynak ayrıntıları'nın altında Varlık veya Veri akışı Uç Noktası'yı seçin.
Varlık'ı seçerseniz, verilerin çekileceği varlığı seçin ve Uygula'yı seçin.
Veri akışı Uç Noktası'nı seçerseniz aşağıdaki ayrıntıları girin ve Uygula'yı seçin.
Setting Description Veri akışı uç noktası Varsayılan MQTT ileti aracısı uç noktasını kullanmak için varsayılan'ı seçin. Konu Gelen iletiler için abone olunacak konu filtreleme mekanizması. Birden çok konu başlığı eklemek için Konu Başlıkları İleti şeması Gelen iletileri seri durumdan çıkarmak için kullanılacak şema.
Grafik işleme düğümü eklemek için veri akışı diyagramında Graf dönüşümü ekle (isteğe bağlı) öğesini seçin. Grafik seçimi bölmesinde graph-simple:1 öğesini ve ardından Uygula'yı seçin.
Diyagramda grafik düğümünü seçerek bazı graf işleci ayarlarını yapılandırabilirsiniz. Örneğin modül-sıcaklık/harita işlecini seçip değerini
key2girebilirsinizexample-value-2. Değişiklikleri kaydetmek için Uygula'yı seçin.Veri akışı diyagramında Hedef'i seçerek hedef düğümü yapılandırın.
Veri akışı grafını kaydetmek için veri akışı grafı adının altında Kaydet'i seçin.
Uyarı
Artefakt referansı, kayıt defteri uç noktasının ana bilgisayarına görelidir. Genel kullanıma açık GHCR örnekleri için kayıt defteri uç noktasının ana bilgisayarı ghcr.io olduğundan, azure-samples/explore-iot-operations/graph-simple:1.0.0 kullanın. Örnek artefaktları aynı depo yolu altında kendi registry'nize kopyaladıysanız aynı artefakt yolunu kullanın. Kendi düz özel kayıt defteri düzeniniz için graph-simple:1.0.0 gibi düz bir artefakt başvurusu kullanın.
Veri akışını test edin
Veri akışını test etmek için küme içinden MQTT iletileri gönderin. Sıcaklık modülü, (sayısal) ve temperature (dize) alanları içeren value iç içe unit nesne içeren belirli bir JSON biçiminde iletiler bekler. Örneğin: {"temperature":{"value":72,"unit":"F"}}.
İlk olarak, MQTT istemcileriyle MQTT aracısına bağlantıyı test etme bölümündeki yönergeleri izleyerek MQTT istemci podunu dağıtın. MQTT istemcisi, aracıya bağlanmak için kimlik doğrulama belirteçlerini ve sertifikaları sağlar. MQTT istemcisini dağıtmak için aşağıdaki komutu çalıştırın:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Sıcaklık iletileri gönderme
İlk terminal oturumunda, Fahrenheit'te sıcaklık verilerini göndermek için bir betik oluşturun ve çalıştırın:
# Connect to the MQTT client pod
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh -c '
# Create and run temperature.sh from within the MQTT client pod
while true; do
# Generate a random temperature value between 0 and 6000 Fahrenheit
random_value=$(shuf -i 0-6000 -n 1)
payload="{\"temperature\":{\"value\":$random_value,\"unit\":\"F\"}}"
echo "Publishing temperature: $payload"
# Publish to the input topic
mosquitto_pub -h aio-broker -p 18883 \
-m "$payload" \
-t "sensor/temperature/raw" \
-d \
--cafile /var/run/certs/ca.crt \
-D PUBLISH user-property __ts $(date +%s)000:0:df \
-D CONNECT authentication-method 'K8S-SAT' \
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
sleep 1
done'
Uyarı
MQTT kullanıcı özelliği __ts , Karma Mantıksal Saat (HLC) kullanarak iletilerin zamanında işlenmesini sağlamak için iletilere bir zaman damgası ekler. Zaman damgası, veri akışının iletiyi kabul etmeye veya bırakmaya karar vermesine yardımcı olur. özelliğinin biçimi şeklindedir <timestamp>:<counter>:<nodeid>. Veri akışının işlenmesini daha doğru hale getirir, ancak zorunlu değildir.
Betik, her saniye sensor/temperature/raw konusuna rastgele sıcaklık verileri yayımlar. Şu şekilde görünmelidir:
Publishing temperature: {"temperature":{"value":1234,"unit":"F"}}
Publishing temperature: {"temperature":{"value":5678,"unit":"F"}}
Sıcaklık verilerini yayımlamaya devam etmek için betiği çalışır durumda bırakın.
İşlenen iletilere abone olma
İkinci terminal oturumunda (MQTT istemci pod'una da bağlı), dönüştürülen sıcaklık değerlerini görmek için çıkış konusuna abone olun:
# Connect to the MQTT client pod
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh -c '
mosquitto_sub -h aio-broker -p 18883 -t "sensor/temperature/processed" --cafile /var/run/certs/ca.crt \
-D CONNECT authentication-method "K8S-SAT" \
-D CONNECT authentication-data "$(cat /var/run/secrets/tokens/broker-sat)"'
WASM modülüyle sıcaklık verilerinin Fahrenheit'ten Santigrat'a dönüştürüldüğünü görürsünüz.
{"temperature":{"value":1292.2222222222222,"count":0,"max":0.0,"min":0.0,"average":0.0,"last":0.0,"unit":"C","overtemp":false}}
{"temperature":{"value":203.33333333333334,"count":0,"max":0.0,"min":0.0,"average":0.0,"last":0.0,"unit":"C","overtemp":false}}
Örnek 2: Karmaşık grafiği devreye alma
Bu örnekte sıcaklık, nem ve görüntü verileri gibi birden çok veri türünü işleyen gelişmiş bir veri işleme iş akışı gösterilmektedir. complex graph definition gelişmiş analiz ve nesne algılama gerçekleştirmek için birden çok WASM modülünü düzenler.
Nasıl çalışır?
Karmaşık grafik üç veri akışını işler ve bunları zenginleştirilmiş sensör analizinde birleştirir:
- Sıcaklık işleme: Fahrenheit'i Santigrat'a dönüştürür, geçersiz okumaları filtreler ve istatistikleri hesaplar
- Nem işleme: Zaman aralıkları içinde nem ölçümlerini biriktirir
- Görüntü işleme: Kamera anlık görüntülerinde nesne algılama gerçekleştirir ve sonuçları biçimlendirer
Karmaşık graf tanımının nasıl çalıştığı, yapısı ve birden çok işleme aşamasından geçen veri akışı hakkında daha fazla bilgi için bkz. Örnek 2: Karmaşık graf tanımı.
Graf, Rust işleçleri koleksiyonundan özel modüller kullanır.
Karmaşık veri akışı grafiğini yapılandırma
Bu yapılandırma YAML graf tanımını kullanarak graph-complex:1.0.0 çok sensörlü işleme iş akışını uygular. Örnek grafik nesnesinin yolu azure-samples/explore-iot-operations/graph-complex:1.0.0 şeklindedir. Veri akışı grafı dağıtımının Örnek 1'e nasıl benzer olduğuna dikkat edin; her ikisi de işleme mantığı farklı olsa bile aynı üç düğümlü deseni (kaynak, grafik işlemcisi, hedef) kullanır.
Bu benzerlik, veri akışı grafı kaynağının grafik tanımlarını yükleyen ve yürüten bir konak ortamı olarak davranması nedeniyle oluşur. Gerçek işleme mantığı, WASM modülleri arasındaki işlemlerin ve bağlantıların YAML belirtimini içeren grafik tanımında (graph-simple:1.0.0 veya graph-complex:1.0.0) bulunur. Veri akışı grafı kaynağı, graf tanımını çekmek, modüllerin örneğini görüntülemek ve verileri tanımlı iş akışı üzerinden yönlendirmek için çalışma zamanı altyapısı sağlar.
İşlem deneyiminde veri akışı grafiği oluşturmak için Veri akışı sekmesine gidin.
+ Oluştur'un yanındaki açılan menüyü ve ardından Veri akışı grafı oluştur'u seçin.
Veri akışı özelliklerini ayarlamak için new-data-flow yer tutucu adını seçin. Veri akışı grafiğinin adını girin ve kullanılacak veri akışı profilini seçin.
Kaynak düğümü yapılandırmak için veri akışı diyagramında Kaynak'ı seçin. Kaynak ayrıntıları'nın altında Varlık veya Veri akışı Uç Noktası'yı seçin.
Varlık'ı seçerseniz, verilerin çekileceği varlığı seçin ve Uygula'yı seçin.
Veri akışı Uç Noktası'nı seçerseniz aşağıdaki ayrıntıları girin ve Uygula'yı seçin.
Setting Description Veri akışı uç noktası Varsayılan MQTT ileti aracısı uç noktasını kullanmak için varsayılan'ı seçin. Konu Gelen iletiler için abone olunacak konu filtreleme mekanizması. Birden çok konu başlığı eklemek için Konu Başlıkları İleti şeması Gelen iletileri seri durumdan çıkarmak için kullanılacak şema.
Grafik işleme düğümü eklemek için veri akışı diyagramında Graf dönüşümü ekle (isteğe bağlı) öğesini seçin. Graf seçimi bölmesinde graph-complex:1 öğesini ve ardından Uygula'yı seçin.
Diyagramda grafik düğümünü seçerek bazı graf işleci ayarlarını yapılandırabilirsiniz.
Operator Description modül anlık görüntüsü/dal Modülü snapshotgörüntülerde nesne algılama gerçekleştirecek şekilde yapılandırır. Görüntü verilerininsnapshot_topicgiriş konusunu belirtmek için yapılandırma anahtarını ayarlayabilirsiniz.modül sıcaklığı/harita key2Sıcaklık değerlerini farklı bir ölçeğe dönüştürür.Değişiklikleri kaydetmek için Uygula'yı seçin.
Veri akışı diyagramında Hedef'i seçerek hedef düğümü yapılandırın.
Veri akışı grafını kaydetmek için veri akışı grafı adının altında Kaydet'i seçin.
Karmaşık veri akışını test edin
Herhangi bir çıktıyı görebilmeniz için önce kaynak verileri ayarlayın.
RAW görüntü dosyalarını mqtt-client pod'a yükleme
Görüntü dosyaları, görüntülerdeki snapshot nesneleri algılamak için modüle yöneliktir. Dosyalar, GitHub images klasöründe bulunur.
İlk olarak, görüntü dosyalarına erişmek için depoyu kopyalayın:
git clone https://github.com/Azure-Samples/explore-iot-operations.git
cd explore-iot-operations
Klasörden ./samples/wasm/images pod'a RAW görüntü dosyalarını yüklemek için aşağıdaki komutu kullanın: mqtt-client
kubectl cp ./samples/wasm/images azure-iot-operations/mqtt-client:/tmp
Dosyaların karşıya yüklendiğini denetleyin:
kubectl exec -it mqtt-client -n azure-iot-operations -- ls /tmp/images
Klasördeki /tmp/images dosyaların listesini görmeniz gerekir.
beaker.raw laptop.raw sunny2.raw
binoculars.raw lawnmower.raw sunny4.raw
broom.raw milkcan.raw thimble.raw
camera.raw photocopier.raw tripod.raw
computer_mouse.raw radiator.raw typewriter.raw
daisy3.raw screwdriver.raw vacuum_cleaner.raw
digital_clock.raw sewing_machine.raw
hammer.raw sliding_door.raw
Sanal sıcaklık ve nem verilerini yayımlama ve görüntü gönderme
Sıcaklık ve nem verilerini yayımlamaya ve görüntüleri tek bir betikte göndermeye yönelik komutları birleştirebilirsiniz. Aşağıdaki komutu kullanın:
# Connect to the MQTT client pod and run the script
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh -c '
while true; do
# Generate a random temperature value between 0 and 6000
temp_value=$(shuf -i 0-6000 -n 1)
temp_payload="{\"temperature\":{\"value\":$temp_value,\"unit\":\"F\"}}"
echo "Publishing temperature: $temp_payload"
mosquitto_pub -h aio-broker -p 18883 \
-m "$temp_payload" \
-t "sensor/temperature/raw" \
--cafile /var/run/certs/ca.crt \
-D CONNECT authentication-method "K8S-SAT" \
-D CONNECT authentication-data "$(cat /var/run/secrets/tokens/broker-sat)" \
-D PUBLISH user-property __ts $(date +%s)000:0:df
# Generate a random humidity value between 30 and 90
humidity_value=$(shuf -i 30-90 -n 1)
humidity_payload="{\"humidity\":{\"value\":$humidity_value}}"
echo "Publishing humidity: $humidity_payload"
mosquitto_pub -h aio-broker -p 18883 \
-m "$humidity_payload" \
-t "sensor/humidity/raw" \
--cafile /var/run/certs/ca.crt \
-D CONNECT authentication-method "K8S-SAT" \
-D CONNECT authentication-data "$(cat /var/run/secrets/tokens/broker-sat)" \
-D PUBLISH user-property __ts $(date +%s)000:0:df
# Send an image every 2 seconds
if [ $(( $(date +%s) % 2 )) -eq 0 ]; then
file=$(ls /tmp/images/*.raw | shuf -n 1)
echo "Sending file: $file"
mosquitto_pub -h aio-broker -p 18883 \
-f $file \
-t "sensor/images/raw" \
--cafile /var/run/certs/ca.crt \
-D CONNECT authentication-method "K8S-SAT" \
-D CONNECT authentication-data "$(cat /var/run/secrets/tokens/broker-sat)" \
-D PUBLISH user-property __ts $(date +%s)000:0:df
fi
# Wait for 1 second before the next iteration
sleep 1
done'
Çıktıyı denetleme
Yeni bir terminal açarak çıkış başlığına abone olun.
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh -c '
mosquitto_sub -h aio-broker -p 18883 -t "analytics/sensor/processed" --cafile /var/run/certs/ca.crt \
-D CONNECT authentication-method "K8S-SAT" \
-D CONNECT authentication-data "$(cat /var/run/secrets/tokens/broker-sat)"'
Çıktı aşağıdaki örneğe benzer:
{"temperature":[{"count":9,"max":2984.4444444444443,"min":248.33333333333337,"average":1849.6296296296296,"last":2612.222222222222,"unit":"C","overtemp":true}],"humidity":[{"count":10,"max":76.0,"min":30.0,"average":49.7,"last":38.0}],"object":[{"result":"milk can; broom; screwdriver; binoculars, field glasses, opera glasses; toy terrier"}]}
{"temperature":[{"count":10,"max":2490.5555555555557,"min":430.55555555555554,"average":1442.6666666666667,"last":1270.5555555555557,"unit":"C","overtemp":true}],"humidity":[{"count":9,"max":87.0,"min":34.0,"average":57.666666666666664,"last":42.0}],"object":[{"result":"broom; Saint Bernard, St Bernard; radiator"}]}
Burada çıkış, sıcaklık ve nem verilerinin yanı sıra görüntülerde algılanan nesneleri içerir.
Özel veri akışı grafiklerinin yapılandırması
Bu bölümde WASM modülleriyle veri akışı graflarını yapılandırma hakkında ayrıntılı bilgiler sağlanır. Tüm yapılandırma seçeneklerini, veri akışı uç noktalarını ve gelişmiş ayarları kapsar.
Veri akışı grafiğine genel bakış
Veri akışı grafiği, verilerin işlenmek üzere WebAssembly modülleri aracılığıyla nasıl aktığını tanımlar. Her grafik şunlardan oluşur:
- Grafın etkinleştirilip etkinleştirilmediğini veya devre dışı bırakılıp bırakılmadığını denetleen mod
- Profil referansı, ölçeklendirme ve kaynak ayarlarını tanımlayan bir veri akışı profiline bağlanır.
- İsteğe bağlı olarak grafik durumu için kalıcı depolamayı etkinleştiren disk kalıcılığı
- Kaynak, işleme ve hedef bileşenleri tanımlayan düğümler
- Verilerin düğümler arasında nasıl akacağını belirten düğüm bağlantıları
Mod yapılandırması
mode özelliği, veri akışı grafiğinin verileri etkin bir şekilde işleyip işlemediğini belirler. Modu Enabled veya Disabled (büyük/küçük harfe duyarlı değil) olarak ayarlayın. Devre dışı bırakıldığında, grafik verileri işlemeyi durdurur ancak yapılandırmasını korur.
Bir veri akışı grafiği oluşturduğunuzda veya düzenlediğinizde, Veri akışı özellikleri bölmesindeki Veri akışını etkinleştir bölümünde Evet'i işaretleyerek modu Etkin olarak ayarlayın. İşaretsiz bırakırsanız, mod Devre Dışı olarak ayarlanır.
Profil referansı
Profil başvurusu, veri akışı grafınızı ölçeklendirme ayarlarını, örnek sayılarını ve kaynak sınırlarını tanımlayan bir veri akışı profiline bağlar. Profil referansı belirtmezseniz, bunun yerine Kubernetes sahip referansı kullanmanız gerekir. Çoğu senaryo, Azure IoT İşlemleri tarafından sağlanan varsayılan profili kullanır.
Bir veri akışı grafiği oluşturduğunuzda veya düzenlediğinizde, Veri akışı özellikleri bölmesinde veri akışı profilini seçin. Varsayılan veri akışı profili varsayılan olarak seçilidir. Veri akışı profilleri hakkında daha fazla bilgi için bkz. Veri akışı profilini yapılandırma.
Önemli
Veri akışı profilini yalnızca bir veri akışı grafı oluştururken seçebilirsiniz. Veri akışı grafiği oluşturulduktan sonra veri akışı profilini değiştiremezsiniz. Mevcut bir veri akışı grafiğinin veri akışı profilini değiştirmek istiyorsanız, özgün veri akışı grafiğini silin ve yeni veri akışı profiliyle yeni bir tane oluşturun.
Disk kalıcılığı isteme
İstek diski kalıcılığı, veri akışı grafiklerinin yeniden başlatmalar arasında durumu korumasına olanak tanır. Bu özelliği etkinleştirdiğinizde, bağlı arayıcı yeniden başlatılırsa grafik işleme durumunu kurtarabilir. Durum bilgisi taşıyan işleme senaryolarında ara verileri kaybetmenin sorunlu olacağı durumlar için bu özellik kullanışlıdır. İstek diski kalıcılığını etkinleştirdiğinizde, aracı abone kuyruğundaki iletiler gibi MQTT verilerini diskte kalıcı hale gelir. Bu yaklaşım, veri akışınızın veri kaynağının güç kesintileri veya aracı yeniden başlatmaları sırasında veri kaybı yaşamamasını sağlar. Veri akışı başına kalıcılık yapılandırıldığından aracı en iyi performansı korur, bu nedenle yalnızca kalıcılık gerektiren veri akışları bu özelliği kullanır.
Veri akışı grafiği, abonelik sırasında MQTTv5 kullanıcı özelliğini kullanarak bu kalıcılık isteğini yapar. Bu özellik yalnızca aşağıdaki durumlarda çalışır:
- Veri akışı, kaynak olarak MQTT aracısını kullanır (MQTT uç noktası ile kaynak düğüm)
- MQTT aracısı, abone kuyrukları gibi veri türleri için
Enabledolarak ayarlanmış dinamik kalıcılık moduyla kalıcılık özelliğini etkinleştirmiştir.
Bu yapılandırma, veri akışı grafikleri gibi MQTT istemcilerinin MQTTv5 kullanıcı özelliklerini kullanarak abonelikleri için disk kalıcılığı istemesine olanak tanır. Ayrıntılı MQTT aracısı kalıcılık yapılandırması için bkz. MQTT aracısı kalıcılığını yapılandırma.
Enabled veya Disabled ayarını kabul eder, varsayılan olarak Disabled ile.
Bir veri akışı grafiği oluşturduğunuzda veya düzenlediğinizde, Veri akışı özellikleri bölmesinde, İstek diski kalıcılığını Etkin olarak ayarlamak için Veri akışı kalıcılığı iste bölümünde Evet'i işaretleyin. İşaretsiz bırakırsanız ayar Devre Dışı olur.
Adlandırma kuralları ve sınırları
Veri akışı grafı kaynakları ve bileşenleri farklı katmanlarda zorunlu kılınan adlandırma kısıtlamalarına sahiptir:
| Bileşen | İzin verilen karakterler | Uzunluk | Notlar |
|---|---|---|---|
| Veri akışı grafı kaynak adı | Küçük harf alfanümerik ve tireler (a-z, 0-9, -). Alfasayısal karakterle başlayıp bitmelidir. |
3-63 karakter | ARM API tarafından uygulanır. |
| Düğüm adı | Alfasayısal karakterler, alt çizgiler ve kısa çizgiler (a-zA-Z0-9, _, -). |
Belgelenmiş sınır yok | Grafik içinde benzersiz olmalıdır. |
| Yapılandırma anahtarı | Alfasayısal karakterler, alt çizgiler ve kısa çizgiler (a-zA-Z0-9, _, -). |
Belgelenmiş sınır yok | WASM modüllerine anahtar-değer çiftleri geçirilir. |
| Veri akışı profil adı | Küçük harfli alfasayısal ve kısa çizgiler. | 3-39 karakter | 39 karakterlik sınır, Kubernetes pod adı kısıtlamalarından kaynaklanır (63 karakterlik sınırdan aio-dataflow- ön eki ve düzeltme soneki çıkarılır). |
| Şema referansı |
aio-sr://<namespace>/<name>:<version> formatı veya aio-sr://<name>:<version> formatıyla eşleşmelidir. |
Mevcut Değil | Düğüm bağlantı şemalarında kullanılır. |
Veri akışı grafı aşağıdaki yapısal kuralları da zorunlu kılar:
- Yinelenen düğüm adı yok: Grafikteki her düğümün benzersiz bir adı olmalıdır.
- Geçerli bağlantı türleri: Yalnızca aşağıdaki düğüm bağlantı türlerine izin verilir: Kaynak-Graf, Kaynak-Hedef, Graf-Graf ve Graf-Hedef.
- Döngü yok: Grafik, sonsuz işleme döngüleri oluşturacak döngüsel bağlantılar içeremez.
- Kendi kendine döngü yok: Bir düğüm kendisine bağlanamaz.
- Konu çakışması yok: Kaynak ve hedef aynı uç noktayı kullanıyorsa, MQTT konuları çakışamaz ve bu da sonsuz bir ileti döngüsü oluşturur.
Düğüm yapılandırması
Düğümler, veri akışı grafiğinin yapı taşlarıdır. Her düğümün grafik içinde benzersiz bir adı vardır ve belirli bir işlevi gerçekleştirir. Grafik üç düğüm türü içerir:
Kaynak düğümler
Kaynak düğümler, verilerin grafın nereye girileceği tanımlar. MQTT aracılarından veya Kafka konu başlıklarından veri alan veri akışı uç noktalarına bağlanır. Her kaynak düğümü şunları belirtmelidir:
- Yapılandırılmış bir veri akışı uç noktasına işaret eden uç nokta başvurusu.
- Abone olunacak MQTT konularının veya Kafka konularının listesi olarak veri kaynakları
- Şema çıkarımı için bir Azure Cihaz Kayıt Defteri varlığına bağlanan varlık başvurusu (isteğe bağlı)
Veri kaynakları dizisi, uç nokta yapılandırmasını değiştirmeden birden çok konuya abone olmanıza olanak tanır. Bu esneklik, uç noktanın farklı veri akışlarında yeniden kullanılmasını sağlar.
Uyarı
Şu anda veri akışı grafları için veri kaynakları olarak yalnızca MQTT ve Kafka uç noktaları desteklenmektedir. Daha fazla bilgi için bkz . Veri akışı uç noktalarını yapılandırma.
Kaynak düğümü yapılandırmak için veri akışı diyagramında Kaynak'ı seçin. Kaynak ayrıntıları'nın altında Veri akışı Uç Noktası'nı seçin, ardından Konu(lar) alanını kullanarak gelen iletiler için abone olunacak MQTT konu filtrelerini belirtin. Satır ekle'yi seçip yeni bir konu girerek birden çok MQTT konusu ekleyin.
Grafik işleme düğümleri
Graf işleme düğümleri, verileri dönüştüren WebAssembly modüllerini içerir. Bu düğümler, WASM yapıtlarını kapsayıcı kayıt defterlerinden çeker ve bunları belirtilen yapılandırma parametrelerini kullanarak çalıştırır. Her grafik düğümü şunları gerektirir:
- Yapıtları çekmek için bir kayıt defteri uç noktasına işaret eden kayıt defteri uç noktası başvurusu
- Çekilecek modül adını ve sürümünü tanımlayan artifact belirtimi
- WASM modülüne anahtar-değer çiftleri olarak yapılandırma parametreleri geçirildi
Yapılandırma dizisi WASM yapıtını yeniden oluşturmadan modül davranışını özelleştirmenizi sağlar. Yaygın yapılandırma seçenekleri arasında işleme parametreleri, eşikler, dönüştürme ayarları ve özellik bayrakları bulunur.
Grafik işleme düğümü eklemek için veri akışı diyagramında Graf dönüşümü ekle (isteğe bağlı) öğesini seçin. Grafik seçimi bölmesinde, basit veya karmaşık bir grafik olarak istediğiniz grafik yapıtını seçin ve Uygula'yı seçin. Diyagramda grafik düğümünü seçerek bazı graf işleci ayarlarını yapılandırabilirsiniz.
Yapılandırma anahtar-değer çiftlerini çalışma zamanında WASM modülüne geçirirsiniz. Modül, davranışını özelleştirmek için bu değerlere erişebilir. Bu yaklaşım şunları yapmanızı sağlar:
- Aynı WASM modülünü farklı yapılandırmalarla dağıtın.
- Modülleri yeniden derlemeden işleme parametrelerini ayarlayın.
- Dağıtım gereksinimlerine göre özellikleri etkinleştirin veya devre dışı bırakın.
- Eşikler veya uç noktalar gibi ortama özgü değerler ayarlayın.
Önemli
Gerekli yapılandırma parametreleri için WASM modülünüzün belgelerine veya kaynak koduna bakın. Bir modül belirli parametreleri (filtre sınırları veya eşikler gibi) bekliyorsa ve bunları sağlamazsanız modül çalışma zamanında başarısız olabilir. Grafik tanımlarında parametre tanımlama hakkında ayrıntılı bilgi için bkz . Modül yapılandırma parametreleri.
Hedef düğümler
Hedef düğümler, işlenen verilerin nereye gönderileceğini tanımlar. MQTT aracılarına, bulut depolama alanına veya diğer sistemlere veri gönderen veri akışı uç noktalarına bağlanır. Her hedef düğüm şöyle belirtir:
- Yapılandırılmış bir veri akışı uç noktasına işaret eden uç nokta başvurusu.
- Veri hedefi, çıktı verilerinin konulduğu belirli bir konu, yol veya konum olarak tanımlanır.
- Serileştirme biçimini ve şema doğrulamayı tanımlayan çıkış şeması ayarları (isteğe bağlı).
Azure Data Lake veya Fabric OneLake gibi depolama hedefleri için verilerin nasıl serileştirileceğini ve doğrulanacağını denetlemek için çıkış şeması ayarlarını belirtebilirsiniz.
Uyarı
Şu anda veri akışı grafları için veri hedefleri olarak yalnızca MQTT, Kafka ve OpenTelemetry uç noktaları desteklenmektedir. Daha fazla bilgi için bkz . Veri akışı uç noktalarını yapılandırma.
- Veri akışı diyagramında Hedef düğümünü seçin.
- Veri akışı uç noktası ayrıntıları açılan listesinden istediğiniz veri akışı uç noktasını seçin.
- Hedefi yapılandırmak için Devam Et'i seçin.
- Verilerin göndereceği konu veya tablo da dahil olmak üzere hedef için gerekli ayarları girin. Portal, uç nokta türüne göre veri hedefi alanını otomatik olarak yorumlar. Örneğin, veri akışı uç noktası bir MQTT uç noktasıysa, hedef ayrıntılar sayfası konuyu girmenizi ister.
Düğüm bağlantıları
Düğüm bağlantıları, düğümler arasındaki veri akışı yolunu tanımlar. Her bağlantı bir kaynak düğüm ve hedef düğüm belirterek işlem hattı oluşturur. İsteğe bağlı olarak bağlantıya bir şema ekleyebilirsiniz. Modül, başlatma sırasında şemayı alır ve bu örnekteki gibi şema doğrulamayı etkinleştirir.
İşlem deneyimi, grafik işleme düğümünü seçtiğinizde otomatik olarak düğüm bağlantıları oluşturur. Grafik oluşturulduktan sonra bağlantıları değiştiremezsiniz.
Veri akışı uç noktaları
Veri akışı grafikleri, veri akışı uç noktaları aracılığıyla dış sistemlere bağlanır. Uç nokta türü, bunu kaynak, hedef veya her ikisi olarak kullanıp kullanamayacağınızı belirler.
MQTT uç noktaları
MQTT uç noktaları hem kaynak hem de hedef işlevi görebilir. MQTT aracılarına bağlanır:
- Azure IoT İşlemleri yerel MQTT aracısı (her veri akışında gereklidir)
- Azure Event Grid MQTT
- Özel MQTT aracıları
Ayrıntılı yapılandırma bilgileri için bkz . MQTT veri akışı uç noktalarını yapılandırma.
Kafka uç noktaları
Kafka uç noktaları hem kaynak hem de hedef görevi görebilir. Bu sistemler, Kafka ile uyumlu sistemlere bağlanır:
- Azure Event Hubs (Kafka uyumlu)
- Apache Kafka kümeleri
- Confluent Cloud
Ayrıntılı yapılandırma bilgileri için bkz. Azure Event Hubs ve Kafka veri akışı uç noktalarını yapılandırma.
Depolama uç noktaları
Depolama uç noktaları yalnızca hedef olarak görev yapabilir. Uzun süreli veri saklama ve analiz için bulut depolama sistemlerine bağlanır:
- Azure Data Lake Storage
- Microsoft Fabric OneLake
- Yerel depolama
Depolama uç noktaları genellikle veri serileştirme biçimini tanımlamak için çıkış şeması ayarlarını gerektirir.
Kayıt defteri uç noktaları
Kayıt defteri uç noktaları WASM modüllerini ve graf tanımlarını çekmek için kapsayıcı kayıt defterlerine erişim sağlar. Bunlar doğrudan veri akışında kullanılmaz, ancak grafik işleme düğümleri bunlara başvurur.
Ayrıntılı yapılandırma bilgileri için bkz. Kayıt defteri uç noktalarını yapılandırma.
Veri akışı grafiklerinde sorun giderme
Bu bölümde, veri akışı graflarıyla çalışırken karşılaşılan yaygın sorunlar için sorun giderme ipuçları sağlanır.
RegistryEndpoint bulunamadı
Veri akışı grafiği başlatılamazsa ve kayıt defteri uç noktasını bulamadığını bildirirse aşağıdakileri doğrulayın:
Kayıt defteri uç noktası adıyla eşleşir: Veri akış grafınızdaki
registryEndpointRefdeğeri,namekaynağınızınRegistryEndpointdeğerine tam olarak eşleşmelidir. Yazım hataları ve büyük/küçük harf duyarlılığı olup olmadığını denetleyin.# List all registry endpoints in the namespace kubectl get registryendpoints -n azure-iot-operationsKayıt defteri uç noktası doğru ad alanında: Kayıt defteri uç noktası ad alanında
azure-iot-operations(veya veri akışı grafınızla aynı ad alanında) olmalıdır.Kayıt defteri uç noktası hazır: Kayıt defteri uç noktanızın durumunu denetleyin:
kubectl describe registryendpoint <REGISTRY_ENDPOINT_NAME> -n azure-iot-operationsAuthentication doğru yapılandırıldı: Yönetilen kimlik kullanıyorsanız, Azure IoT İşlemleri Arc uzantısının kayıt defterinde
AcrPullizinlerine sahip olduğundan emin olun. Genel bir depoyla anonim olarak kimlik doğrulaması kullanıyorsanız, ana bilgisayar URL'sinin doğru olduğunu doğrulayın.Artefaktlar kayıt defterinde mevcut: Grafınızda referans verilen graf tanımı ve WASM modüllerinin kayıt defterinde beklenen etiketlerde mevcut olduğunu doğrulayın.
# Check if artifacts exist (example with ORAS) oras manifest fetch <REGISTRY_HOST>/graph-simple:1.0.0
Veri akışı grafı çalışıyor ancak verileri işlenmiyor
Veri akışı grafiğini dağıttığınızda mesajlar işlenmiyorsa:
Veri akışı grafı durumunu denetleyin: Veri akışı grafı kaynak durumunda hataları arayın.
kubectl get dataflowgraph <GRAPH_NAME> -n azure-iot-operations -o yamlMQTT konularını doğrulama: Veri akışı grafiğinizdeki kaynak konuların verileri yayımladığınız konularla eşleştiğinden emin olun.
Zaman damgalarını denetleme: Veri akışı grafiklerinde ileti işleme için Karma Mantıksal Saat (HLC) zaman damgaları kullanılır. Zamanında işlendiğinden
__tsemin olmak için MQTT iletilerini yayımlarken kullanıcı özelliğini ekleyin.
İlgili içerik
- Veri akışları için WASM modülleri oluşturma hem IDE hem de CLI tabanlı geliştirme iş akışları için
- Grafik YAML yapısı ve yapılandırma parametreleri için WebAssembly graf tanımlarını yapılandırma
- Kayıt defteri kurulumu ve yapıt yönetimi için WASM modüllerini ve graf tanımlarını dağıtma
- ML modeli tümleştirmesi için WASM'de ONNX çıkarımı çalıştırma
- MQTT veri akışı uç noktalarını yapılandırma
- Azure Event Hubs ve Kafka veri akışı uç noktalarını yapılandırın
- Azure Data Lake Storage veri akışı uç noktalarını yapılandırın
- Microsoft Fabric OneLake veri akışı uç noktalarını yapılandırma