Öğretici: Sahte arama verilerini Stream Analytics analiz etme ve sonuçları panoda Power BI görselleştirme
Bu öğreticide, telefon numarası kullanarak telefon arama verilerini analiz Azure Stream Analytics. Bir istemci uygulaması tarafından oluşturulan telefon arama verileri, iş için geçerli olan aramalara göre filtrelenmiş sahte Stream Analytics içerir. Kredi kartı sahtekarlığı veya kimlik hırsızlığı gibi diğer sahtekarlık algılama türleri için bu öğreticide yer alan teknikleri kullanabilirsiniz.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Örnek telefon arama verileri oluşturma ve bu verileri Azure Event Hubs.
- Stream Analytics işi oluşturma.
- İş girişini ve çıkışını yapılandırma.
- Sahte çağrıları filtrelemek için sorgular tanımlayın.
- Işi test etmek ve başlatmak.
- Sonuçları görselleştirin Power BI.
Önkoşullar
Başlamadan önce aşağıdaki adımları tamamlamış olduğundan emin olun:
- Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
- TelcoGenerator.zip telefon araması olay oluşturucu uygulamasını Microsoft İndirme Merkezi’nden indirin veya GitHub’dan kaynak kodu edinin.
- Power BI hesabınız olmalıdır.
Azure'da oturum açma
Azure Portal’ında oturum açın.
Azure Olay Hub’ı oluşturma
Stream Analytics’in sahte arama veri akışını analiz edebilmesi için verilerin Azure'a gönderilmesi gerekir. Bu öğreticide, Azure Event Hub’ları kullanarak verileri Azure’a göndereceksiniz.
Bir olay hub'ı oluşturmak ve arama verilerini bu olay hub'ına göndermek için aşağıdaki adımları izleyin:
Azure Portal’ında oturum açın.
Kaynak oluştur'Nesnelerin İnterneti > > Event Hubs.

Ad Alanı Oluştur bölmesini aşağıdaki değerlerle doldurun:
Ayar Önerilen değer Açıklama Ad asaTutorialEventHub Olay hub'ı ad alanını tanımlamak için benzersiz bir ad. Abonelik <Your subscription> Olay hub'ını oluşturmak istediğiniz Azure aboneliğini seçin. Kaynak grubu MyASADemoRG Yeni Oluştur’u seçin ve hesabınız için yeni bir kaynak grubu adı girin. Konum Batı ABD 2 Olay hub'ı ad alanının dağıtılabildiği konum. Kalan ayarlarda varsayılan seçenekleri kullanın ve Gözden geçir ve oluştur'a tıklayın. Ardından Oluştur'a seçerek dağıtımı başlatabilirsiniz.

Ad alanının dağıtımı tamamlandığında Tüm kaynaklar'a gidin ve Azure kaynakları listesinde asaTutorialEventHub'ı bulun. asaTutorialEventHub'ı seçerek açın.
Ardından +Olay Hub'ı'ı seçin ve Olay Hub'ı için bir Ad girin. Bölüm Sayısı'nın 2 olarak ayarlayın. Kalan ayarlarda varsayılan seçenekleri kullanın ve Oluştur'a tıklayın. Ardından dağıtımın başarıyla tamamlanmasını bekleyin.

Olay hub’ına erişim verme ve bir bağlantı dizesi alma
Bir uygulamanın veri gönderemeden Azure Event Hubs hub' ın erişime izin veren bir ilkesi olması gerekir. Erişim ilkesi, yetkilendirme bilgilerini içeren bir bağlantı dizesi oluşturur.
Önceki adımda oluşturduğunuz MyEventHub olay hub'ını seçin. Ayarlar'ın altında Paylaşılan erişim ilkeleri'ni ve ardından + Ekle'yi seçin.
İlkeye MyPolicy adını verin ve Yönet seçeneğinin işaretli olduğundan emin olun. Ardından Oluştur’u seçin.

İlke oluşturulduktan sonra ilke adını seçerek ilkeyi açın. Bağlantı dizesi–birincil anahtarını bulun. Bağlantı dizesinin yanındaki kopyala düğmesini seçin.

Bağlantı dizesini bir metin düzenleyicisine yapıştırın. Sonraki bölümde bu bağlantı dizesine ihtiyacınız olacaktır.
Bağlantı dizesi şu şekilde görünür:
Endpoint=sb://<Your event hub namespace>.servicebus.windows.net/;SharedAccessKeyName=<Your shared access policy name>;SharedAccessKey=<generated key>;EntityPath=<Your event hub name>Bağlantı dizesinin noktalı virgülle ayrılmış birden çok anahtar-değer çifti içerdiğine dikkat edin: Endpoint, SharedAccessKeyName, SharedAccessKey ve EntityPath.
Olay oluşturucu uygulamasını başlatma
TelcoGenerator uygulamasını başlatmadan önce bunu, daha önce oluşturduğunuz Azure Olay Hub’ına veri gönderecek şekilde yapılandırmanız gerekir.
TelcoGenerator.zip dosyasının içeriklerini ayıklayın.
Dosyayı istediğiniz bir metin düzenleyicisinde açın Birden fazla dosya vardır, bu nedenle
TelcoGenerator\TelcoGenerator\telcodatagen.exe.configdoğru dosyayı açmaya emin.configolun.Config dosyasındaki
<appSettings>öğesini şu bilgilerle güncelleştirin:- EventHubName anahtarının değerini bağlantı dizesinde EntityPath değerine ayarlayın.
- Microsoft.ServiceBus.ConnectionString anahtarının değerini EntityPath değerini kaldırdığınız bağlantı dizesine ayarlayın. EntityPath değerinden önce gelen noktalı virgülleri kaldırmayı unutmayın.
Dosyayı kaydedin.
Daha sonra bir komut penceresi açıp, TelcoGenerator uygulamasının sıkıştırmasını açtığınız klasöre geçin. Ardından aşağıdaki komutu girin:
.\telcodatagen.exe 1000 0.2 2Bu komut aşağıdaki parametreleri alır:
- Saat başına arama verisi kaydının sayısı.
- Sahtekarlık olasılığının yüzdesi, uygulamanın ne sıklıkta sahte arama benzetimi gerçekleştirmesi gerektiği. 0.2 değeri arama kayıtlarının %20'sinin sahte görüneceğini anlamına gelir.
- Saat cinsinden süre, uygulamanın çalışması gereken saat sayısı. Ayrıca, komut satırına işlemi sonlandırarak (Ctrl+C) uygulamayı istediğiniz zaman durdurabilirsiniz.
Birkaç saniye sonra uygulama, telefon araması kayıtlarını olay hub'ına gönderirken ekranda bu kayıtları görüntülemeye başlar. Telefon araması verileri aşağıdaki alanları içerir:
Kayıt Tanım CallrecTime Arama başlangıç zamanı için zaman damgası. SwitchNum Aramayı bağlamak için kullanılan telefon anahtarı. Bu örnekte anahtarlar, kaynağın ülkeyi/bölgeyi (ABD, Çin, Birleşik Krallık, Almanya veya Avustralya) temsil eden dizelerdir. CallingNum Arayanın telefon numarası. CallingIMSI Uluslararası Mobil Abone Kimliği (IMSI). Bu, arayanın benzersiz tanımlayıcısıdır. CalledNum Arama alıcısının telefon numarası. CalledIMSI Uluslararası Mobil Abone Kimliği (IMSI). Bu, arama alıcısının benzersiz tanımlayıcısıdır.
Akış Analizi işi oluşturma
Arama olaylarından oluşan bir akışa sahip olduğunuza göre artık olay hub'ından veri okuyan bir Stream Analytics işi oluşturabilirsiniz.
Stream Analytics bir iş oluşturmak için Azure Portalgidin.
Kaynak oluştur ve Stream Analytics işi ara ' yı seçin. Stream Analytics iş kutucuğunu seçin ve Oluştur' u seçin.
Yeni Stream Analytics işi formunu aşağıdaki değerlerle doldurun:
Ayar Önerilen değer Açıklama İş adı ASATutorial Olay hub'ı ad alanını tanımlamak için benzersiz bir ad. Abonelik <Your subscription> İşi oluşturmak istediğiniz Azure aboneliğini seçin. Kaynak grubu MyASADemoRG Var olanı kullan seçeneğini belirleyin ve hesabınız için yeni bir kaynak grubu adı girin. Konum Batı ABD 2 İşin dağıtılabileceği konum. En iyi performans için ve bölgeler arasında veri aktarımına yönelik ödeme yapmamanız için işin ve olay hub’ının aynı bölgeye yerleştirilmesi önerilir. Barındırma ortamı Bulut Stream Analytics işleri buluta veya uca dağıtılabilir. Bulut, Azure bulutuna dağıtmanıza olanak tanır ve Edge bir IoT Edge cihazına dağıtmanıza olanak tanır. Akış birimleri 1 Akış birimleri, bir işin yürütülmesi için gereken bilgi işlem kaynaklarını temsil eder. Varsayılan olarak, bu değer 1 olarak ayarlanır. Akış birimlerini ölçeklendirme hakkında bilgi edinmek için akış birimlerini anlama ve ayarlama başlıklı makaleye bakın. Kalan ayarlarda varsayılan seçenekleri kullanın, Oluştur' u seçin ve dağıtımın başarılı olmasını bekleyin.

İş girişi yapılandırma
Bir sonraki adım, önceki bölümde oluşturduğunuz olay hub'ını kullanarak işin veri okuyacağı bir giriş kaynağı tanımlamaktır.
Azure portal tüm kaynaklar sayfasını açın ve asaöğreticisi Stream Analytics işini bulun.
Stream Analytics işinin Iş topolojisi bölümünde girişler' i seçin.
+ Akış girişi ekle'yi ve Olay hub'ı girişini seçin. Giriş formunu aşağıdaki değerlerle doldurun:
Ayar Önerilen değer Açıklama Girdi diğer adı CallStream Girişinizi tanımlayan bir kolay ad girin. Giriş diğer adı alfasayısal karakter, kısa çizgi ve alt çizgi içerebilir, ayrıca 3 ila 63 karakter uzunluğunda olmalıdır. Abonelik <Your subscription> Olay hub’ını oluşturduğunuz Azure aboneliğini seçin. Olay hub’ı Stream Analytics işiyle aynı abonelikte veya bundan farklı bir abonelikte olabilir. Olay hub’ı ad alanı asaTutorialEventHub Önceki bölümde oluşturduğunuz olay hub’ı ad alanını seçin. Geçerli aboneliğinizde kullanılabilen tüm olay hub’ı ad alanları açılır menüde listelenir. Olay Hub'ı adı MyEventHub Önceki bölümde oluşturduğunuz olay hub’ını seçin. Geçerli aboneliğinizde kullanılabilen tüm olay hub’ları açılır menüde listelenir. Olay Hub'ı ilke adı MyPolicy Önceki bölümde oluşturduğunuz olay hub’ı paylaşılan erişim ilkesini seçin. Geçerli aboneliğinizde kullanılabilen tüm olay hub’ı ilkeleri açılır menüde listelenir. Kalan ayarlarda varsayılan seçenekleri kullanın ve Kaydet’i seçin.

İş çıkışını yapılandırma
Son adım, işin dönüştürülen verileri yazabilmesi için bir çıkış havuzu tanımlamaktır. Bu öğreticide verileri Power BI ile çıkarıp görselleştireceksiniz.
Azure portal, tüm kaynaklar' ı açın ve asaöğreticisi Stream Analytics işini seçin.
Stream Analytics işinin Iş topolojisi bölümünde çıktılar seçeneğini belirleyin.
+ Power BI ekle' yi seçin > . Ardından Yetkilendir ' i seçin ve Power BI kimlik doğrulaması yapmak için istemleri izleyin.
Çıkış formunu aşağıdaki ayrıntılarla doldurup Kaydet' i seçin:
Ayar Önerilen değer Çıktı diğer adı MyPBIoutput Grup çalışma alanı Çalışma alanım Veri kümesi adı ASAdataset Tablo adı ASATable Kimlik doğrulaması modu Kullanıcı belirteci 
Bu öğretici, Kullanıcı belirteci kimlik doğrulama modunu kullanır. Yönetilen kimliği kullanmak için, bkz. Azure Stream Analytics işinizin kimliğini doğrulamak Için yönetilen kimliği kullanma Power BI.
Gerçek zamanlı verileri dönüştürmek için sorgular oluşturma
Bu noktada, gelen veri akışını okumak üzere ayarlanmış bir Stream Analytics işi vardır. Sonraki adım, verileri gerçek zamanlı olarak analiz eden bir sorgu oluşturmaktır. sorgular, Stream Analytics özgü bazı uzantılara sahip SQL benzeri bir dil kullanır.
Öğreticinin bu bölümünde, bir giriş akışını Analize dönüştürebilmeniz için birkaç yol öğrenmek üzere birkaç sorgu oluşturup test edersiniz.
Burada oluşturduğunuz sorgular ekranda yalnızca dönüştürülen verileri görüntüler. Sonraki bölümde, dönüştürülmüş verileri Power BI yazılacak.
Dil hakkında daha fazla bilgi edinmek için bkz. Azure Stream Analytics sorgu dili başvurusu.
Doğrudan sorgu kullanarak test etme
Her olayı arşivlemek istiyorsanız, olay yükünde tüm alanları okumak için bir geçişli sorgu kullanabilirsiniz.
Azure portal Stream Analytics işinize gidin ve iş topolojisi altında sorgu ' yı seçin.
Sorgu penceresinde şu sorguyu girin:
SELECT * FROM CallStreamNot
SQL olduğu gibi, anahtar sözcükler büyük/küçük harfe duyarlı değildir ve boşluklar önemli değildir.
Bu sorguda,
CallStreamgirişi oluşturduğunuzda belirttiğiniz diğer addır. Farklı bir diğer ad kullandıysanız bunun yerine bu adı kullanın.Test sorgusunu seçin.
Stream Analytics işi, girişte örnek verilere karşı sorguyu çalıştırır ve çıktıyı pencerenin alt kısmında görüntüler. Sonuçlar, Olay Hub 'ının ve akış analizi işinin doğru şekilde yapılandırıldığını gösterir.
Gördüğünüz kayıtların tam sayısı, örnekte kaç kayıt yakalandığına bağlıdır.
Sütun projeksiyonu kullanarak alan sayısını azaltma
Çoğu durumda, analizinizden giriş akışındaki tüm sütunlara gerek yoktur. Daha küçük bir döndürülen alan kümesini doğrudan geçiş sorgusundan proje yapmak için bir sorgu kullanabilirsiniz.
Aşağıdaki sorguyu çalıştırın ve çıkışa dikkat edin.
SELECT CallRecTime, SwitchNum, CallingIMSI, CallingNumCalledNum
FROM
CallStream
Bölgeye göre gelen çağrıları say: toplama ile atlayan pencere
Bölge başına gelen çağrı sayısını saymak istediğinizi varsayalım. Akış verileri ' nde, sayma gibi toplam işlevleri gerçekleştirmek istediğinizde, veri akışının kendisi etkili bir şekilde sınırsız olduğundan akışı zamana bağlı birimlere segmentleyebilirsiniz. Bunu bir akış analizi pencere işlevikullanarak yapabilirsiniz. Daha sonra bu pencere içindeki verilerle birim olarak çalışabilirsiniz.
Bu dönüşüm için, her bir pencere, gruplandırmanız ve toplayabilmeniz gereken ayrı bir veri kümesine sahip olmak için, çakışmayacak bir dizi zamana bağlı pencere istiyorsunuz. Bu pencere türü, atlayan pencere olarak adlandırılır. Atlayan penceresinde, SwitchNum aramanın kaynaklandığı ülkeyi/bölgeyi temsil eden, tarafından gruplanmış gelen çağrıların sayısını alabilirsiniz.
Aşağıdaki sorguyu sorgu düzenleyicisine yapıştırın:
SELECT System.Timestamp as WindowEnd, SwitchNum, COUNT(*) as CallCount FROM CallStream TIMESTAMP BY CallRecTime GROUP BY TUMBLINGWINDOW(s, 5), SwitchNumBu sorgu,
Timestamp ByFROMiç içe geçmiş pencereyi tanımlamak için kullanılacak giriş akışındaki zaman damgası alanını belirtmek için yan tümcesindeki anahtar sözcüğünü kullanır. Bu durumda pencere, verileriCallRecTimeher kayıttaki alana göre segmentlere ayırır. (Alan belirtilmemişse, Pencereleme işlemi her bir olayın olay hub 'ına ulaştığı saati kullanır. Stream Analytics sorgu dili başvurusu' nda "varış saati vs uygulama süresi" başlığına bakın.Projeksiyon eklemeleri
System.Timestamp, her pencerenin sonuna yönelik bir zaman damgası döndürür.Atlayan bir pencere kullanmak istediğinizi belirtmek için, yan tümcesindeki Tumblingwindow işlevini kullanın
GROUP BY. İşlevinde, bir zaman birimi (bir mikro saniyenin bir güne kadar bir süre) ve pencere boyutu (kaç birim) belirtirsiniz. Bu örnekte, atlayan pencere 5 saniyelik aralıklardan oluşur; bu nedenle, her 5 saniyelik çağrı için ülkeye/bölgeye göre bir sayı alacaksınız.Test sorgusunu seçin. Sonuçlarda, Windowend altındaki zaman damgalarının 5 saniyelik artışlarla olduğunu unutmayın.
Kendi kendine birleşim kullanarak SIM sahteciliği Algıla
Bu örnekte, aynı kullanıcıdan kaynaklanan, ancak bir diğeri 5 saniyelik farklı konumlarda olan çağrılar için sahte kullanım yapmayı düşünün. Örneğin, bir kullanıcı mantıksal olarak aynı anda hem ABD’den hem de Avustralya’dan arama yapamaz.
Bu durumları denetlemek için akış verilerinin kendine katılımını, değere göre akışa eklemek için kullanabilirsiniz CallRecTime . Daha sonra CallingIMSI değerin (kaynak numarası) aynı olduğu, ancak SwitchNum değer (ülke/kaynak bölge) aynı olmadığı durumlarda çağrı kayıtları arayabilirsiniz.
Akış verileriyle birleştirme kullandığınızda, birleştirme, eşleşen satırların zaman içinde ne kadar ayrılabileceği hakkında bazı sınırlar sağlamalıdır. Daha önce belirtildiği gibi, akış verileri etkin bir şekilde sonsuz olur. İlişki için zaman sınırları, ON işlevi kullanılarak birleştirmenin yan tümcesi içinde belirtilir DATEDIFF . Bu durumda, birleşimi 5 saniyelik çağrı verileri aralığını temel alır.
Aşağıdaki sorguyu sorgu düzenleyicisine yapıştırın:
SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls INTO "MyPBIoutput" FROM "CallStream" CS1 TIMESTAMP BY CallRecTime JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime ON CS1.CallingIMSI = CS2.CallingIMSI AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5 WHERE CS1.SwitchNum != CS2.SwitchNum GROUP BY TumblingWindow(Duration(second, 1))bu sorgu, birleşimdeki işlev hariç herhangi bir SQL joın gibidir
DATEDIFF. Bu sürümü, StreamDATEDIFFAnalytics 'e özeldir veON...BETWEENyan tümcesinde görünmelidir. Parametreler bir zaman birimidir (Bu örnekteki saniyeler) ve JOIN için iki kaynağın diğer adları. bu, standart SQLDATEDIFFişlevinden farklıdır.WHEREYan tümcesi, sahte çağrıyı işaret eden koşulu içerir: kaynak Anahtarlar aynı değildir.Test sorgusunu seçin. Çıktıyı gözden geçirin ve sorguyu Kaydet' i seçin.
İş başlatma ve çıkışı görselleştirme
İşi başlatmak için işe Genel Bakış ' a gidin ve Başlat' ı seçin.
İş çıkışı başlangıç saati için Şimdi’yi seçip Başlat seçeneğini belirleyin. İş durumunu bildirim çubuğunda durumu görüntüleyebilirsiniz.
İş başarıyla tamamlandıktan sonra Power BI'a gidip iş veya okul hesabınızla oturum açın. Stream Analytics işi sorgusu sonuç üretiyorsa oluşturduğunuz ASAdataset veri kümesi Veri kümeleri sekmesinde yer alır.
Power BI çalışma alanınızdan + Oluştur'u seçerek Fraudulent Calls adında yeni bir pano oluşturun.
Pencerenin üst kısmında Düzenle ve kutucuk Ekle' yi seçin. Ardından Özel Akış Verileri'ni ve İleri'yi seçin. Veri kümeleriniz bölümünden ASAdataset girişini seçin. Görselleştirme türü açılan menüsünden kart ' ı seçin ve alanlara sahte çağrılar ekleyin . İleri'yi seçip ad belirledikten sonra Uygula'yı seçerek kutucuğu oluşturun.

Aşağıdaki seçeneklerle 5. adımı tekrar uygulayın:
- Görselleştirme Türü’ne geldiğinizde Çizgi grafik seçeneğini belirleyin.
- Eksen ekleyin ve windowend seçeneğini belirleyin.
- Değer ekleyip fraudulentcalls seçeneğini belirleyin.
- Görüntülenecek zaman penceresini için son 10 dakikayı seçin.
İki kutucuk da eklendikten sonra panonuz aşağıdaki örneğe benzer olmalıdır. olay hub 'ı gönderen uygulamanız ve akış analizi uygulamanız çalışıyorsa, Power BI panonuz düzenli aralıklarla yeni veri geldiğinde güncelleştiğine dikkat edin.

Power BI panonuzu bir Web uygulamasına katıştırma
öğreticinin bu bölümünde, panonuzu eklemek için Power BI ekibi tarafından oluşturulan bir örnek ASP.NET web uygulamasını kullanacaksınız. Pano ekleme hakkında daha fazla bilgi için Power BI ile ekleme başlıklı makaleye bakın.
uygulamayı ayarlamak için powerbı-Developer-Samples GitHub deposuna gidin ve verilerin sahip olduğu kullanıcı bölümündeki yönergeleri izleyin ( tümleştirin-web-app alt bölümünün altındaki yeniden yönlendirme ve ana sayfa url 'lerini kullanın). pano örneğini kullandığımızdan, GitHub deposundabulunan tümleştirin-web-app örnek kodunu kullanın. Uygulamayı tarayıcınızda çalıştırmaya başladıktan sonra, daha önce oluşturduğunuz panoyu web sayfasına eklemek için şu adımları uygulayın:
Power BI için oturum aç' ı seçin. bu, uygulamaya Power BI hesabınızdaki panolara erişim izni verir.
Hesabınızın Panolarını bir tabloda görüntüleyen Pano Al düğmesini seçin. Daha önce oluşturduğunuz panonun adını, PowerBI-Embedded-panosunu bulun ve karşılık gelen EmbedUrl kopyalayın.
Son olarak, EmbedUrl’yi ilgili metin alanına yapıştırıp Panoyu Ekle seçeneğini belirleyin. Artık bir web uygulamasının içine eklenen panoyu görüntüleyebilirsiniz.
Sonraki adımlar
Bu öğreticide, basit bir Stream Analytics işi oluşturdunuz, gelen verileri analiz ettiniz ve sonuçları bir Power BI panosunda sundunuz. Stream Analytics işleri hakkında daha fazla bilgi edinmek için sonraki öğreticiye geçin: