Aracılığıyla paylaş


İş benzetimi kullanarak sorguyu iyileştirme

Azure Stream Analytics (ASA) işinin performansını artırmanın bir yolu sorguya paralellik uygulamaktır. Bu makalede, bir Stream Analytics işi için sorgu paralelliğini değerlendirmek üzere Azure portal ve Visual Studio Code 'de (VS Code) İş Benzetimi'nin nasıl kullanılacağı gösterilmektedir. Farklı sayıda akış birimiyle sorgu yürütmeyi görselleştirmeyi ve düzenleme önerilerine göre sorgu paralelliğini geliştirmeyi öğrenirsiniz.

Paralel sorgu nedir?

Sorgu paralelliği, birden çok işlem (veya akış düğümü) oluşturarak sorgunun iş yükünü böler ve paralel olarak yürütür. Sorgunun genel yürütme süresini büyük ölçüde azaltır ve bu nedenle daha az akış saati gerekir.

Bir işin paralel olması için tüm girişler, çıkışlar ve sorgu adımları hizalanmalıdır ve aynı bölüm anahtarlarını kullanmalıdır. Sorgu mantığı bölümleme, toplamalar için kullanılan anahtarlar tarafından belirlenir (GROUP BY).

Sorgu paralelleştirme hakkında daha fazla bilgi edinmek istiyorsanız bkz . Azure Stream Analytics'te sorgu paralelleştirmeden yararlanma.

VS Code'da iş benzetimi kullanma

İş benzetimi özelliği, işin Azure'da topolojiyi nasıl çalıştıracağının benzetimini yapar. Bu öğreticide, düzenleme önerilerine göre sorgu performansını geliştirmeyi ve paralel olarak yürütülmesini sağlamayı öğreneceksiniz. Örnek olarak, giriş verilerini bir olay hub'ından alan ve sonuçları başka bir olay hub'ına gönderen bir genel olmayan iş kullanıyoruz.

Ön koşullar:

  • VS Code için ASA Araçları uzantısı. Henüz yüklemediyseniz yüklemek için bu kılavuzu izleyin.
  • Stream Analytics işiniz için canlı girişi ve canlı çıkışı yapılandırın.
  • Sorguya canlı giriş ve çıkış eklemeniz gerekir.

Not

İş Benzetimi, yerel girişler ve çıkışlar için topoloji çalıştıran işin benzetimini yapamaz. Simülasyon sırasında çıkış hedefine veri gönderilmez.

  1. VS Code'da ASA projesini açın. *.asaql sorgu dosyasına gidin ve İş Benzetimi'ni başlatmak için İşin benzetimini yapın'ı seçin.

    Vs Code'un sorgu dosyasında iş diyagramı simülatörü açmasının ekran görüntüsü.

  2. Diyagram sekmesinin altında, işe ayrılan akış düğümlerinin sayısı ve her akış düğümündeki bölüm sayısı gösterilir. Aşağıdaki ekran görüntüsü, verilerin düğümler arasında aktığı bir genel olmayan iş örneğidir.

    İş diyagramı simülatörünü kullanan ve iş topolojisini gösteren VS Code'un ekran görüntüsü.

  3. Bu sorgu paralel olmadığından , sorguyu geliştirmeyle ilgili önerileri görüntülemek için Geliştirmeler sekmesini seçebilirsiniz.

    İş diyagramı simülatörünü kullanan ve sorgu düzenleme önerilerini gösteren VS Code'un ekran görüntüsü.

  4. Geliştirmeler listesinde sorgu adımını seçin, ilgili satırların vurgulanmış olduğunu görürsünüz ve önerileri temel alarak sorguyu düzenleyebilirsiniz.

    İş diyagramı simülatörünü kullanan ve sorgu adımını vurgulayan VS Code'un ekran görüntüsü.

    Not

    Bunlar, sorgu paralelliğinizi geliştirmeye yönelik düzenleme önerileridir. Ancak, tüm bölümler arasında toplama işlevi kullanıyorsanız, paralel sorguya sahip olmak senaryolarınız için geçerli olmayabilir.

  5. Bu örnekte PartitionId değerini 22. satıra ekleyip değişikliğinizi kaydetmiş olursunuz. Ardından Yenile simülasyonunu kullanarak yeni diyagramı alabilirsiniz.

    Sorgu güncelleştirildikten sonra yenileme diyagramını gösteren ekran görüntüsü.

  6. Akış Birimlerini , akış düğümlerinin farklı SU'larla nasıl ayrıldığını uyarmak için de ayarlayabilirsiniz. İş yükünüzü işlemek için kaç SU'ya ihtiyacınız olduğu hakkında size bir fikir verir.

    SU ayarlayıcısını kullanan VS Code'un ekran görüntüsü.

Azure portal iş benzetimi kullanma

  1. Azure portal'da sorgu düzenleyicinize gidin ve alt bölmede İş benzetimi'ni seçin. Sorgunuza ve önceden tanımlanmış akış birimlerine göre topoloji çalıştıran işin benzetimini oluşturur. Portalda iş benzetimi açma işlemini gösteren ekran görüntüsü.
  2. Sorgu paralelliğini geliştirmeye yönelik önerileri görüntülemek için Geliştirmeler'i seçin. Portalda açık iş benzetimi geliştirmelerini gösteren ekran görüntüsü.
  3. İş yükünü işlemek için kaç SU'ya ihtiyacınız olduğunu görmek için akış birimlerini ayarlayın. Portalda su ayarının nasıl yapıldığını gösteren ekran görüntüsü.

İşlemci düzeyinde diyagram

İşinizin topolojisini simüle etmek için akış birimlerini ayarladıktan sonra, verilerinizin işlemci düzeyinde nasıl işlendiğini gözlemlemek için akış düğümlerinden herhangi birini genişletebilirsiniz.

Simülatörün işlemci düzeyi diyagramını gösteren gif biçiminde bir ekran görüntüsü.

İşlemci düzeyindeki diyagram şunları yapmanızı sağlar:

  • Giriş bölümlerinin her akış düğümünde nasıl ayrıldığını ve işlendiğini gözlemleyin.
  • Her bilgi işlem işlemcisi için Zaman kaydırmanın ne olduğunu öğrenin.
  • Giriş ve Çıkış işlemcilerinin paralel olarak hizalanıp hizalanmamış olduğu hakkında bilgi sağlar.

İşlemciyi sorgu adımıyla eşlemek için diyagramda iki kez seçin. Bu özellik toplama işlemini yapan sorgu adımlarını bulmanıza yardımcı olur.

VS Code'daki iş benzetimi eşleme özelliğini gösteren ekran görüntüsü.

Geliştirme önerileri

Geliştirmeler için açıklamalar şunlardır:

Tür Anlamı
Özelleştirilmiş bölüm desteklenmiyor Giriş 'xxx' bölüm anahtarını 'xxx' olarak değiştirin.
Eşleşmeyen bölüm sayısı Giriş ve çıkış aynı sayıda bölüme sahip olmalıdır.
Bölüm anahtarları eşleşmiyor Giriş, çıkış ve her sorgu adımı aynı bölüm anahtarını kullanmalıdır.
Eşleşmeyen giriş bölümü sayısı Tüm girişlerin aynı sayıda bölüme sahip olması gerekir.
Giriş bölümü anahtarları eşleşmiyor Tüm girişler aynı bölüm anahtarını kullanmalıdır.
Düşük uyumluluk düzeyi JobConfig.json dosyasında CompatibilityLevel'i yükseltin.
Çıkış bölüm anahtarı bulunamadı Çıkış için belirtilen bölüm anahtarını kullanmanız gerekir.
Özelleştirilmiş bölüm desteklenmiyor Yalnızca önceden tanımlanmış bölüm anahtarlarını kullanabilirsiniz.
Bölüm kullanmayan sorgu adımı Sorgunuz PARTITION BY yan tümcesi kullanmıyor.

Sonraki adımlar

Sorgu paralelleştirme ve iş diyagramı hakkında daha fazla bilgi edinmek istiyorsanız şu öğreticilere göz atın: