استخدام البيانات المرجعية من SQL Database لوظيفة Azure Stream Analytics
يدعم Azure Stream Analytics Azure SQL Database كمصدر لإدخال البيانات المرجعية. يمكنك استخدام SQL Database كبيانات مرجعية لوظيفة Stream Analytics في مدخل Microsoft Azure وفي Visual Studio باستخدام أدوات Stream Analytics. توضح هذه المقالة كيفية القيام بكلتا الطريقتين.
مدخل Azure
استخدم الخطوات التالية لإضافة Azure SQL Database كمصدر إدخال مرجعي باستخدام مدخل Microsoft Azure:
المتطلبات الأساسية للمدخل
إنشاء وظيفة تحليلات البث.
أنشئ حساب تخزين لتستخدمه وظيفة Stream Analytics.
هام
يحتفظ Azure Stream Analytics باللقطات داخل حساب التخزين هذا. عند تكوين نهج الاستبقاء، من الضروري التأكد من أن الفترة الزمنية المختارة تشمل بشكل فعال مدة الاسترداد المطلوبة لمهمة Stream Analytics.
أنشئ Azure SQL Database باستخدام مجموعة بيانات لاستخدامها كبيانات مرجعية بواسطة وظيفة Stream Analytics.
تحديد إدخال بيانات مرجع SQL Database
في وظيفتك في Stream Analytics، حدد Inputs ضمن Job topology. انقر فوق Add reference input واختر SQL Database.
املأ تكوينات إدخال Stream Analytics. اختر اسم قاعدة البيانات واسم الخادم واسم المستخدم وكلمة المرور. إذا كنت تريد تحديث إدخال البيانات المرجعية بشكل دوري، فاختر "تشغيل" لتحديد معدل التحديث في DD: HH: MM. إذا كانت لديك مجموعات بيانات كبيرة بمعدل تحديث قصير. يمكنك استعلام Delta من تعقب التغييرات داخل البيانات المرجعية الخاصة بك عن طريق استرداد جميع الصفوف في قاعدة بيانات SQL التي تم إدراجها أو حذفها خلال وقت البدء و @deltaStartTimeووقت @deltaEndTimeالانتهاء .
الرجاء مراجعة استعلام دلتا.
- اختبر استعلام اللقطة في محرر استعلام SQL. لمزيد من المعلومات، راجع استخدام محرر استعلام SQL للمدخل Microsoft Azure للاتصال والاستعلام عن البيانات
حدد حساب التخزين في تكوين الوظيفة
انتقل إلى Storage account settings ضمن تكوين وحدد Add storage account.
بدء الوظيفة
بمجرد تكوين المدخلات والمخرجات والاستعلام الأخرى، يمكنك بدء وظيفة Stream Analytics.
أدوات لـ Visual Studio
استخدم الخطوات التالية لإضافة Azure SQL Database كمصدر إدخال مرجعي باستخدام Visual Studio:
المتطلبات الأساسية لبرنامج Visual Studio
تثبيت أدوات Stream Analytics لبرنامج Visual Studio. الإصدارات التالية من Visual Studio مدعومة:
- Visual Studio 2015
- Visual Studio 2019
التعرف على كيفية بدء التشغيل السريع لأدوات Stream Analytics لبرنامج Visual Studio.
قم بإنشاء حساب تخزين.
هام
يحتفظ Azure Stream Analytics باللقطات داخل حساب التخزين هذا. عند تكوين نهج الاستبقاء، من الضروري التأكد من أن الفترة الزمنية المختارة تشمل بشكل فعال مدة الاسترداد المطلوبة لمهمة Stream Analytics.
قم بإنشاء جدول SQL Database
استخدم SQL Server Management Studio لإنشاء جدول لتخزين بياناتك المرجعية. راجع تصميم أول Azure SQL Database باستخدام Management Studio للحصول على التفاصيل.
تم إنشاء الجدول النموذجي المستخدم في المثال التالي من العبارة التالية:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
اختر اشتراكك
في Visual Studio، في القائمة عرض، حدد مستكشف الخادم.
انقر بزر الماوس الأيمن على Azure، وحدد Connect to Microsoft Azure Subscription، وقم بتسجيل الدخول باستخدام حساب Azure الخاص بك.
قم بإنشاء مشروع Stream Analytics
حدد File > New Project.
في قائمة القوالب على اليمين، حدد Stream Analytics، ثم حدد تطبيق Azure Stream Analytics.
أدخل المشروع Name، وLocation، وSolution name، وحدد OK.
تحديد إدخال بيانات مرجع SQL Database
قم بإنشاء مدخلات جديدة.
انقر نقراً مزدوجاً فوق Input.json في مستكشف الحلول.
املأ تكوين إدخال Stream Analytics. اختر اسم قاعدة البيانات واسم الخادم ونوع التحديث ومعدل التحديث. حدد معدل التحديث بالتنسيق
DD:HH:MM
.إذا اخترت "التنفيذ مرة واحدة فقط" أو "التنفيذ بشكل دوري"، فسيتم إنشاء ملف SQL CodeBehind واحد باسم [Input Alias].snapshot.sql في المشروع ضمن ملف Input.json العقدة.
إذا اخترت "التحديث دورياً باستخدام دلتا"، فسيتم إنشاء ملفي SQL CodeBehind: [Input Alias].snapshot.sql و[Input Alias].delta.sql.
افتح ملف SQL في المحرر واكتب استعلام SQL.
إذا كنت تستخدم Visual Studio 2019، وقمت بتثبيت أدوات بيانات Microsoft SQL Server، يمكنك اختبار الاستعلام بالنقر فوق Execute. ستظهر نافذة معالج لمساعدتك على الاتصال بـ SQL Database وستظهر نتيجة الاستعلام في النافذة في الأسفل.
حدد حساب التخزين
افتح JobConfig.json لتحديد حساب التخزين لتخزين لقطات مرجع SQL.
اختبر محلياً وقم بتوزيعها في Azure
قبل توزيع المهمة على Azure، يمكنك اختبار منطق الاستعلام محلياً مقابل بيانات الإدخال المباشر. لمزيد من المعلومات بشأن هذه الميزة، راجع اختبار البيانات المباشرة محلياً باستخدام أدوات Azure Stream Analytics لبرنامج Visual Studio (إصدار أولي). عند الانتهاء من الاختبار، انقر فوق Submit to Azure. راجع البداية السريعة إنشاء تحليلات البث باستخدام أدوات Azure Stream Analytics لبرنامج Visual Studio لمعرفة كيفية بدء المهمة.
استعلام عن دلتا
عند استخدام استعلام دلتا، يوصى باستخدام الجداول الزمنية في Azure SQL Database.
قم بإنشاء جدول زمني في Azure SQL Database.
CREATE TABLE DeviceTemporal ( [DeviceId] int NOT NULL PRIMARY KEY CLUSTERED , [GroupDeviceId] nvarchar(100) NOT NULL , [Description] nvarchar(100) NOT NULL , [ValidFrom] datetime2 (0) GENERATED ALWAYS AS ROW START , [ValidTo] datetime2 (0) GENERATED ALWAYS AS ROW END , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo) ) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DeviceHistory)); -- DeviceHistory table will be used in Delta query
تأليف استعلام اللقطة.
استخدم المعلمة snapshotTime لإرشاد وقت تشغيل Stream Analytics للحصول على مجموعة البيانات المرجعية من الجدول الزمني لـ SQL Database الصالحة في وقت النظام. إذا لم تقدم هذه المعلمة، فإنك تخاطر بالحصول على مجموعة بيانات مرجعية أساسية غير دقيقة بسبب انحرافات الساعة. فيما يلي مثال على استعلام لقطة كاملة:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTime
تأليف استعلام دلتا.
يسترد هذا الاستعلام جميع الصفوف في SQL Database التي تم إدراجها أو حذفها خلال وقت البدء وdeltaStartTimeووقت الانتهاء deltaEndTime. يجب أن يُرجع استعلام دلتا نفس الأعمدة مثل استعلام اللقطة، بالإضافة إلى العمود العملية. يحدد هذا العمود ما إذا كان الصف قد تم إدراجه أو حذفه بين deltaStartTime وdeltaEndTime. يتم وضع علامة على الصفوف الناتجة كـ 1 إذا تم إدراج السجلات، أو 2 إذا تم حذفها. يجب أن يضيف الاستعلام أيضاً علامة مائية من جانب SQL Server لضمان تسجيل كافة التحديثات في فترة دلتا بشكل مناسب. قد ينتج عن استخدام استعلام دلتا دون علامة مائية مجموعة بيانات مرجعية غير صحيحة.
بالنسبة للسجلات التي تم تحديثها، يقوم الجدول الزمني بمسك الدفاتر من خلال التقاط عملية الإدراج والحذف. سيطبق وقت تشغيل Stream Analytics نتائج استعلام دلتا على اللقطة السابقة للحفاظ على البيانات المرجعية محدثة. فيما يلي مثال على استعلام دلتا:
SELECT DeviceId, GroupDeviceId, Description, ValidFrom as _watermark_, 1 as _operation_ FROM dbo.DeviceTemporal WHERE ValidFrom BETWEEN @deltaStartTime AND @deltaEndTime -- records inserted UNION SELECT DeviceId, GroupDeviceId, Description, ValidTo as _watermark_, 2 as _operation_ FROM dbo.DeviceHistory -- table we created in step 1 WHERE ValidTo BETWEEN @deltaStartTime AND @deltaEndTime -- record deleted
لاحظ أن وقت تشغيل Stream Analytics قد يقوم بشكل دوري بتشغيل استعلام اللقطة بالإضافة إلى استعلام دلتا لتخزين نقاط التفتيش.
هام
عند استخدام استعلامات دلتا البيانات المرجعية، لا تقم بإجراء تحديثات متطابقة لجدول البيانات المرجعية الزمنية عدة مرات. قد يؤدي هذا إلى إنتاج نتائج غير صحيحة. فيما يلي مثال قد يؤدي إلى نتائج غير صحيحة للبيانات المرجعية:
UPDATE myTable SET VALUE=2 WHERE ID = 1; UPDATE myTable SET VALUE=2 WHERE ID = 1;
المثال الصحيح:
UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);
يضمن هذا عدم تنفيذ أي تحديثات مكررة.
اختبار الاستعلام
من المهم التحقق من أن استعلامك يقوم بإرجاع مجموعة البيانات المتوقعة التي ستستخدمها وظيفة Stream Analytics كبيانات مرجعية. لاختبار استعلامك، انتقل إلى الإدخال ضمن قسم طوبولوجيا الوظيفة على المدخل. يمكنك بعد ذلك تحديد نموذج البيانات في إدخال مرجع SQL Database. بعد أن يصبح النموذج متاحاً، يمكنك تنزيل الملف والتحقق لمعرفة ما إذا كانت البيانات التي يتم إرجاعها كما هو متوقع. إذا كنت ترغب في تحسين التطوير واختبار التكرارات، فمن المستحسن استخدام أدوات Stream Analytics لبرنامج Visual Studio. يمكنك أيضاً أي أداة أخرى تفضلها للتأكد أولاً من أن الاستعلام يعيد النتائج الصحيحة من Azure SQL Database ثم استخدمها في وظيفة Stream Analytics.
اختبر استعلامك باستخدام Visual Studio Code
قم بتثبيت Azure Stream Analytics Tools وSQL Server (mssql) على Visual Studio Code وقم بإعداد مشروع ASA الخاص بك. لمزيد من المعلومات، راجع التشغيل السريع: إنشاء مهمة Azure Stream Analytics في Visual Studio Code والبرنامج التعليمي بشأن إضافة SQL Server (mssql).
تكوين إدخال البيانات المرجعية SQL الخاص بك.
حدد رمز SQL Server وانقر على Add Connection.
املأ معلومات الاتصال.
انقر بزر الماوس الأيمن في مرجع SQL وحدد Execute Query.
اختر الاتصال الخاص بك.
مراجعة والتحقق من نتيجة الاستعلام الخاص بك.
الأسئلة المتداولة
هل سأتحمل تكلفة إضافية باستخدام إدخال بيانات مرجع SQL في Azure Stream Analytics؟
لا توجد تكلفة إضافية لكل وحدة بث في وظيفة Stream Analytics. ومع ذلك، يجب أن يكون لوظيفة Stream Analytics حساب تخزين Azure مرتبط. تستعلم مهمة Stream Analytics عن قاعدة بيانات SQL (خلال بدء المهمة والفاصل الزمني للتحديث) لاسترداد مجموعة البيانات المرجعية وتخزين تلك اللقطة في حساب التخزين. سيؤدي تخزين هذه اللقطات إلى تحميل تكاليف إضافية مفصلة في صفحة الأسعار لحساب التخزين Azure.
كيف أعرف أنه يتم الاستعلام عن لقطة البيانات المرجعية من قاعدة بيانات SQL واستخدامها في وظيفة Azure Stream Analytics؟
هناك مقياسان تمت تصفيتهما حسب الاسم المنطقي (ضمن مدخل Metrics Azure) والتي يمكنك استخدامها لمراقبة صحة إدخال بيانات مرجع SQL Database.
- InputEvents: يقيس هذا المقياس عدد السجلات التي تم تحميلها من مجموعة البيانات المرجعية لـ SQL Database.
- InputEventBytes: يقيس هذا المقياس حجم لقطة البيانات المرجعية التي تم تحميلها في ذاكرة مهمة Stream Analytics.
يمكن استخدام مزيج من هذين المقياسين لاستنتاج ما إذا كانت المهمة هي الاستعلام عن SQL Database لجلب مجموعة البيانات المرجعية ثم تحميلها في الذاكرة.
هل سأطلب نوعاً خاصاً من Azure SQL Database؟
سيعمل Azure Stream Analytics مع أي نوع من Azure SQL Database. ومع ذلك، من المهم أن تفهم أن معدل التحديث المحدد لإدخال البيانات المرجعية يمكن أن يؤثر على تحميل الاستعلام الخاص بك. لاستخدام خيار استعلام دلتا، يوصى باستخدام الجداول الزمنية في Azure SQL Database.
لماذا يخزن Azure Stream Analytics اللقطات في حساب Azure Storage؟
يضمن Stream Analytics معالجة الحدث مرة واحدة تماماً وعلى الأقل مرة واحدة في تسليم الأحداث. في الحالات التي تؤثر فيها المشكلات العابرة على وظيفتك، يلزم قدر ضئيل من إعادة العرض لاستعادة الحالة. لتمكين إعادة التشغيل، يلزم تخزين هذه اللقطات في حساب Azure Storage. لمزيد من المعلومات بشأن إعادة تشغيل نقاط التحقق، راجع مفاهيم نقاط التحقق وإعادة التشغيل في وظائف Azure Stream Analytics.
الخطوات التالية
- فهم المخرجات من Azure Stream Analytics
- إخراج Azure Stream Analytics إلى Azure SQL Database
- زيادة أداء معدل النقل لـ Azure SQL Database من Azure Stream Analytics
- استخدم الهويات المُدارة للوصول إلى Azure SQL Database أو Azure Synapse Analytics من وظيفة Azure Stream Analytics
- تحديث السجلات أو دمجها في Azure SQL Database باستخدام Azure Functions
- التشغيل السريع: إنشاء وظيفة Stream Analytics باستخدام مدخل Microsoft Azure