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'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 etkinleştirmek için bir Stream Analytics işi oluşturun.
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.
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. Öncelikle verilerinizi bir SQL Veritabanına çıkarmak, yaygın bir raporlama düzenidir. Ardından Power BI'ın SQL bağlayıcısını kullanarak SQL'de en son verileri sorgulayın.
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 Stream Analytics çıktısını Azure SQL Veritabanı'na optimize etmek için açıklanan teknikleri kullanarak çıkış hızını 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 konusunda bilgi için Azure Stream Analytics işlerinden Azure İşlevleri çalıştırma öğreticisine bakın. 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.
Öte yandan Azure Event Hubs hizmeti en esnek tümleştirme noktasını sunar. Azure Veri Gezgini gibi diğer birçok hizmet Event Hubs'dan gelen 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.
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 bir işleme motoru olarak bu mimarinin kilit taşıdır.
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ı aslında sistemde malzemeleşmiş 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.
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 orta katman Event Hubs'a ulaşma olasılığı küçük bir ihtimaldir. Aşağı akış Stream Analytics işinin, geçmişe yönelik bir pencerede mantıksal anahtarlarla yinelenen olayları kaldırması önemlidir. Olay teslimi hakkında daha fazla bilgi için Olay Teslimat Garantileri referansına bakın.
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.
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. Machine Learning gereksinimlerinin daha geniş bir yelpazesi için, Azure Stream Analytics, Azure Machine Learning'in puanlama hizmetiyle tümleşir.
Ç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.
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.
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 anlık bir Extract-Transform-Load (ETL) motoru olarak kullanılır. Çeşitli işlem altyapılarını kullanarak Data Lake'te arşivlenmiş verileri keşfedebilirsiniz.
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.
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.
ASA işlerini izlemek
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 Azure portalını kullanarak Stream Analytics işini izleme konusuna bakın.
İzlenecek iki önemli şey vardır:
-
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.
-
Bu ölçüm, işlem hattınızın gerçek zaman (saniye) cinsinden ne kadar geride olduğunu gösterir. 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, kesintilerden düzgün bir şekilde kurtulmak için hazırlıklı olmanız gerekir.
Uygulamaları uyarmak için en önemli şey bir sonraki uyarıyı algılamaktır. Kurtarma sırasında eski uyarıları yoksayarak işi mevcut 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şte belirli bir zaman noktasından 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. Şu anki zamana ne kadar hızlı yetişebileceğiniz ve zamanında yeni uyarılar oluşturmaya başlayabileceğiniz arasındaki ödünleşimdir. Veriler zaman içinde değerini hızla kaybeder, bu nedenle geçerli zamana hızlı bir şekilde yetişmek önemlidir. Hızlıca yetişmenin iki yolu vardır:
- Geri kaldığınızda daha fazla kaynak (SU) sağlayın.
- Geçerli saatten itibaren yeniden başlatın.
Mevcut zamandan yeniden başlatma, işleme sırasında bir boşluk bırakma dezavantajına rağmen 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ığınızdan emin olun; böylece çıkıştaki artışın sınırlandırılmasına gerek kalmaz ve bu da 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ı bir senaryoda, işinize gecikmiş bir pencere uyguladıysanız tüm gecikmeli olaylar iptal edilebilir. 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 Yükleme 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 kategorisine 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.
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 uygulamak 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 | Kısa süreli kesinti için uygun | Uzun kesintiler için kullanın |
| Uyarı | Kabul Edilebilir | Kısa süreli kesinti için uygun | Gerekli değil |
| Olay kaynaklama uygulaması | Kabul Edilebilir | Kısa kesinti 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 getiriyoruz
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:
- Azure portalını kullanarak Stream Analytics işi oluşturma.
- Azure PowerShell kullanarak Stream Analytics işi oluşturma.
- Visual Studio kullanarak bir Stream Analytics işi oluşturun.