Azure Stream Analytics çözüm desenleri

Azure'daki diğer birçok hizmet gibi Stream Analytics de daha büyük bir uçtan uca çözüm oluşturmak için diğer hizmetlerle birlikte en iyi şekilde kullanılır. Bu makalede basit Azure Stream Analytics çözümleri ve çeşitli mimari desenler ele alınmaktadır. Daha karmaşık çözümler geliştirmek için bu desenleri geliştirebilirsiniz. Bu makalede açıklanan desenler çok çeşitli senaryolarda kullanılabilir. Senaryoya özgü desen örnekleri Azure çözüm mimarilerinde kullanılabilir.

Gerçek zamanlı pano deneyimini desteklemek için Stream Analytics işi oluşturma

Azure Stream Analytics ile hızlı bir şekilde gerçek zamanlı panolar ve uyarılar oluşturabilirsiniz. Basit bir çözüm Event Hubs veya IoT Hub'dan olayları alır ve Power BI panosunu bir akış veri kümesiyle besler. Daha fazla bilgi için Stream Analytics ile sahte arama verilerini analiz etme ve Power BI panosundaki sonuçları görselleştirme öğreticisine bakın.

Diagram that shows events from Event Hubs and IoT Hubs flowing through Stream Analytics and to the Power BI dashboard.

Azure portalını kullanarak bu çözümü yalnızca birkaç dakika içinde oluşturabilirsiniz. Kapsamlı olarak kod oluşturmanız gerekmez. Bunun yerine, iş mantığını ifade etmek için SQL dilini kullanabilirsiniz.

Bu çözüm düzeni, bir tarayıcıdaki olay kaynağından Power BI panosuna kadar en düşük gecikme süresini sunar. Azure Stream Analytics, bu yerleşik özelliğe sahip tek Azure hizmetidir.

Pano için SQL kullanma

Power BI panosu düşük gecikme süresi sunar ancak tam teşekküllü Power BI raporları oluşturmak için bu panoyu kullanamazsınız. Yaygın bir raporlama düzeni, verilerinizin çıkışını önce SQL Veritabanı yapmaktır. Ardından Power BI'ın SQL bağlayıcısını kullanarak SQL'de en son verileri sorgulayın.

Diagram that shows SQL Database as an intermediate store between Stream Analytics and Power BI dashboard.

SQL Veritabanı kullandığınızda, bu size daha fazla esneklik sağlar ancak biraz daha yüksek bir gecikme süresine neden olur. Bu çözüm, gecikme süresi gereksinimleri bir saniyeden uzun olan işler için idealdir. Bu yöntemi kullandığınızda, raporlar için verileri daha fazla dilimleyip bölmek ve çok daha fazla görselleştirme seçeneği sağlamak için Power BI özelliklerini en üst düzeye çıkarabilirsiniz. Ayrıca Tableau gibi diğer pano çözümlerini kullanma esnekliği de elde edebilirsiniz.

SQL yüksek aktarım hızına sahip bir veri deposu değildir. Azure Stream Analytics'ten SQL Veritabanı aktarım hızı üst sınırı şu anda yaklaşık 24 MB/sn'dir. Çözümünüzdeki olay kaynakları daha yüksek hızda veri oluşturuyorsa çıkış hızını SQL'e düşürmek için Stream Analytics'te işleme mantığını kullanmanız gerekir. Filtreleme, pencerelenmiş toplamalar, zamana bağlı birleşimlerle desen eşleştirme ve analiz işlevleri gibi teknikleri kullanabilirsiniz. Azure SQL Veritabanı için Azure Stream Analytics çıkışında açıklanan teknikleri kullanarak çıkış hızını SQL'e en iyi duruma getirebilirsiniz.

Olay mesajlaşması ile uygulamanıza gerçek zamanlı içgörüler ekleme

Stream Analytics'in en popüler ikinci kullanımı gerçek zamanlı uyarılar oluşturmaktır. Bu çözüm düzeninde Stream Analytics'teki iş mantığı, zamansal ve uzamsal desenleri veya anomalileri algılamak ve ardından uyarı sinyalleri üretmek için kullanılabilir. Ancak Stream Analytics'in tercih edilen uç nokta olarak Power BI kullandığı pano çözümünün aksine diğer ara veri havuzlarını kullanabilirsiniz. Bu havuzlar Event Hubs, Service Bus ve Azure İşlevleri içerir. Uygulama oluşturucusu olarak senaryonuz için en uygun veri havuzuna karar vermeniz gerekir.

Mevcut iş iş akışınızda uyarılar oluşturmak için aşağı akış olayı tüketici mantığını uygulamanız gerekir. özel mantığı Azure İşlevleri uygulayabildiğiniz için, Azure İşlevleri bu tümleştirmeyi gerçekleştirmenin en hızlı yoludur. Stream Analytics işinin çıktısı olarak Azure İşlevi'ni kullanma öğreticisi için bkz. Azure Stream Analytics işlerinden Azure İşlevleri çalıştırma. Azure İşlevleri, metin ve e-posta gibi çeşitli bildirim türlerini de destekler. Bu tür tümleştirme için Logic Apps'i Stream Analytics ile Logic Apps arasında Event Hubs ile de kullanabilirsiniz.

Diagram that shows Event Hubs and IoT Hubs as data sources and Event Hubs, Service Bus, or Functions as destinations for an Azure Stream Analytics job.

Öte yandan Azure Event Hubs hizmeti en esnek tümleştirme noktasını sunar. Azure Veri Gezgini ve Time Series Analizler gibi diğer birçok hizmet Event Hubs'daki olayları kullanabilir. Hizmetler, çözümü tamamlamak için Azure Stream Analytics'ten Event Hubs havuzuna doğrudan bağlanabilir. Event Hubs ayrıca bu tür tümleştirme senaryoları için Azure'da kullanılabilen en yüksek aktarım hızı mesajlaşma aracısıdır.

Dinamik uygulamalar ve web siteleri

Azure Stream Analytics ve Azure SignalR Hizmeti kullanarak pano veya harita görselleştirmesi gibi özel gerçek zamanlı görselleştirmeler oluşturabilirsiniz. SignalR kullandığınızda web istemcileri güncelleştirilebilir ve dinamik içeriği gerçek zamanlı olarak gösterebilir.

Diagram that shows a Web app using SignalR service as a destination.

Veri depoları aracılığıyla uygulamanıza gerçek zamanlı içgörüler ekleme

Günümüzde çoğu web hizmeti ve web uygulaması sunu katmanını sunmak için istek/yanıt deseni kullanmaktadır. İstek/yanıt deseninin oluşturulması kolaydır ve durum bilgisi olmayan bir ön uç ve Azure Cosmos DB gibi ölçeklenebilir depolar kullanılarak düşük yanıt süresiyle kolayca ölçeklendirilebilir.

Yüksek veri hacmi genellikle CRUD tabanlı bir sistemde performans sorunları oluşturur. Olay kaynak çözümü deseni , performans sorunlarını gidermek için kullanılır. Zamansal desenleri ve içgörüleri geleneksel bir veri deposundan ayıklamak da zordur ve verimsizdir. Modern yüksek hacimli veri odaklı uygulamalar genellikle veri akışı tabanlı bir mimari benimser. Azure Stream Analytics, hareket halindeki veriler için işlem altyapısı olarak bu mimaride bir linchpin'dir.

Diagram that shows a real-time application as a destination for a Stream Analytics job.

Bu çözüm düzeninde olaylar Azure Stream Analytics tarafından işlenip veri depolarında toplanır. Uygulama katmanı, geleneksel istek/yanıt desenini kullanarak veri depolarıyla etkileşim kurar. Stream Analytics'in çok sayıda olayı gerçek zamanlı olarak işleyebilmesi nedeniyle uygulama, veri deposu katmanını toplu hale getirmek zorunda kalmadan yüksek oranda ölçeklenebilir. Veri deposu katmanı temelde sistemde gerçekleştirilmiş bir görünümdür. Azure Cosmos DB'ye Azure Stream Analytics çıkışı, Azure Cosmos DB'nin Stream Analytics çıkışı olarak nasıl kullanıldığını açıklar.

İşleme mantığının karmaşık olduğu ve mantığın belirli bölümlerini bağımsız olarak yükseltme gereksiniminin olduğu gerçek uygulamalarda, aracı olay aracısı olarak Event Hubs ile birlikte birden çok Stream Analytics işi oluşturulabilir.

Diagram that shows Event Hubs as an intermediary and a real-time application as a destination for a Stream Analytics job.

Bu düzen, sistemin dayanıklılığını ve yönetilebilirliğini artırır. Ancak Stream Analytics tam olarak bir kez işlemeyi garanti etse de, yinelenen olayların aracı Event Hubs'a inme olasılığı çok düşüktür. Aşağı akış Stream Analytics işinin bir geri arama penceresinde mantıksal anahtarları kullanarak olayları kaldırması önemlidir. Olay teslimi hakkında daha fazla bilgi için bkz . Event Delivery Guarantees başvurusu.

Uygulama özelleştirmesi için başvuru verilerini kullanma

Azure Stream Analytics başvuru verileri özelliği uyarı eşiği, işleme kuralları ve coğrafi konumlar gibi son kullanıcı özelleştirmeleri için özel olarak tasarlanmıştır. Uygulama katmanı parametre değişikliklerini kabul edebilir ve bunları SQL Veritabanı depolayabilir. Stream Analytics işi veritabanındaki değişiklikleri düzenli aralıklarla sorgular ve özelleştirme parametrelerini bir başvuru veri birleştirmesi aracılığıyla erişilebilir hale getirir. Uygulama özelleştirmesi için başvuru verilerini kullanma hakkında daha fazla bilgi için bkz . SQL başvuru verileri ve başvuru verileri birleştirme.

Bu desen, kuralların eşiklerinin başvuru verilerinden tanımlandığı bir kural altyapısı uygulamak için de kullanılabilir. Kurallar hakkında daha fazla bilgi için bkz . Azure Stream Analytics'te yapılandırılabilir eşik tabanlı kuralları işleme.

Diagram that shows a Stream Analytics job and the destination application using reference data.

Gerçek zamanlı içgörülerinize Machine Learning ekleme

Azure Stream Analytics'in yerleşik Anomali Algılama modeli , Machine Learning'i gerçek zamanlı uygulamanıza tanıtmanın kullanışlı bir yoludur. Daha geniş bir yelpazedeki Machine Learning gereksinimleri için bkz . Azure Stream Analytics, Azure Machine Learning'in puanlama hizmetiyle tümleştirme.

Çevrimiçi eğitim ve puanlama özelliklerini aynı Stream Analytics işlem hattına dahil etmek isteyen ileri düzey kullanıcılar için doğrusal regresyonla bunun nasıl yapıldığını gösteren bu örne bakın.

Diagram that shows an Azure Stream Analytics job using an ML scoring model.

Gerçek zamanlı veri ambarı

Bir diğer yaygın desen de akış veri ambarı olarak da adlandırılan gerçek zamanlı veri ambarıdır. Uygulamanızdan Event Hubs ve IoT Hub'a gelen olaylara ek olarak IoT Edge üzerinde çalışan Azure Stream Analytics, veri temizleme, veri azaltma ve veri deposu ile iletme gereksinimlerini karşılamak için kullanılabilir. IoT Edge'de çalışan Stream Analytics, sistemdeki bant genişliği sınırlamalarını ve bağlantı sorunlarını düzgün bir şekilde işleyebilir. Stream Analytics, Azure Synapse Analytics'e yazarken 200 MB/sn'ye kadar aktarım hızı hızlarını destekleyebilir.

Diagram that shows real-time data warehouse a destination for a Stream Analytics job.

Analiz için gerçek zamanlı verileri arşivleme

Veri bilimi ve analiz etkinliklerinin çoğu çevrimdışı olmaya devam eder. Azure Data Lake Store 2. Nesil çıkışı ve Parquet çıkış biçimleri aracılığıyla Azure Stream Analytics'te verileri arşivleyebilirsiniz. Bu özellik verileri doğrudan Azure Data Lake Analytics, Azure Databricks ve Azure HDInsight'a aktarma uyuşmalarını ortadan kaldırır. Azure Stream Analytics, bu çözümde gerçek zamanlıya yakın bir Extract-Transform-Load (ETL) altyapısı olarak kullanılır. Çeşitli işlem altyapılarını kullanarak Data Lake'te arşivlenmiş verileri keşfedebilirsiniz.

Diagram that shows archiving of real-time data from a Stream Analytics job.

Zenginleştirme için başvuru verilerini kullanma

Veri zenginleştirme genellikle ETL altyapıları için bir gereksinimdir. Azure Stream Analytics, hem SQL Veritabanı hem de Azure Blob depolamadan alınan başvuru verileriyle veri zenginleştirmeyi destekler. Hem Azure Data Lake'te hem de Azure Synapse Analytics'te veri girişinde veri zenginleştirme yapılabilir.

Diagram that shows the usage of reference data to enrich streaming data and then use it offline analytics.

Arşivlenmiş verilerden içgörüleri kullanıma hazır hale getirme

Çevrimdışı analiz desenini neredeyse gerçek zamanlı uygulama düzeniyle birleştirirseniz bir geri bildirim döngüsü oluşturabilirsiniz. Geri bildirim döngüsü, uygulamanın verilerdeki desenleri değiştirmek için otomatik olarak ayarlanmasını sağlar. Bu geri bildirim döngüsü, uyarı için eşik değerini değiştirmek kadar basit veya Machine Learning modellerini yeniden eğitme kadar karmaşık olabilir. Aynı çözüm mimarisi hem bulutta hem de IoT Edge'de çalışan ASA işlerine uygulanabilir.

Diagram that shows both cold path and hot path in a Stream Analytics solution.

ASA işlerini izleme

Azure Stream Analytics işi, gelen olayları gerçek zamanlı olarak sürekli işlemek için 7/24 çalıştırılabilir. Çalışma süresi garantisi, genel uygulamanın durumu için çok önemlidir. Stream Analytics sektörde %99,9 kullanılabilirlik garantisi sunan tek akış analizi hizmeti olsa da, yine de bir miktar çalışmama süresine sahip olursunuz. Stream Analytics yıllar içinde işlerin durumunu yansıtan ölçümler, günlükler ve iş durumları kullanıma sunulmuştur. Bunların tümü Azure İzleyici hizmeti aracılığıyla ortaya çıkarılır ve OMS'ye daha fazla aktarılabilir. Daha fazla bilgi için bkz . Azure portalıyla Stream Analytics işini izleme.

Diagram that shows monitoring of Stream Analytics jobs.

İzlenecek iki önemli şey vardır:

  • İş başarısız oldu durumu

    Her şeyden önce, işin çalıştığından emin olmanız gerekir. İş çalışır durumda olmadığında yeni ölçümler veya günlükler oluşturulmaz. İşler, yüksek SU kullanım düzeyine (yani kaynakların tükenmesi) sahip olmak da dahil olmak üzere çeşitli nedenlerle başarısız duruma geçebilir.

  • Filigran gecikmesi ölçümleri

    Bu ölçüm, işlem hattınızın duvar saati süresi (saniye) süresinin ne kadar gerisinde olduğunu yansıtır. Gecikmenin bir kısmı, doğal işleme mantığıyla ilişkilendirilir. Sonuç olarak, artan eğilimi izlemek mutlak değeri izlemekten çok daha önemlidir. Kararlı durum gecikmesi, izleme veya uyarılar tarafından değil, uygulama tasarımınızla ele alınmalıdır.

Hata durumunda, etkinlik günlükleri ve tanılama günlükleri hataları aramaya başlamak için en iyi yerlerdir.

Dayanıklı ve görev açısından kritik uygulamalar oluşturma

Azure Stream Analytics'in SLA garantisine ve uçtan uca uygulamanızı ne kadar dikkatli çalıştırdığınıza bakılmaksızın kesintiler oluşur. Uygulamanız görev açısından kritikse düzgün bir şekilde kurtarmak için kesintilere hazırlıklı olmanız gerekir.

Uygulamaları uyarmak için en önemli şey bir sonraki uyarıyı algılamaktır. Eski uyarıları yoksayarak kurtarma sırasında işi geçerli zamandan itibaren yeniden başlatmayı seçebilirsiniz. İş başlangıç zamanı semantiği ilk giriş zamanına göre değil, ilk çıkış zamanına göredir. Giriş, belirtilen zamanda ilk çıkışın tamamlanmasını ve doğru olmasını sağlamak için uygun bir süre geriye doğru geri alınıyor. Sonuç olarak kısmi toplamalar almazsınız ve uyarıları beklenmedik bir şekilde tetiklemezsiniz.

Ayrıca, çıkışı geçmişteki bir süre içinde başlatmayı da seçebilirsiniz. Hem Event Hubs hem de IoT Hub'ın bekletme ilkeleri, geçmişten işlemeye izin vermek için makul miktarda veri barındırıyor. Bu durumda geçerli saate ne kadar hızlı yetişebilir ve zamanında yeni uyarılar oluşturmaya başlayabilirsiniz. Veriler zaman içinde değerini hızla kaybeder, bu nedenle geçerli zamana hızlı bir şekilde yetişmek önemlidir. Hızlı bir şekilde yakalamanın iki yolu vardır:

  • Yetişirken daha fazla kaynak (SU) sağlayın.
  • Geçerli saatten itibaren yeniden başlatın.

Geçerli süreden yeniden başlatma işlemi, işlem sırasında bir boşluk bırakmanın dezavantajı ile yapmak kolaydır. Bu şekilde yeniden başlatma, uyarı senaryoları için uygun olabilir, ancak pano senaryoları için sorunlu olabilir ve arşivleme ve veri ambarı senaryoları için başlangıç niteliğinde değildir.

Daha fazla kaynak sağlanması süreci hızlandırabilir, ancak işlem hızı artışının etkisi karmaşıktır.

  • İşinizin daha fazla sayıda SU'ya ölçeklenebilir olup olmadığını test edin. Tüm sorgular ölçeklenebilir değildir. Sorgunuzun paralel olduğundan emin olmanız gerekir.

  • Yukarı akış Event Hubs veya IoT Hub'ında giriş aktarım hızını ölçeklendirmek için daha fazla Aktarım Hızı Birimi (TU) ekleyebileceğiniz yeterli bölüm olduğundan emin olun. Her Event Hubs TU'nun 2 MB/sn çıkış hızında maksimuma çıktığını unutmayın.

  • Çıkış havuzlarında (SQL Veritabanı, Azure Cosmos DB) yeterli kaynak sağladığından emin olun; böylece çıkıştaki dalgalanmayı azaltmaz ve bu da bazen sistemin kilitlenmesine neden olabilir.

En önemli şey işleme hızı değişikliğini tahmin etmek, üretime geçmeden önce bu senaryoları test etmek ve hata kurtarma süresinde işlemeyi doğru ölçeklendirmeye hazır olmaktır.

Gelen olayların tümünün gecikmeli olduğu aşırı senaryoda, işinize geç gelen bir pencere uyguladıysanız tüm gecikmeli olaylar bırakılabilir . Olayların düşmesi başlangıçta gizemli bir davranış gibi görünebilir; ancak Stream Analytics'in gerçek zamanlı bir işleme altyapısı olduğunu göz önünde bulundurarak, gelen olayların duvar saati zamanına yakın olmasını bekler. Bu kısıtlamaları ihlal eden olayları bırakması gerekir.

Lambda Mimarileri veya Geri Doldurma işlemi

Neyse ki, önceki veri arşivleme düzeni bu geç olayları düzgün bir şekilde işlemek için kullanılabilir. Burada fikir, arşivleme işinin gelen olayları varış zamanında işlemesi ve olayları Azure Blob veya Azure Data Lake Store'da olay zamanlarıyla doğru zaman demetine arşivlemesidir. Bir etkinliğin ne kadar geç geldiği önemli değildir, asla bırakılmaz. Her zaman doğru zaman demetine inecektir. Kurtarma sırasında arşivlenen olayları yeniden işlemek ve sonuçları tercih edilen depoya doldurmak mümkündür. Bu, lambda desenlerinin uygulanmasına benzer.

ASA backfill

Geri doldurma işlemi, büyük olasılıkla Azure Stream Analytics'ten farklı bir programlama modeline sahip olan çevrimdışı bir toplu işlem sistemiyle yapılmalıdır. Bu, tüm işleme mantığını yeniden tahmin etmek zorunda olduğunuz anlamına gelir.

Geri doldurma için, kararlı durum işleme gereksinimlerinden daha yüksek aktarım hızını işlemek için çıkış havuzlarına en azından geçici olarak daha fazla kaynak sağlamak önemlidir.

Senaryolar Yalnızca şu andan itibaren yeniden başlat Son durdurulan zamandan yeniden başlatma Arşivlenmiş olaylarla yeniden başlatma + geri doldurma
Pano oluşturma Boşluk oluşturur Yetersizlik için tamam Uzun kesintiler için kullanın
Uyarı Kabul Edilebilir Yetersizlik için tamam Gerekli değil
Olay kaynak oluşturma uygulaması Kabul Edilebilir Yetersizlik için tamam Uzun kesintiler için kullanın
Veri ambarı Veri kaybı Kabul Edilebilir Gerekli değil
Çevrimdışı analiz Veri kaybı Kabul Edilebilir Gerekli değil

Hepsini bir araya getirme

Daha önce bahsedilen tüm çözüm desenlerinin karmaşık bir uçtan uca sistemde bir araya getirilebileceğini düşünmek zor değildir. Birleştirilmiş sistem panolar, uyarılar, olay kaynak oluşturma uygulaması, veri ambarı ve çevrimdışı analiz özelliklerini içerebilir.

Önemli olan, sisteminizi birleştirilebilir desenlerde tasarlamaktır; böylece her alt sistem bağımsız olarak derlenebilir, test edilebilir, yükseltilebilir ve kurtarılabilir.

Sonraki adımlar

Artık Azure Stream Analytics'i kullanarak çeşitli çözüm desenleri gördünüz. Bundan sonra derinlere inerek ilk Stream Analytics işinizi oluşturabilirsiniz: