Öğretici: Stream Analytics ile sahte arama verilerini analiz etme ve Sonuçları Power BI panosunda görselleştirme
Bu öğreticide, Azure Stream Analytics'i kullanarak telefon araması verilerini analiz etme adımları gösterilmektedir. Bir istemci uygulaması tarafından oluşturulan telefon araması verileri, Stream Analytics işi tarafından algılanan sahte çağrılar içerir. Kredi kartı dolandırıcılığı veya kimlik hırsızlığı gibi diğer dolandırıcılık algılama türleri için bu öğreticideki teknikleri kullanabilirsiniz.
Bu öğreticide, aşağıdaki görevleri gerçekleştireceksiniz:
- Örnek telefon araması verileri oluşturun ve Azure Event Hubs'a gönderin.
- Stream Analytics işi oluşturma.
- İş girişini ve çıkışını yapılandırın.
- Sahte çağrıları filtrelemek için sorgular tanımlayın.
- İşi test edin ve başlatın.
- Power BI'da sonuçları görselleştirme.
Önkoşullar
Başlamadan önce aşağıdaki adımları tamamladığınızdan emin olun:
- Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
- Microsoft İndirme Merkezi'nden TelcoGenerator.zip telefon araması olay oluşturucu uygulamasını indirin veya GitHub'dan kaynak kodunu alın.
- Bir Power BI hesabınız olması gerekir.
Azure'da oturum açma
Azure Portal’ında oturum açın.
Olay hub’ı oluşturma
Stream Analytics'in sahte çağrı veri akışını analiz etmeden önce bir olay hub'ına bazı örnek veriler göndermeniz gerekir. Bu öğreticide, Azure Event Hubs kullanarak Azure'a veri gönderirsiniz.
Olay hub'ı oluşturmak ve bu olay hub'ına çağrı verileri göndermek için aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Soldaki menüden Tüm hizmetler'i seçin, nesnelerin İnterneti'ni seçin, fareyi Event Hubs'ın üzerine getirin ve + (Ekle) düğmesini seçin.
Ad Alanı Oluştur sayfasında şu adımları izleyin:
Olay hub'ını oluşturmak istediğiniz Azure aboneliğini seçin.
Kaynak grubu için Yeni oluştur'u seçin ve kaynak grubu için bir ad girin. Event Hubs ad alanı bu kaynak grubunda oluşturulur.
Ad alanı adı için Event Hubs ad alanı için benzersiz bir ad girin.
Konum için, ad alanını oluşturmak istediğiniz bölgeyi seçin.
Fiyatlandırma katmanı için Standart'ı seçin.
Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.
Ad alanı oluşturma sihirbazının Gözden geçir + oluştur sayfasında, tüm ayarları gözden geçirdikten sonra sayfanın alt kısmındaki Oluştur'u seçin.
Ad alanı başarıyla dağıtıldıktan sonra Kaynağa git'i seçerek Event Hubs Ad Alanı sayfasına gidin.
Event Hubs Ad Alanı sayfasında, komut çubuğunda +Event Hub'ı seçin.
Olay Hub'ı Oluştur sayfasında, olay hub'ı için bir Ad girin. Bölüm Sayısı'nı 2 olarak ayarlayın. Kalan ayarlardaki varsayılan seçenekleri kullanın ve Gözden geçir ve oluştur'u seçin.
Gözden geçir ve oluştur sayfasında, sayfanın alt kısmındaki Oluştur'u seçin. 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 Azure Event Hubs'a veri gönderebilmesi için olay hub'ına erişim izni veren bir ilke olması gerekir. Erişim ilkesi, yetkilendirme bilgilerini içeren bir bağlantı dizesi oluşturur.
Event Hubs Ad Alanı sayfasında soldaki menüden Paylaşılan erişim ilkeleri'ni seçin.
İlke listesinden RootManageSharedAccessKey öğesini seçin.
Ardından Bağlantı dizesi - birincil anahtar'ın 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>
bağlantı dizesi noktalı virgülle ayrılmış birden çok anahtar-değer çifti içerdiğine dikkat edin: Endpoint, SharedAccessKeyName ve SharedAccessKey.
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.
TelcoGenerator\TelcoGenerator\telcodatagen.exe.config
Dosyayı istediğiniz bir metin düzenleyicisinde açın Birden.config
fazla dosya vardır, bu nedenle doğru dosyayı açtığınızdan emin olun.Config dosyasındaki
<appSettings>
öğesini şu bilgilerle güncelleştirin:- EventHubName anahtarının değerini bağlantı dizesi sonundaki EntityPath değerine ayarlayın.
- Microsoft.ServiceBus.ConnectionString anahtarının değerini ad alanına bağlantı dizesi olarak ayarlayın. Ad alanı değil olay hub'ına bağlantı dizesi kullanıyorsanız, sonundaki değeri (
;EntityPath=myeventhub
) kaldırınEntityPath
. EntityPath değerinden önceki 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 2
Bu 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 yaklaşık %20'sinin sahte göründüğü anlamına gelir.
- Saat cinsinden süre, uygulamanın çalışması gereken saat sayısı. Ayrıca, komut satırında işlemi (Ctrl+C) sonlandırarak 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, çıkış ülkesini/bölgesini (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 işi oluşturmak için Azure portala gidin.
- Kaynak oluştur'u seçin ve Stream Analytics işini arayın. Stream Analytics iş kutucuğunu seçin ve Oluştur'u seçin.
- Yeni Stream Analytics işi sayfasında şu adımları izleyin:
Abonelik için Event Hubs ad alanını içeren aboneliği seçin.
Kaynak grubu için daha önce oluşturduğunuz kaynak grubunu seçin.
Örnek ayrıntıları bölümünde, Ad için Stream Analytics işi için benzersiz bir ad girin.
Bölge için Stream Analytics işini oluşturmak istediğiniz bölgeyi seçin. En iyi performans için işi ve olay hub'ını aynı bölgeye yerleştirmenizi ve bölgeler arasında veri aktarımı için ödeme yapmamanızı öneririz.
Barındırma ortamı< için henüz seçili değilse Bulut'a tıklayın. Stream Analytics işleri buluta veya uca dağıtılabilir. Bulut, Azure Bulut'a dağıtmanıza ve Edge ise bir IoT Edge cihazına dağıtmanıza olanak tanır.
Akış birimleri için 1'i seçin. 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.
Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.
- Gözden geçir ve oluştur sayfasında ayarları gözden geçirin ve ardından Oluştur'u seçerek Stream Analytics işini oluşturun.
- İş dağıtıldıktan sonra Kaynağa git'i seçerek Stream Analytics iş sayfasına gidin.
İş 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.
Stream Analytics iş sayfasının soldaki menüde yer alan İş Topolojisi bölümünde Girişler'i seçin.
Girişler sayfasında + Giriş ve Olay hub'ı ekle'yi seçin.
Olay hub'ı sayfasında şu adımları izleyin:
Giriş diğer adı olarak CallStream girin. Giriş diğer adı, girişinizi tanımlamak için kolay bir addır. 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 için 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.
Event Hubs ad alanı için önceki bölümde oluşturduğunuz Event Hubs ad alanını seçin. Geçerli aboneliğinizde kullanılabilen tüm ad alanları açılan listede listelenir.
Olay hub'ı adı için önceki bölümde oluşturduğunuz olay hub'ını seçin. Seçili ad alanında kullanılabilen tüm olay hub'ları açılan listede listelenir.
Olay hub'ı tüketici grubu için Yeni oluştur seçeneğini seçili tutarak olay hub'ına yeni bir tüketici grubu oluşturun. Her Stream Analytics işi için ayrı bir tüketici grubu kullanmanızı öneririz. Hiçbir tüketici grubu belirtilmezse Stream Analytics işi tüketici grubunu kullanır
$Default
. bir iş kendi kendine birleşim içerdiğinde veya birden çok girişi olduğunda, daha sonra bazı girişler birden fazla okuyucu tarafından okunabilir. Bu durum, tek bir tüketici grubundaki okuyucu sayısını etkiler.Kimlik doğrulama modu için Bağlantı dizesi'ne tıklayın. Bu seçenekle öğreticiyi test etmek daha kolaydır.
Olay hub'ı ilke adı için Var olanı kullan'ı ve ardından daha önce oluşturduğunuz ilkeyi seçin.
Sayfanın alt kısmındaki Kaydet'i seçin.
İş çıkışını yapılandırma
Son adım, işin dönüştürülen verileri yazabileceği bir çıkış havuzu tanımlamaktır. Bu öğreticide verileri Power BI ile çıkarıp görselleştireceksiniz.
Azure portalında Tüm kaynaklar'ı açın ve ASATutorial Stream Analytics işini seçin.
Stream Analytics işinin İş Topolojisi bölümünde Çıkışlar seçeneğini belirleyin.
+ Çıkış>Power BI'ı ekle'yi seçin.
Çıktı formunu aşağıdaki ayrıntılarla doldurun:
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 Yetkile'yi seçin ve Power BI kimliğini doğrulamak için istemleri izleyin.
Power BI sayfasının alt kısmındaki Kaydet'i seçin.
Bu öğreticide Kullanıcı belirteci kimlik doğrulama modu kullanılır. Yönetilen Kimlik'i kullanmak için bkz . Power BI'da Azure Stream Analytics işinizin kimliğini doğrulamak için Yönetilen Kimlik kullanma.
Gerçek zamanlı verileri dönüştürmek için sorgu oluşturma
Bu noktada, gelen veri akışını okumak için ayarlanmış bir Stream Analytics işiniz vardır. Sonraki adım, verileri gerçek zamanlı olarak analiz eden bir sorgu oluşturmaktır. Sorgular, Stream Analytics'e özgü bazı uzantıları olan SQL benzeri bir dil kullanır.
Öğreticinin bu bölümünde, bir giriş akışını analiz için dönüştürmenin birkaç yolunu öğrenmek için birkaç sorgu oluşturup test edersiniz.
Burada oluşturduğunuz sorgular yalnızca dönüştürülen verileri ekrana görüntüler. Sonraki bir bölümde, dönüştürülen verileri Power BI'a yazacaksınız.
Dil hakkında daha fazla bilgi edinmek için bkz . Azure Stream Analytics Sorgu Dili Başvurusu.
Doğrudan sorgu kullanarak test edin
Her olayı arşivleme istiyorsanız, olayın yükündeki tüm alanları okumak için bir geçiş sorgusu kullanabilirsiniz.
Azure portalında Stream Analytics işinize gidin ve soldaki menüden İş topolojisi'nin altında Sorgu'yu seçin.
Sorgu penceresine şu sorguyu girin:
SELECT * FROM CallStream
Not
SQL'de olduğu gibi anahtar sözcükler büyük/küçük harfe duyarlı değildir ve boşluk önemli değildir.
Bu sorguda,
CallStream
girişi oluştururken belirttiğiniz diğer addır. Farklı bir diğer ad kullandıysanız, bunun yerine bu adı kullanın.Sorguyu test et'i seçin.
Stream Analytics işi girişten alınan örnek verilere karşı sorguyu çalıştırır ve çıktıyı pencerenin alt kısmında görüntüler. Sonuçlar Event Hubs ve Streaming Analytics işinin doğru yapılandırıldığını gösterir.
Gördüğünüz kayıtların tam sayısı, örnekte kaç kaydın yakalandığına bağlıdır.
Sütun projeksiyonu kullanarak alan sayısını azaltma
Çoğu durumda, çözümlemeniz giriş akışındaki tüm sütunlara ihtiyaç duymaz. Sorguyu kullanarak, geçiş sorgusundan daha küçük bir döndürülen alan kümesi yansıtabilirsiniz.
Aşağıdaki sorguyu çalıştırın ve çıktıya dikkat edin.
SELECT CallRecTime, SwitchNum, CallingIMSI, CallingNum, CalledNum
INTO
[MyPBIoutput]
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ış verilerinde, sayma gibi toplama işlevlerini gerçekleştirmek istediğinizde, veri akışının kendisi etkili bir şekilde sonsuz olduğundan akışı zamansal birimler halinde segmentlere ayırmanız gerekir. Bunu bir Streaming Analytics pencere işlevi kullanarak yaparsınız. Daha sonra bu pencerenin içindeki verilerle birim olarak çalışabilirsiniz.
Bu dönüşüm için, örtüşmeyen bir zaman pencereleri dizisi istiyorsunuz; her pencerede gruplandırabileceğiniz ve toplayabileceğiniz ayrık bir veri kümesi var. Bu tür bir pencere, Atlayan pencere olarak adlandırılır. Atlayan penceresinde, aramanın kaynaklandığı ülkeyi/bölgeyi temsil eden, ile gruplandırılmış SwitchNum
gelen aramaları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), SwitchNum
Bu sorgu, Tumbling penceresini tanımlamak için giriş akışında hangi zaman damgası alanının kullanılacağını belirtmek için yan tümcesindeki anahtar sözcüğünü
FROM
kullanırTimestamp By
. Bu durumda, pencere verileri her kayıttaki alana göreCallRecTime
segmentlere böler. (Alan belirtilmezse, pencereleme işlemi her olayın olay hub'ına ulaştığı zamanı kullanır. Stream Analytics Sorgu Dili Başvurusu'nda "Varış Zamanı ve Uygulama Zamanı" bölümüne bakın.Projeksiyon, her pencerenin sonu için bir zaman damgası döndüren öğesini içerir
System.Timestamp
.Atlayan pencere kullanmak istediğinizi belirtmek için yan tümcesinde
GROUP BY
TUMBLINGWINDOW işlevini kullanırsınız. İşlevde bir zaman birimi (bir mikrosaniyeden bir güne kadar herhangi bir yerde) ve bir pencere boyutu (kaç birim) belirtirsiniz. Bu örnekte, Atlayan pencere 5 saniyelik aralıklardan oluşur, bu nedenle her 5 saniyelik çağrılar için ülkeye/bölgeye göre bir sayı alırsınız.Sorguyu test et'i seçin. Sonuçlarda, WindowEnd altındaki zaman damgalarının 5 saniyelik artışlarla olduğuna dikkat edin.
Kendi kendine birleşim kullanarak SIM sahtekarlığı algılama
Bu örnekte, sahte kullanımın aynı kullanıcıdan gelen ancak birbirinden 5 saniye sonra farklı konumlarda bulunan çağrılar olduğunu 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 kendi kendine birleşimini kullanarak akışı değere göre CallRecTime
kendi kendine birleştirebilirsiniz. Ardından, değerin CallingIMSI
(kaynak numara) aynı olduğu ancak SwitchNum
değerin (kaynak ülke/bölge) aynı olmadığı çağrı kayıtlarını arayabilirsiniz.
Akış verileriyle birleştirme kullandığınızda, birleştirmenin eşleşen satırların zaman içinde ne kadar ayrılabileceğine ilişkin bazı sınırlar sağlaması gerekir. Daha önce belirtildiği gibi, akış verileri etkili bir şekilde sonsuzdur. İlişkinin zaman sınırları, işlevi kullanılarak DATEDIFF
birleştirme yan tümcesinde belirtilirON
. Bu durumda birleştirme, 5 saniyelik çağrı verisi 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ştirmedeki
DATEDIFF
işlev dışında herhangi bir SQL birleşimi gibidir. Bu sürümüDATEDIFF
Streaming Analytics'e özgüdür ve yan tümcesindeON...BETWEEN
görünmesi gerekir. Parametreler bir zaman birimidir (bu örnekteki saniyeler) ve birleştirme için iki kaynağın diğer adlarıdır. Bu işlev standart SQLDATEDIFF
işlevinden farklıdır.WHERE
yan tümcesi, sahte çağrıya bayrak ekleyen koşulu içerir: kaynak anahtarlar aynı değildir.Sorguyu test et'i seçin. Çıkışı gözden geçirin ve ardından 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.
Kutucuk ekle penceresinde Özel Akış Verileri ve İleri'yi seçin.
Veri Kümeleriniz'in altında ASAdataset'i ve ardından İleri'yi seçin.
Görselleştirme türü açılan listesinden Kart'ı seçin, Alanlar'a sahte aramalar ekleyin ve ardından İleri'yi seçin.
Kutucuk için bir ad girin (örneğin, Sahte aramalar) ve ardından 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.
- Bir değer ekleyin ve sahte aramaları seçin.
- Görüntülenecek zaman penceresini için son 10 dakikayı seçin.
Her iki kutucuk da eklendikten sonra panonuz aşağıdaki örneğe benzemelidir. Olay hub'ı gönderen uygulamanız ve Streaming Analytics uygulamanız çalışıyorsa Power BI panonuzun yeni veriler geldikçe düzenli aralıklarla güncelleştirildiğini görebilirsiniz.
Power BI Panonuzu web uygulamasına ekleme
Öğreticinin bu bölümünde, panonuzu eklemek için Power BI ekibi tarafından oluşturulan örnek bir ASP.NET web uygulaması kullanırsı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 Power BI-Developer-Samples GitHub deposuna gidin ve Verilerin Sahibi Kullanıcı bölümü altındaki yönergeleri izleyin (integrate-web-app alt bölümündeki yeniden yönlendirme ve giriş sayfası URL'lerini kullanın). Pano örneğini kullandığımızdan GitHub deposunda bulunan integrate-web-app örnek kodunu kullanın. Uygulamayı tarayıcınızda çalıştırdıktan sonra, daha önce oluşturduğunuz panoyu web sayfasına eklemek için şu adımları izleyin:
Uygulamaya Power BI hesabınızdaki panolara erişim veren Power BI'da oturum aç'ı seçin.
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-dashboard) bulun ve ilgili EmbedUrl’yi 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: