Azure Stream Analytics sorgularının sorunlarını giderme

Bu makalede, Stream Analytics sorguları geliştirmeyle ilgili yaygın sorunlar ve bunların nasıl giderileceği açıklanmaktadır.

Bu makalede, Azure Stream Analytics sorguları geliştirmeyle ilgili yaygın sorunlar, sorgu sorunlarını giderme ve sorunların nasıl giderileceği açıklanmaktadır. Birçok sorun giderme adımı Stream Analytics işiniz için kaynak günlüklerinin etkinleştirilmesini gerektirir. Kaynak günlüklerinizi etkinleştirmediyseniz, bkz. Azure Stream Analytics sorun giderme kaynak günlüklerini kullanarak.

Sorgu beklenen çıktıyı üretmiyor

  1. Yerel olarak test ederek hataları inceleyin:

    • Azure portal, sorgu sekmesinde Test' i seçin. Sorguyu testetmek için indirilen örnek verileri kullanın. Tüm hataları inceleyin ve bunları düzeltmeye çalışın.
    • ayrıca, Visual Studio veya Visual Studio Codeiçin Azure Stream Analytics araçları kullanarak sorgunuzu yerel olarak test edebilirsiniz.
  2. Visual Studio Code için Azure Stream Analytics araçlarındaki iş diyagramını kullanarak yerel olarak adım adım hata ayıklayın . İş diyagramı, verilerin giriş kaynaklarından (Olay Hub 'ı, IoT Hub, vb.) birden çok sorgu adımı ve son olarak çıkış havuzları aracılığıyla nasıl akacağını gösterir. Her sorgu adımı, WITH ifadesiyle birlikte betikte tanımlanan geçici bir sonuç kümesiyle eşlenir. Sorunun kaynağını bulmak için her bir ara sonuç kümesindeki verileri ve ölçümleri de görüntüleyebilirsiniz.

    İş diyagramı önizleme sonucu

  3. Zaman damgasıkullanıyorsanız, olayların zaman damgalarının iş başlangıç zamanındandaha büyük olduğunu doğrulayın.

  4. Genel sınırları ortadan kaldırın, örneğin:

    • Sorgudaki WHERE yan tümcesi tüm olayları filtreleyerek tüm çıktının oluşturulmasını önler.
    • Atama işlevi başarısız olur ve işin başarısız olmasına neden olur. Tür dönüştürme hatalarından kaçınmak için, bunun yerine TRY_CAST kullanın.
    • Pencere işlevleri kullandığınızda, tüm pencere süresinin sorgudaki bir çıktıyı görmesini bekleyin.
    • Olaylar için zaman damgası iş başlangıç zamanından önce ve olaylar bırakılır.
    • JOIN koşulları eşleşmiyor. Eşleşme yoksa sıfır çıkış olur.
  5. Olay sıralama ilkelerinin beklenen şekilde yapılandırıldığından emin olun. Ayarlar gidin ve olay sıralaması' nı seçin. Sorguyu test etmek için Test düğmesini kullandığınızda ilke uygulanmaz. Bu sonuç, test sırasında çalıştırılan iş ve üretimde iş arasında bir farklılık olduğunu fark ediyor.

  6. Etkinlik ve kaynak günlüklerini kullanarak hata ayıklayın:

Kaynak kullanımı yüksek

Azure Stream Analytics ' de paralelleştirme avantajını kullandığınızdan emin olun. Giriş bölümlerini yapılandırarak ve analiz sorgu tanımını ayarlayarak Stream Analytics işlerin sorgu paralel hale getirme ile ölçeklendirmeyi öğrenebilirsiniz.

Kaynak kullanımı düzenli olarak %80 üzerinde ise, eşik gecikmesi gecikmelidir ve biriktirme listesi olaylarının sayısı artmakta olduğundan, akış birimlerini artırmayı düşünün. Yüksek kullanım, işin en fazla ayrılmış kaynağa yakın kullandığını gösterir.

Sorgularda aşamalı olarak hata ayıklama

Gerçek zamanlı veri işlemede, verilerin ortasında ne gibi göründüğünü bilmek faydalı olabilir. Bunu, Visual Studio ' de iş diyagramını kullanarak görebilirsiniz. Visual Studio yoksa ara verileri çıkarmak için ek adımlar gerçekleştirebilirsiniz.

Azure Stream Analytics bir işin girişleri veya adımları birden çok kez okunabileceğinden, ek SELECT INTO deyimlerini yazabilirsiniz. Bunun yapılması, ara verileri depolama alanına çıkarır ve verilerin doğruluğunu, bir programda hata ayıkladığınızda olduğu gibi, izleme değişkenlerini incelemenizi sağlar.

Azure Stream Analytics işinde aşağıdaki örnek sorguda bir akış girişi, iki başvuru veri girişi ve Azure tablo Depolama çıkışı vardır. Sorgu, ad ve kategori bilgilerini almak için Olay Hub 'ından ve iki başvuru Bloblarından verileri birleştirir:

Örnek Stream Analytics sorgu Seç

İşin çalıştığını, ancak çıktıda hiçbir olayın üretilmediğini unutmayın. Burada gösterilen izleme kutucuğunda, girişin veri üretmekte olduğunu, ancak birleşimin hangi adımının tüm olayların bırakılmasına neden olduğunu bilemezsiniz.

Stream Analytics Izleme kutucuğu

Bu durumda, ara JOIN sonuçlarını ve girişten okunan verileri "günlüğe kaydetmek" için birkaç ekstra SELECT INTO ifadesi ekleyebilirsiniz.

Bu örnekte, iki yeni "geçici çıkış" ekledik. Dilediğiniz havuz olabilir. burada Azure Depolama bir örnek olarak kullanıyoruz:

Stream Analytics sorguya ek SELECT INTO deyimleri ekleme

Daha sonra sorguyu şunun gibi yeniden yazabilirsiniz:

Yeniden yazan Stream Analytics sorgu Seç

Şimdi işi yeniden başlatın ve birkaç dakika boyunca çalışmasına izin verin. ardından, aşağıdaki tabloları oluşturmak için Visual Studio Cloud Explorer ile temp1 ve temp2 sorgulayın:

Temp1 tablosu  Sorgu Stream Analytics Temp1 tablo SEÇIN

Temp2 tablosu  Sorgu Stream Analytics Temp2 tablo SEÇIN

Gördüğünüz gibi, Temp1 ve Temp2 her ikisinde de veri bulunur ve ad sütunu Temp2 içinde doğru doldurulur. Ancak hala çıktıda hiç veri bulunmadığından bir sorun oluştu:

Veri Stream Analytics sorgu olmadan output1 tablo seçme

Verileri örnekleyerek, sorunun ikinci BIRLEŞIMDE geldiğinden neredeyse emin olabilirsiniz. Blob 'dan başvuru verilerini indirebilir ve bir göz atabilirsiniz:

Sorgu Stream Analytics ref tablosuna Seç

Görebileceğiniz gibi, bu başvuru verilerinde GUID biçimi Temp2 içindeki [from] sütununun biçiminden farklıdır. Bu nedenle, veriler beklenen şekilde output1 'e ulaşamamaktadır.

Veri biçimini giderebilir, başvuru blobuna yükleyebilir ve yeniden deneyebilirsiniz:

Sorgu Stream Analytics geçici tablo SEÇIN

Bu kez, çıkışdaki veriler biçimlendirilir ve beklendiği gibi doldurulur.

Son tablo Stream Analytics sorguda SEÇIN

Yardım alın

Daha fazla yardım için, Azure Stream Analytics Için Microsoft Q&soru sayfasınıdeneyin.

Sonraki adımlar