الإرشادات التفصيلية: تصدير إلى SQL من Application Insights باستخدام Stream Analytics

توضح هذه المقالة كيفية نقل بيانات تتبع الاستخدام منAzure Application Insightsإلى قاعدة بيانات azure SQL باستخدام التصدير المستمروAzure Stream Analytics.

يعمل التصدير المستمر على نقل بيانات تتبع الاستخدام إلى موقع تخزين Azure بتنسيق JSON. سنحلل عناصر JSON باستخدام Azure Stream Analytics وننشئ صفوف في جدول قاعدة بيانات.

(بشكل أعم، التصدير المستمر هو الطريقة لإجراء تحليلك الخاص للقياس عن بعد الذي ترسله تطبيقاتك إلى Insights التطبيق. يمكنك تكييف نموذج التعليمات البرمجية هذا للقيام بأشياء أخرى باستخدام القياس عن بعد المصدر، مثل تجميع البيانات.)

سنبدأ بافتراض أن لديك بالفعل التطبيق الذي تريد مراقبته.

في هذا المثال، سنستخدم بيانات عرض الصفحة، ولكن يمكن بسهولة توسيع نفس النمط ليشمل أنواع بيانات أخرى مثل الأحداث والاستثناءات المخصصة.

هام

تم إهمال التصدير المستمر وهو معتمد فقط لموارد Application Insights الكلاسيكية. ترحيل إلى مورد Application Insights القائم على مساحة العمل لاستخدام الإعدادات التشخيصية لتصدير بيانات تتبع الاستخدام.

إضافة Application Insights إلى تطبيقك

الشروع في العمل:

  1. إعداد Application Insights لصفحات الويب الخاصة بك.

    (في هذا المثال، سنركز على معالجة بيانات عرض الصفحة من متصفحات العميل، ولكن يمكنك أيضًا إعداد Application Insights لجانب الخادم من تطبيق JavaأوASP.NET ومعالجة الطلب والاعتماد وقياس الخادم الآخر.)

  2. وزع تطبيقك، وشاهد بيانات تتبع الاستخدام التي تظهر في مورد Application Insights.

إنشاء موقع تخزين في Azure

يقوم التصدير المستمر دائمًا بإخراج البيانات إلى حساب موقع تخزين Azure، لذا تحتاج إلى إنشاء وحدة التخزين أولا.

  1. أنشئ حساب تخزين في اشتراكك في مدخل Microsoft Azure.

    Screenshot of the Azure portal, choose New, Data, Storage then select Classic, Create and provide a Storage name.

  2. إنشاء حاوية

    Screenshot of the new storage, select Containers, then select the Containers tile, and then Add.

  3. نسخ مفتاح اختصار موقع التخزين

    ستحتاج إليه قريبًا لإعداد المدخلات في خدمة تحليلات البث.

     Screenshot of the storage, open Settings, Keys, and take a copy of the Primary Access Key.

بدء التصدير المستمر إلى موقع تخزين Azure

  1. في مدخل Microsoft Azure، استعرض للوصول إلى مورد Application Insights الذي قمت بإنشائه للتطبيق الخاص بك.

    SCreenshot of the Azure portal, choose Browse, Application Insights, your application.

  2. إنشاء تصدير مستمر.

    Screenshot of Application Insights resource, choose Settings, Continuous Export, then Add.

    حدد حساب التخزين الذي أنشأته.

    Screenshot continuous export then select Add.

    تعيين أنواع الأحداث التي تريد مشاهدتها:

    Screenshot of add continuous export then choose event types.

  3. دع بعض البيانات تتراكم. استرخ والسماح للناس استخدام التطبيق الخاص بك لفترة من الوقت. ستأتي بيانات تتبع الاستخدام وسوف ترى المخططات الإحصائية في المستكشف المتري والأحداث الفردية في البحث التشخيصي.

    وأيضًا، سيتم تصدير البيانات إلى موقع التخزين الخاص بك.

  4. فحص البيانات المصدرة، إما في المدخل - اختر استعراض، حدد حساب التخزين الخاص بك، ثم حاويات - أو في Visual Studio. في Visual Studio، اختر «View / Cloud Explorer»، و»open Azure / Storage». (في حال لم يكن لديك خيار القائمة، فسوف تحتاج إلى تثبيت SDK Azure: افتح مربع الحوار «New Project» وافتح «Visual C# / Cloud / Get Microsoft Azure SDK for .NET)»

    Screenshot of Visual Studio, open Server Browser, Azure, Storage.

    دوّن جزءًا مشتركًا من اسم المسار، الُمشتق من اسم التطبيق ومفتاح خاص بتقرير عن حالة النظام.

تتم كتابة الأحداث إلى ملفات blob بتنسيق JSON. قد يحتوي كل ملف على حدث واحد أو أكثر. لذلك نود قراءة بيانات الحدث وترشيح الحقول التي نريدها. هناك كل أنواع الأشياء التي يمكننا القيام بها بالبيانات، ولكن خطتنا اليوم هي استخدام Stream Analytics لنقل البيانات إلى قاعدة بيانات لغة الاستعلامات المركبة. وهذا سيجعل من السهل تشغيل الكثير من الاستفسارات المثيرة للاهتمام.

إنشاء قاعدة بيانات SQL Azure

مرة أخرى بدءا من اشتراكك في مدخل Microsoft Azure، إنشاء قاعدة البيانات (وخادم جديد، إلا إذا كنت قد حصلت بالفعل واحد) التي عليك كتابة البيانات.

Screenshot of the Azure portal, create, Data+ storage, and SQL Database.

تأكد من أن الملقم يسمح بالوصول إلى خدمات Azure:

Screenshot of SQL servers in the Azure portal and firewall settings.

إنشاء جدول في قاعدة بيانات في Azure SQL Database

الاتصال إلى قاعدة البيانات التي تم إنشاؤها في القسم السابق باستخدام أداة الإدارة المفضلة لديك. في هذه المعاينة، سوف نستخدم أدوات SQL Server الإداريةManagement Studio.

Screenshot of connect to Azure SQL Database

إنشاء استعلام جديد وتنفيذ SQL T التالية:


CREATE TABLE [dbo].[PageViewsTable](
    [pageName] [nvarchar](max) NOT NULL,
    [viewCount] [int] NOT NULL,
    [url] [nvarchar](max) NULL,
    [urlDataPort] [int] NULL,
    [urlDataprotocol] [nvarchar](50) NULL,
    [urlDataHost] [nvarchar](50) NULL,
    [urlDataBase] [nvarchar](50) NULL,
    [urlDataHashTag] [nvarchar](max) NULL,
    [eventTime] [datetime] NOT NULL,
    [isSynthetic] [nvarchar](50) NULL,
    [deviceId] [nvarchar](50) NULL,
    [deviceType] [nvarchar](50) NULL,
    [os] [nvarchar](50) NULL,
    [osVersion] [nvarchar](50) NULL,
    [locale] [nvarchar](50) NULL,
    [userAgent] [nvarchar](max) NULL,
    [browser] [nvarchar](50) NULL,
    [browserVersion] [nvarchar](50) NULL,
    [screenResolution] [nvarchar](50) NULL,
    [sessionId] [nvarchar](max) NULL,
    [sessionIsFirst] [nvarchar](50) NULL,
    [clientIp] [nvarchar](50) NULL,
    [continent] [nvarchar](50) NULL,
    [country] [nvarchar](50) NULL,
    [province] [nvarchar](50) NULL,
    [city] [nvarchar](50) NULL
)

CREATE CLUSTERED INDEX [pvTblIdx] ON [dbo].[PageViewsTable]
(
    [eventTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

Screenshot of create PageViewsTable in SQL Server Management Studio.

في هذه العينة، نستخدم بيانات من طرق عرض الصفحة. للاطلاع على البيانات الأخرى المتوفرة، قم بفحص مخرجات JSON، و اطلع على نموذج بيانات التصدير.

إنشاء مثيل Azure Stream Analytics

من مدخل Microsoft Azure، حدد خدمة Azure Stream Analytics، وأنشئ وظيفة Stream Analytics جديدة:

Screenshot shows the Stream analytics job page with the Create button highlighted.

Screenshot of new stream analytics job

بمجرد إنشاء المورد، حدد انتقال إلى المورد.

Screenshot shows the Deployment succeeded message and Go to resource button.

إضافة إدخال جديد

Screenshot shows the Inputs page with the Add button selected.

اضبطه لأخذ مدخلات من ملف البيانات الثنائية الكبيرة للتصدير المستمر:

Screenshot shows the New input window with Input alias, Source, and Storage account drop-down menu options selected.

ستحتاج الآن إلى مفتاح الوصول الأساسي من حساب التخزين، الذي لاحظته سابقًا. تعيين هذا كمفتاح حساب التخزين.

تعيين نمط بادئة المسار

تأكد من ضبط تنسيق التاريخ على YYYY-MM-DD (مع وضع الشرطة).

يحدد نمط بادئة المسار كيف يعثر Stream Analytics على ملفات الإدخال في موقع التخزين. تحتاج إلى تعيينها لتتوافق مع كيفية تخزين "Continuous Export" للبيانات. تعيينها كما يلي:

webapplication27_12345678123412341234123456789abcdef0/PageViews/{date}/{time}

في هذا المثال:

  • webapplication27اسم مورد Application Insights بأحرف صغيرة.
  • 1234...هو مفتاح تقرير عن حالة النظام من مورد Application Insightsحذف الشرطات.
  • PageViewsهو نوع البيانات التي تريد تحليلها. تعتمد الأنواع المتوفرة على عامل التصفية الذي قمت بتعيينه في "Continuous Export.". فحص البيانات المصدرة للاطلاع على الأنواع الأخرى المتوفرة، وراجع نموذج بيانات التصدير.
  • /{date}/{time}هو النمط المكتوب حرفيًا.

للحصول على اسم ومفتاح iKey لمورد Application Insights الخاص بك، افتح Essentials في صفحة النظرة العامة الخاصة به، أو افتح الإعدادات.

تلميح

استخدم الدالة نموذج للتحقق من تعيين مسار الإدخال بشكل صحيح. إذا فشل: تحقق من وجود بيانات في التخزين لنطاق الوقت العينة الذي اخترته. تحرير تعريف الإدخال والتحقق من تعيين حساب التخزين، بادئة المسار وتنسيق التاريخ بشكل صحيح.

تعيين استعلام

افتح قسم الاستعلام:

استبدل الاستعلام الافتراضي بـ:


    SELECT flat.ArrayValue.name as pageName
    , flat.ArrayValue.count as viewCount
    , flat.ArrayValue.url as url
    , flat.ArrayValue.urlData.port as urlDataPort
    , flat.ArrayValue.urlData.protocol as urlDataprotocol
    , flat.ArrayValue.urlData.host as urlDataHost
    , flat.ArrayValue.urlData.base as urlDataBase
    , flat.ArrayValue.urlData.hashTag as urlDataHashTag
      ,A.context.data.eventTime as eventTime
      ,A.context.data.isSynthetic as isSynthetic
      ,A.context.device.id as deviceId
      ,A.context.device.type as deviceType
      ,A.context.device.os as os
      ,A.context.device.osVersion as osVersion
      ,A.context.device.locale as locale
      ,A.context.device.userAgent as userAgent
      ,A.context.device.browser as browser
      ,A.context.device.browserVersion as browserVersion
      ,A.context.device.screenResolution.value as screenResolution
      ,A.context.session.id as sessionId
      ,A.context.session.isFirst as sessionIsFirst
      ,A.context.location.clientip as clientIp
      ,A.context.location.continent as continent
      ,A.context.location.country as country
      ,A.context.location.province as province
      ,A.context.location.city as city
    INTO
      AIOutput
    FROM AIinput A
    CROSS APPLY GetElements(A.[view]) as flat


لاحظ أن الخصائص القليلة الأولى خاصة ببيانات عرض الصفحة. وسيكون لصادرات أنواع القياس عن بعد الأخرى خصائص مختلفة. مرجع نموذج بيانات مفصل لأنواع وقيم الخصائص والقيم.

إعداد الإخراج إلى قاعدة البيانات

حدد SQL كمخرج.

Screenshot of stream analytics with Outputs selected.

حدد قاعدة البيانات.

Screenshot of new output with details of the database.

أغلق المعالج وانتظر إعلاما بإعداد الإخراج.

بدء المعالجة

بدء المهمة من شريط الإجراءات:

Screenshot of stream analytics with Start selected.

يمكنك اختيار ما إذا كنت تريد بدء معالجة البيانات بدءا من الآن، أو البدء ببيانات سابقة. هذا الأخير مفيد إذا كان لديك تصدير مستمر قيد التشغيل بالفعل لفترة من الوقت.

بعد بضع دقائق، عد إلى أدوات SQL Server الإدارية وشاهد البيانات المتدفقة. على سبيل المثال، استخدم استعلاما مثل هذا:

SELECT TOP 100 *
FROM [dbo].[PageViewsTable]

الخطوات التالية