Stream Analytics وPower BI: لوحة معلومات تحليلات في الوقت الفعلي لدفق البيانات
يتيح لك Azure Stream Analytics الاستفادة من إحدى أدوات ذكاء الأعمال الرائدة، Microsoft Power BI. في هذه المقالة، ستتعرف على كيفية إنشاء أدوات ذكاء الأعمال باستخدام Power BI كمخرج لمهام Azure Stream Analytics. ستتعرف أيضا على كيفية إنشاء واستخدام لوحة معلومات في الوقت الفعلي يتم تحديثها باستمرار بواسطة وظيفة Stream Analytics.
تستمر هذه المقالة من البرنامج التعليمي للكشف عن الاحتيال في الوقت الفعلي ل Stream Analytics. يعتمد على سير العمل الذي تم إنشاؤه في هذا البرنامج التعليمي ويضيف إخراج Power BI بحيث يمكنك تصور المكالمات الهاتفية الاحتيالية التي يتم اكتشافها بواسطة وظيفة Streaming Analytics.
يمكنك مشاهدة فيديو يوضح هذا السيناريو.
المتطلبات الأساسية
قبل البدء، تأكد من أن لديك ما يلي:
- حساب Azure.
- حساب Power BI Pro. يمكنك استخدام حساب عمل أو حساب مؤسسة تعليمية.
- نسخة مكتملة من البرنامج التعليمي للكشف عن الاحتيال في الوقت الفعلي . يتضمن البرنامج التعليمي تطبيقا يولد بيانات وصفية وهمية لمكالمات الهاتف. في البرنامج التعليمي، يمكنك إنشاء مركز أحداث وإرسال بيانات المكالمات الهاتفية المتدفقة إلى مركز الأحداث. تكتب استعلاما يكتشف المكالمات الاحتيالية (مكالمات من نفس الرقم في نفس الوقت في مواقع مختلفة).
إضافة إخراج Power BI
في البرنامج التعليمي للكشف عن الاحتيال في الوقت الفعلي، يتم إرسال الإخراج إلى وحدة تخزين Azure Blob. في هذا القسم، يمكنك إضافة إخراج يرسل معلومات إلى Power BI.
في مدخل Azure، افتح وظيفة Streaming Analytics التي أنشأتها مسبقا. إذا استخدمت الاسم المقترح، تسمية
sa_frauddetection_job_demoالمهمة.في القائمة اليمنى، حدد المخرجات ضمن طوبولوجيا المهمة. ثم حدد + إضافة واختر Power BI من القائمة المنسدلة.
حدد + Add>Power BI. ثم املأ النموذج بالتفاصيل التالية وحدد تفويض لاستخدام هوية المستخدم الخاصة بك للاتصال ب Power BI (الرمز المميز صالح لمدة 90 يوما).
ملاحظة
بالنسبة لمهام الإنتاج، نوصي بالاتصال لاستخدام الهوية المدارة لمصادقة مهمة Azure Stream Analytics إلى Power BI.
| الإعداد | القيمة المقترحة |
|---|---|
| اسم مستعار للإخراج | CallStream-PowerBI |
| اسم مجموعة البيانات | sa-dataset |
| اسم الجدول | المكالمات الاحتيالية |

تحذير
إذا كان لدى Power BI مجموعة بيانات وجدول لهما نفس الأسماء التي تحددها في مهمة Stream Analytics، الكتابة فوق الأسماء الموجودة. نوصي بعدم إنشاء مجموعة البيانات والجدول هذه بشكل صريح في حساب Power BI الخاص بك. يتم إنشاؤها تلقائيا عند بدء مهمة Stream Analytics وتبدأ المهمة في ضخ المخرجات إلى Power BI. إذا لم يعرض استعلام الوظيفة أي نتائج، فلن يتم إنشاء مجموعة البيانات والجدول.
عند تحديد تفويض، يتم فتح نافذة منبثقة وسيطلب منك تقديم بيانات اعتماد للمصادقة على حساب Power BI الخاص بك. بمجرد نجاح التفويض، احفظ الإعدادات.
انقر فوق Create.
يتم إنشاء مجموعة البيانات باستخدام الإعدادات التالية:
- defaultRetentionPolicy: BasicFIFO - البيانات هي FIFO ، بحد أقصى 200000 صف.
- defaultMode: مختلط - تدعم مجموعة البيانات كلا من لوحات البث (المعروفة أيضا باسم الدفع) والمرئيات التقليدية المستندة إلى التقرير. بالنسبة لمحتوى الدفع، يتم تحديث البيانات باستمرار من مهمة تحليلات الدفق في هذه الحالة، دون الحاجة إلى جدولة التحديث من جانب Power BI.
حاليا، لا يمكنك إنشاء مجموعات بيانات باستخدام علامات أخرى.
لمزيد من المعلومات حول مجموعات بيانات Power BI، راجع مرجع Power BI REST API .
كتابة الاستعلام
أغلق شفرة المخرجات وعد إلى شفرة المهمة.
انقر فوق المربع استعلام .
أدخل الاستعلام التالي. يشبه هذا الاستعلام استعلام الانضمام الذاتي الذي أنشأته في البرنامج التعليمي للكشف عن الاحتيال. الفرق هو أن هذا الاستعلام يرسل النتائج إلى الإخراج الجديد الذي قمت بإنشائه (
CallStream-PowerBI).ملاحظة
إذا لم تقم بتسمية الإدخال
CallStreamفي البرنامج التعليمي للكشف عن الاحتيال، فاستبدل اسمكCallStreamب في البندين FROMوJOIN في الاستعلام./* Our criteria for fraud: Calls made from the same caller to two phone switches in different locations (for example, Australia and Europe) within five seconds */ SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls INTO "CallStream-PowerBI" FROM "CallStream" CS1 TIMESTAMP BY CallRecTime JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime /* Where the caller is the same, as indicated by IMSI (International Mobile Subscriber Identity) */ ON CS1.CallingIMSI = CS2.CallingIMSI /* ...and date between CS1 and CS2 is between one and five seconds */ AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5 /* Where the switch location is different */ WHERE CS1.SwitchNum != CS2.SwitchNum GROUP BY TumblingWindow(Duration(second, 1))انقر فوق Save.
قم باختبار الاستعلام
هذا القسم اختياري، ولكنه موصى به.
إذا لم يكن تطبيق TelcoStreaming قيد التشغيل حاليا، فابدأ تشغيله باتباع الخطوات التالية:
افتح موجه الأوامر.
انتقل إلى المجلد حيث توجد ملفات telcogenerator.exe telcodatagen.exe.config وتعديلها.
تشغيل الأمر التالي:
telcodatagen.exe 1000 .2 2
في صفحة الاستعلام عن مهمة Stream Analytics، انقر فوق النقاط الموجودة بجوار الإدخال، ثم حدد نموذج بيانات من الإدخال
CallStream.حدد أنك تريد بيانات لمدة ثلاث دقائق وانقر فوق موافق. انتظر حتى يتم إعلامك بأنه تم أخذ عينات من البيانات.
انقر فوق اختبار وراجع النتائج.
تشغيل المهمة
تأكد من تشغيل تطبيق TelcoStreaming.
انتقل إلى صفحة نظرة عامة لمهمة Stream Analytics وحدد ابدأ.

تبدأ مهمة Streaming Analytics في البحث عن مكالمات احتيالية في البث الوارد. تقوم المهمة أيضا بإنشاء مجموعة البيانات والجدول في Power BI وتبدأ في إرسال بيانات حول المكالمات الاحتيالية إليهما.
إنشاء لوحة المعلومات في Power BI
انتقل إلى Powerbi.com وسجل الدخول باستخدام حساب العمل أو المؤسسة التعليمية. إذا كان استعلام مهمة Stream Analytics ينتج نتائجه، فسترى أن مجموعة البيانات قد تم إنشاؤها بالفعل:

في مساحة العمل، انقر فوق + إنشاء.

إنشاء لوحة معلومات جديدة وتسميتها
Fraudulent Calls.
في أعلى النافذة، انقر فوق إضافة تجانب، وحدد بيانات تدفق مخصصة، ثم انقر فوق التالي.

ضمن مجموعات DATSETS الخاصة بك، حدد مجموعة البيانات الخاصة بك ثم انقر فوق التالي.

ضمن نوع المرئيات، حدد بطاقة، ثم في القائمة الحقول، حددالمكالمات الاحتيالية.

انقر فوق التالي.
املأ تفاصيل اللوحة مثل العنوان والترجمة.

انقر فوق تطبيق.
الآن لديك عداد الاحتيال!

اتبع الخطوات مرة أخرى لإضافة لوحة (بدءا من الخطوة 4). هذه المرة، قم بما يلي:
عندما تصل إلى نوع المرئيات، حدد مخطط خطي.
أضف محور، وحدد windowend.
أضف قيمة، وحدد fraudulentcalls.
بالنسبة لـ Time window to display، حدد آخر 10 دقائق.

انقر فوق التالي، وأضف عنوانا وعنوانا فرعيا، ثم انقر فوق تطبيق.
تمنحك لوحة معلومات Power BI الآن طريقتي عرض للبيانات المتعلقة بالمكالمات الاحتيالية كما تم اكتشافها في بيانات الدفق.

تعرف على القيود وأفضل الممارسات
حاليا، يمكن استدعاء Power BI مرة واحدة تقريبا في الثانية. يدعم بث المرئيات الحزم بحجم 15 كيلوبايت. أبعد من ذلك ، تفشل المرئيات المتدفقة (لكن الدفع يستمر في العمل). وبسبب هذه القيود، فإن Power BI يفسح المجال بشكل طبيعي للحالات التي يقوم فيها Azure Stream Analytics بتخفيض كبير في حمل البيانات. نوصي باستخدام نافذة التعثر أو نافذة التنقل للتأكد من أن دفع البيانات يكون دفعة واحدة على الأكثر في الثانية، وأن الاستعلام يقع ضمن متطلبات الإنتاجية.
يمكنك استخدام المعادلة التالية لحساب القيمة لإعطاء النافذة في ثوان:

على سبيل المثال:
- لديك 1000 جهاز يرسل البيانات على فترات زمنية مدتها ثانية واحدة.
- أنت تستخدم SKU Power BI Pro الذي يدعم 1,000,000 صف في الساعة.
- تريد نشر متوسط كمية البيانات لكل جهاز إلى Power BI.
ونتيجة لذلك، تصبح المعادلة:

بالنظر إلى هذا التكوين، يمكنك تغيير الاستعلام الأصلي إلى ما يلي:
SELECT
MAX(hmdt) AS hmdt,
MAX(temp) AS temp,
System.TimeStamp AS time,
dspl
INTO "CallStream-PowerBI"
FROM
Input TIMESTAMP BY time
GROUP BY
TUMBLINGWINDOW(ss,4),
dspl
تجديد التفويض
إذا تغيرت كلمة المرور منذ إنشاء وظيفتك أو آخر مصادقة عليها، فستحتاج إلى إعادة مصادقة حسابك في Power BI. إذا تم تكوين مصادقة Azure AD متعددة العوامل على مستأجر Azure Active Directory (Azure AD)، فستحتاج أيضا إلى تجديد تفويض Power BI كل أسبوعين. إذا لم تقم بالتجديد، فقد تظهر عليك أعراض مثل نقص مخرجات الوظائف أو Authenticate user error في سجلات العملية.
وبالمثل ، إذا بدأت مهمة بعد انتهاء صلاحية الرمز المميز ، يحدث خطأ وتفشل المهمة. لحل هذه المشكلة، أوقف المهمة قيد التشغيل وانتقل إلى إخراج Power BI. لتجنب فقدان البيانات، حدد الارتباط تجديد التفويض ، ثم أعد تشغيل عملك من آخر وقت توقف.
بعد تحديث التخويل باستخدام Power BI، يظهر تنبيه أخضر في منطقة التخويل ليعكس أنه تم حل المشكلة.