Tutorial: Menganalisis data panggilan penipuan dengan Azure Stream Analytics dan memvisualisasikan hasil di dasbor Power BI
Tutorial ini menunjukkan kepada Anda cara menganalisis data panggilan telepon menggunakan Azure Stream Analytics. Data panggilan telepon, yang dihasilkan oleh aplikasi klien, berisi panggilan penipuan, yang dideteksi oleh pekerjaan Azure Stream Analytics. Anda dapat menggunakan teknik dari tutorial ini untuk jenis deteksi penipuan lainnya, seperti penipuan kartu kredit atau pencurian identitas.
Dalam tutorial ini, Anda melakukan tugas berikut:
- Menghasilkan contoh data panggilan telepon dan mengirimkannya ke Azure Event Hubs.
- Membuat pekerjaan Azure Stream Analytics.
- Mengonfigurasi input dan output pekerjaan.
- Menentukan kueri untuk memfilter panggilan penipuan.
- Menguji dan memulai pekerjaan.
- Memvisualisasikan hasil di Power BI.
Prasyarat
Sebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah berikut:
- Jika Anda tidak memiliki langganan Azure, buat akun gratis.
- Unduh aplikasi generator peristiwa panggilan telepon, TelcoGenerator.zip dari Microsoft Download Center atau dapatkan kode sumber dari GitHub.
- Anda memerlukan akun Power BI .
Masuk ke Azure
Masuk ke portal Azure.
Membuat pusat aktivitas
Anda perlu mengirim beberapa data sampel ke pusat aktivitas sebelum Azure Stream Analytics dapat menganalisis aliran data panggilan penipuan. Dalam tutorial ini, Anda mengirim data ke Azure dengan menggunakan Azure Event Hubs.
Gunakan langkah berikut untuk membuat pusat aktivitas dan mengirim data panggilan ke pusat aktivitas tersebut:
Masuk ke portal Azure.
Pilih Semua layanan di menu sebelah kiri, pilih Internet of things, arahkan mouse ke Azure Event Hubs, lalu pilih tombol + (Tambahkan).
Pada halaman Buat Namespace , ikuti langkah-langkah berikut ini:
Pilih langganan Azure tempat Anda ingin membuat pusat aktivitas.
Untuk Grup sumber daya, pilih Buat baru dan masukkan nama untuk grup sumber daya. Namespace layanan Azure Event Hubs dibuat dalam grup sumber daya ini.
Untuk nama Namespace, masukkan nama unik untuk namespace Layanan Pusat Aktivitas.
Untuk Lokasi, pilih wilayah tempat Anda ingin membuat namespace layanan.
Untuk Tingkat harga, pilih Standar.
Pilih Tinjau + buat di bagian bawah halaman.
Pada halaman Tinjau + buat wizard pembuatan namespace, pilih Buat di bagian bawah halaman setelah meninjau semua pengaturan.
Setelah namespace layanan berhasil disebarkan, pilih Buka sumber daya untuk menavigasi ke halaman Event Hubs Namespace.
Pada halaman Event Hubs Namespace, pilih +Azure Event Hub di bilah perintah.
Pada halaman Buat Azure Event Hub, masukkan Nama untuk pusat aktivitas. Atur Jumlah Partisi ke 2. Gunakan opsi default di pengaturan yang tersisa dan pilih Tinjau + buat.
Pada halaman Tinjau + buat, pilih Buat di bagian bawah halaman. Kemudian tunggu penyebaran berhasil.
Berikan akses ke event hub dan dapatkan string koneksi
Sebelum aplikasi dapat mengirim data ke Azure Event Hubs, event hub harus memiliki kebijakan yang mengizinkan akses. Kebijakan akses menghasilkan string koneksi yang menyertakan informasi otorisasi.
Pada halaman Namespace Layanan Pusat Aktivitas, pilih Kebijakan akses bersama di menu sebelah kiri.
Pilih RootManageSharedAccessKey dari daftar kebijakan.
Kemudian, pilih tombol salin di samping String koneksi - kunci utama.
Tempelkan string koneksi ke editor teks. Anda memerlukan string koneksi ini di bagian berikutnya.
String koneksi terlihat sebagai berikut:
Endpoint=sb://<Your event hub namespace>.servicebus.windows.net/;SharedAccessKeyName=<Your shared access policy name>;SharedAccessKey=<generated key>
Perhatikan bahwa string koneksi berisi beberapa pasangan kunci-nilai yang dipisahkan dengan titik koma: Titik Akhir, SharedAccessKeyName, dan SharedAccessKey.
Mulai aplikasi generator peristiwa
Sebelum memulai aplikasi TelcoGenerator, Anda harus mengonfigurasinya untuk mengirim data ke Azure Event Hubs yang Anda buat sebelumnya.
Ekstrak isi file TelcoGenerator.zip ini.
Buka file
TelcoGenerator\TelcoGenerator\telcodatagen.exe.config
di editor teks pilihan Anda. Ada lebih dari satu file.config
, jadi pastikan Anda membuka yang benar.Perbarui elemen
<appSettings>
dalam file konfigurasi dengan detail berikut:- Atur nilai kunci EventHubName ke nilai EntityPath di akhir string koneksi.
- Atur nilai kunci Microsoft.ServiceBus.ConnectionString ke string koneksi ke namespace. Jika Anda menggunakan string koneksi ke pusat aktivitas, bukan namespace layanan, hapus
EntityPath
nilai (;EntityPath=myeventhub
) di akhir. Jangan lupa untuk menghapus titik koma yang mendahului nilai EntityPath.
Simpan file.
Selanjutnya buka jendela perintah dan ubah ke folder tempat Anda membuka mengekstrak file aplikasi TelcoGenerator. Masukkan perintah berikut:
.\telcodatagen.exe 1000 0.2 2
Perintah ini mengambil parameter berikut:
- Jumlah catatan data panggilan per jam.
- Persentase probabilitas penipuan, yaitu seberapa sering aplikasi harus mensimulasikan panggilan penipuan. Nilai 0,2 berarti bahwa sekitar 20% dari rekaman panggilan terlihat curang.
- Durasi dalam jam, yaitu jumlah jam aplikasi harus berjalan. Anda juga dapat menghentikan aplikasi kapan saja dengan mengakhiri proses (Ctrl+C) di baris perintah.
Setelah beberapa detik, aplikasi mulai menampilkan catatan panggilan telepon di layar saat aplikasi mengirimkannya ke event hub. Data panggilan telepon berisi bidang berikut ini:
Rekaman Definisi CallrecTime Tanda waktu untuk waktu mulai panggilan. SwitchNum Pengalih telepon yang digunakan untuk menyambungkan panggilan. Untuk contoh ini, pengalih adalah string yang mewakili negara/wilayah asal (AS, Tiongkok, Inggris, Jerman, atau Australia). CallingNum Nomor telepon penelepon. CallingIMSI Identitas Pelanggan Seluler Internasional (IMSI). Ini adalah pengidentifikasi unik penelepon. CalledNum Nomor telepon penerima panggilan. CalledIMSI Identitas Pelanggan Seluler Internasional (IMSI). Ini adalah pengidentifikasi unik penerima panggilan.
Membuat pekerjaan Azure Stream Analytics
Setelah memiliki streaming peristiwa panggilan, Anda dapat membuat pekerjaan Azure Stream Analytics yang membaca data dari event hub.
- Untuk membuat pekerjaan Stream Analytics, buka portal Azure.
- Pilih Buat sumber daya dan cari pekerjaan Azure Stream Analytics. Pilih petak pekerjaan Azure Stream Analytics dan pilih Buat.
- Pada halaman pekerjaan Analisis Aliran Baru, ikuti langkah-langkah berikut:
Untuk Langganan, pilih langganan yang berisi namespace layanan Azure Event Hubs.
Untuk Grup sumber daya, pilih grup sumber daya yang Anda buat sebelumnya.
Di bagian Detail instans, Untuk Nama, masukkan nama unik untuk pekerjaan Azure Stream Analytics.
Untuk Wilayah, pilih wilayah tempat Anda ingin membuat pekerjaan Azure Stream Analytics. Kami menyarankan agar Anda menempatkan pekerjaan dan pusat aktivitas di wilayah yang sama untuk performa terbaik dan agar Anda tidak membayar untuk mentransfer data antar wilayah.
Untuk Lingkungan hosting< pilih Cloud jika belum dipilih. Pekerjaan Azure Stream Analytics dapat disebarkan ke cloud atau edge. Cloud memungkinkan Anda untuk menyebarkan ke Azure Cloud, dan Edge memungkinkan Anda untuk menyebarkan ke perangkat IoT Edge.
Untuk Unit streaming, pilih 1. Unit streaming mewakili sumber daya komputasi yang diperlukan untuk menjalankan pekerjaan. Secara default, nilai ini diatur ke 1. Untuk mempelajari tentang penskalaan unit streaming, lihat artikel memahami dan menyesuaikan unit streaming.
Pilih Tinjau + buat di bagian bawah halaman.
- Pada halaman Tinjau + buat , tinjau pengaturan, lalu pilih Buat untuk membuat pekerjaan Azure Stream Analytics.
- Setelah pekerjaan disebarkan, pilih Buka sumber daya untuk menavigasi ke halaman pekerjaan Azure Stream Analytics.
Mengonfigurasi input pekerjaan
Langkah selanjutnya adalah menentukan sumber input untuk pekerjaan membaca data menggunakan event hub yang Anda buat di bagian sebelumnya.
Pada halaman pekerjaan Azure Stream Analytics, di bagian Topologi Pekerjaan di menu sebelah kiri, pilih Input.
Pada halaman Input , pilih + Tambahkan input dan Event hub.
Pada halaman Pusat aktivitas , ikuti langkah-langkah berikut:
Untuk Alias input, masukkan CallStream. Alias input adalah nama yang mudah diingat untuk mengidentifikasi input Anda. Alias input hanya dapat berisi karakter alfanumerik, tanda hubung, serta garis bawah, dan panjangnya harus 3-63 karakter.
Untuk Langganan, pilih langganan Azure tempat Anda membuat hub peristiwa. Event hub dapat berada di langganan yang sama atau yang berbeda dengan pekerjaan Azure Stream Analytics.
Untuk namespace layanan Azure Event Hubs, pilih namespace layanan Azure Event Hubs yang Anda buat di bagian sebelumnya. Semua namespace yang tersedia di langganan Anda saat ini tercantum di menu dropdown.
Untuk Nama hub peristiwa, pilih pusat aktivitas yang Anda buat di bagian sebelumnya. Semua hub peristiwa yang tersedia di namespace yang dipilih tercantum di menu dropdown.
Untuk Grup konsumen pusat aktivitas, pertahankan opsi Buat baru yang dipilih sehingga grup konsumen baru dibuat di hub peristiwa. Kami sarankan Anda menggunakan grup konsumen yang berbeda untuk setiap pekerjaan Azure Stream Analytics. Jika tidak ada grup konsumen yang ditentukan, pekerjaan Azure Stream Analytics
$Default
menggunakan grup konsumen. Saat pekerjaan memuat swa-gabung atau memiliki beberapa input, beberapa input mungkin dibaca oleh lebih dari satu pembaca. Situasi ini berdampak pada jumlah pembaca dalam satu grup konsumen.Untuk Mode autentikasi, pilih String koneksi. Lebih mudah untuk menguji tutorial dengan opsi ini.
Untuk Nama kebijakan pusat aktivitas, pilih Gunakan yang sudah ada, lalu pilih kebijakan yang Anda buat sebelumnya.
Pilih Simpan di bagian bawah halaman.
Mengonfigurasi output pekerjaan
Langkah terakhir adalah menentukan sink output tempat pekerjaan dapat menulis data yang ditransformasi. Dalam tutorial ini, Anda membuat output dan memvisualisasikan data dengan Power BI.
Dari portal Azure, buka Semua sumber daya, dan pilih pekerjaan ASATutorial Stream Analytics.
Di bagian Topologi Pekerjaan di pekerjaan Azure Stream Analytics, pilih opsi Output.
Pilih + Tambahkan output>Power BI.
Isi formulir output baru dengan detail berikut:
Pengaturan Nilai yang disarankan Alias output MyPBIoutput Ruang kerja grup Ruang kerja saya Nama himpunan data ASAdataset Nama tabel ASATable Mode autentikasi Token pengguna Pilih Otorisasi dan ikuti perintah untuk mengautentikasi Power BI.
Pilih Simpan di bagian bawah halaman Power BI.
Tutorial ini menggunakan mode autentikasi token pengguna. Untuk menggunakan Identitas Terkelola, lihat Menggunakan Identitas Terkelola untuk mengautentikasi pekerjaan Azure Stream Analytics Anda ke Power BI.
Membuat kueri untuk mentransformasi data real time
Pada titik ini, Anda memiliki pekerjaan Azure Stream Analytics yang disiapkan untuk membaca aliran data masuk. Langkah selanjutnya adalah membuat kueri yang menganalisis data secara real time. Kueri menggunakan bahasa seperti SQL yang memiliki beberapa ekstensi khusus untuk Azure Stream Analytics.
Di bagian tutorial ini, Anda membuat dan menguji beberapa kueri untuk mempelajari beberapa cara mengubah aliran input untuk analisis.
Kueri yang Anda buat di sini hanya akan menampilkan data yang ditransformasi ke layar. Di bagian berikutnya, Anda akan menulis data yang ditransformasi ke Power BI.
Untuk mempelajari selengkapnya tentang bahasa tersebut, lihat Referensi Bahasa Kueri Azure Stream Analytics.
Menguji menggunakan permintaan kirim langsung
Jika Anda ingin mengarsipkan setiap peristiwa, Anda bisa menggunakan permintaan kirim langsung untuk membaca semua bidang dalam payload peristiwa.
Navigasikan ke pekerjaan Stream Analytics Anda di portal Microsoft Azure dan pilih Kueri di bawah Topologi pekerjaan di menu sebelah kiri.
Di jendela kueri, masukkan kueri ini:
SELECT * FROM CallStream
Catatan
Seperti halnya SQL, kata kunci tidak peka huruf besar/kecil, dan spasi putih tidak signifikan.
Dalam kueri ini,
CallStream
adalah alias yang Anda tentukan saat Anda membuat input. Jika Anda menggunakan alias yang berbeda, gunakan nama tersebut sebagai gantinya.Pilih Uji kueri.
Tugas Azure Stream Analytics menjalankan kueri terhadap data sampel dari input dan menampilkan output di bagian bawah jendela. Hasilnya menunjukkan bahwa pekerjaan Analisis Aliran dan Pusat Aktivitas dikonfigurasi dengan benar.
Jumlah pasti rekaman yang Anda lihat tergantung pada berapa banyak rekaman yang diambil dalam sampel.
Mengurangi jumlah bidang menggunakan proyeksi kolom
Dalam banyak kasus, analisis Anda tidak memerlukan semua kolom dari aliran input. Anda bisa menggunakan kueri untuk memproyeksikan kumpulan bidang yang ditampilkan yang lebih kecil dari permintaan kirim langsung.
Jalankan kueri berikut dan perhatikan outputnya.
SELECT CallRecTime, SwitchNum, CallingIMSI, CallingNum, CalledNum
INTO
[MyPBIoutput]
FROM
CallStream
Menghitung panggilan masuk menurut wilayah: Jendela tumbling dengan agregasi
Misalkan Anda ingin menghitung jumlah panggilan masuk per wilayah. Dalam data streaming, ketika Anda ingin melakukan fungsi agregat seperti menghitung, Anda perlu mensegmentasi aliran ke unit temporal, karena aliran itu sendiri secara efektif tidak terbatas. Anda melakukan ini menggunakan fungsi jendela Streaming Analytics. Anda kemudian dapat bekerja dengan data di dalam jendela itu sebagai unit.
Untuk transformasi ini, Anda menginginkan urutan jendela temporal yang tidak tumpang tindih—setiap jendela memiliki sekumpulan data diskrit yang dapat Anda kelompokkan dan agregat. Jenis jendela ini disebut sebagai jendela Tumbling. Dalam jendela Tumbling, Anda bisa mendapatkan hitungan panggilan masuk yang dikelompokkan menurut SwitchNum
, yang mewakili negara/wilayah asal panggilan.
Tempelkan kueri berikut ini di editor kueri:
SELECT System.Timestamp as WindowEnd, SwitchNum, COUNT(*) as CallCount FROM CallStream TIMESTAMP BY CallRecTime GROUP BY TUMBLINGWINDOW(s, 5), SwitchNum
Kueri ini menggunakan kata kunci
Timestamp By
dalam klausulFROM
untuk menentukan bidang tanda waktu mana di aliran input yang akan digunakan untuk menentukan jendela Tumbling. Dalam hal ini, jendela membagi data menjadi segmen menurut bidangCallRecTime
di setiap rekaman. (Jika tidak ada bidang yang ditentukan, operasi windowing menggunakan waktu setiap peristiwa tiba di event hub. Lihat "Waktu Kedatangan Vs Waktu Aplikasi" di Referensi Bahasa Kueri Azure Stream Analytics.Proyeksi ini mencakup
System.Timestamp
, yang menampilkan tanda waktu untuk akhir setiap jendela.Untuk menentukan bahwa Anda ingin menggunakan jendela Tumbling, Anda menggunakan fungsi TUMBLINGWINDOW dalam klausul
GROUP BY
. Dalam fungsi, Anda menentukan unit waktu (mulai dari mikrodetik hingga sehari) dan ukuran jendela (jumlah unit). Dalam contoh ini, jendela Tumbling terdiri dari interval 5 detik, sehingga Anda mendapatkan hitungan menurut negara/wilayah untuk setiap panggilan senilai 5 detik.Pilih Uji kueri. Dalam hasilnya, perhatikan bahwa tanda waktu di bawah WindowEnd berada dalam tahapan 5 detik.
Mendeteksi penipuan SIM menggunakan swa-gabung
Untuk contoh ini, pertimbangkan penggunaan penipuan sebagai panggilan yang berasal dari pengguna yang sama tetapi di lokasi yang berbeda dengan jarak waktu 5 detik dari satu sama lain. Misalnya, pengguna yang sama tidak dapat melakukan panggilan secara sah dari AS dan Australia secara bersamaan.
Untuk memeriksa kasus-kasus semacam ini, Anda dapat menggunakan swa-gabung data streaming untuk bergabung dengan streaming ke dirinya sendiri berdasarkan nilai CallRecTime
. Anda kemudian dapat mencari catatan panggilan di mana nilai CallingIMSI
(nomor asal) sama, tetapi nilai SwitchNum
(negara/wilayah asal) tidak sama.
Saat Anda menggunakan gabungan dengan data streaming, gabungan harus memberikan beberapa batasan tentang seberapa jauh baris yang cocok dapat dipisahkan dalam waktu. Seperti disebutkan sebelumnya, data streaming secara efektif tidak ada habisnya. Batas waktu untuk hubungan ditentukan di dalam klausul ON
gabungan, menggunakan fungsi DATEDIFF
. Dalam hal ini, gabungan didasarkan pada interval data panggilan 5 detik.
Tempelkan kueri berikut ini di editor kueri:
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))
Kueri ini sama seperti gabungan SQL lainnya kecuali untuk fungsi
DATEDIFF
dalam gabungan. VersiDATEDIFF
ini khusus untuk Streaming Analytics, dan harus muncul dalamON...BETWEEN
klausul. Parameternya adalah unit waktu (detik dalam contoh ini) dan alias dari dua sumber untuk gabungan. Ini berbeda dengan fungsi SQL standarDATEDIFF
.Klausul
WHERE
mencakup kondisi yang menandai panggilan penipuan: pengalihan asal tidak sama.Pilih Uji kueri. Tinjau output, lalu pilih Simpan kueri.
Memulai pekerjaan dan memvisualisasikan output
Untuk memulai pekerjaan, navigasi ke Gambaran umum pekerjaan dan pilih Mulai.
Pilih Sekarang untuk waktu mulai output pekerjaan dan pilih Mulai. Anda dapat melihat status pekerjaan di bilah pemberitahuan.
Setelah pekerjaan berhasil, navigasikan ke Power BI dan masuk dengan akun kerja atau sekolah Anda. Jika kueri pekerjaan Azure Stream Analytics mengeluarkan output hasil, himpunan data ASAdataset yang Anda buat ada di bawah tab Himpunan Data.
Dari ruang kerja Power BI Anda, pilih + Buat untuk membuat dasbor baru bernama Panggilan Penipuan.
Di bagian atas jendela, pilih Edit dan Tambahkan petak peta.
Di jendela Tambahkan petak peta , pilih Data Streaming Kustom dan Berikutnya.
Pilih ASAdataset di bawah Himpunan Data Anda, dan pilih Berikutnya.
Pilih Kartu dari menu dropdown Jenis visualisasi, tambahkan panggilan penipuan ke Bidang, lalu pilih Berikutnya.
Masukkan nama untuk petak peta (misalnya, Panggilan penipuan), lalu pilih Terapkan untuk membuat petak peta.
Ikuti lagi langkah 5 dengan opsi berikut:
- Saat Anda sampai di tahap Jenis Visualisasi, pilih Bagan garis.
- Tambahkan sumbu dan pilih windowend.
- Tambahkan nilai dan pilih panggilan penipuan.
- Untuk Jendela waktu untuk ditampilkan, pilih 10 menit terakhir.
Dasbor Anda akan terlihat seperti contoh berikut setelah kedua petak peta ditambahkan. Perhatikan bahwa, jika aplikasi pengirim event hub dan aplikasi Streaming Analytics Anda berjalan, dasbor Power BI Anda secara berkala diperbarui saat data baru tiba.
Menyematkan Dasbor Power BI Anda di Aplikasi Web
Untuk bagian tutorial ini, Anda menggunakan sampel ASP.NET aplikasi web yang dibuat oleh tim Power BI untuk menyematkan dasbor Anda. Untuk informasi selengkapnya tentang menyematkan dasbor, lihat artikel menyematkan dengan Power BI.
Untuk menyiapkan aplikasi, buka repositori GitHub Power BI-Developer-Samples dan ikuti instruksi di bawah bagian Data Milik Pengguna (gunakan URL pengalihan dan beranda di bawah subbagian integrate-web-app ). Karena kita menggunakan contoh Dasbor, gunakan kode sampel integrate-web-app yang terletak di repositori GitHub. Setelah aplikasi berjalan di browser Anda, ikuti langkah-langkah ini untuk menyematkan dasbor yang Anda buat sebelumnya ke halaman web:
Pilih Masuk ke Power BI, yang memberikan aplikasi akses ke dasbor di akun Power BI Anda.
Pilih tombol Dapatkan Dasbor, yang menampilkan Dasbor akun Anda dalam tabel. Temukan nama dasbor yang Anda buat sebelumnya, powerbi-embedded-dashboard, dan salin EmbedUrl yang sesuai.
Terakhir, tempelkan EmbedUrl ke bidang teks yang sesuai dan pilih Sematkan Dasbor. Sekarang Anda dapat melihat dasbor yang sama yang disematkan dalam aplikasi web.
Langkah berikutnya
Dalam tutorial ini, Anda membuat pekerjaan Azure Stream Analytics sederhana, menganalisis data masuk, dan menyajikan hasil dalam dasbor Power BI. Untuk mempelajari selengkapnya tentang pekerjaan Azure Stream Analytics, lanjutkan ke tutorial berikutnya: