استيعاب البيانات من Event Hub في Azure Synapse Data Explorer

مستكشف البيانات Azure Synapse عبارة عن خدمة استكشاف بيانات سريعة وقابلة للتطوير بدرجة كبيرة لبيانات السجل وتتبع الاستخدام. يوفر Azure Synapse Data Explorer الاستيعاب (تحميل البيانات) من مراكز الأحداث ومراكز IoT والكائنات الثنائية كبيرة الحجم المكتوبة إلى حاويات الكائن الثنائي كبير الحجم.

يوفر Azure Synapse Data Explorer الاستيعاب (تحميل البيانات) من Event Hubs، وهو نظام أساسي لدفق البيانات الضخمة وخدمة نقل الأحداث. تستطيع مراكز الأحداث معالجة ملايين الأحداث في الثانية في الوقت الحقيقي تقريباً. في هذه المقالة، يمكنك إنشاء مركز أحداث والاتصال به من Azure Synapse Data Explorer ومشاهدة تدفق البيانات عبر النظام.

المتطلبات الأساسية

  • اشتراك Azure. لدي حساب Azure مجاني.

  • إنشاء تجمع مستكشف بيانات باستخدام أستوديو Synapse أو مدخل Azure

  • إنشاء قاعدة بيانات Data Explorer.

    1. في Synapse Studio، في الجزء الأيسر، حدد البيانات.

    2. حدد +(Add new resource)> Data Explorer pool، واستخدم المعلومات التالية:

      الإعدادات القيمة المقترحة ‏‏الوصف
      اسم التجمع contosodataexplorer اسم تجمع Data Explorer لاستخدامه
      الاسم TestDatabase يجب أن يكون اسم قاعدة البيانات فريدًا داخل الكتلة.
      فترة الاستبقاء الافتراضية 365 الفترة الزمنية (بالأيام) التي تضمن لها الاحتفاظ بالبيانات متاحة للاستعلام. يتم قياس الفترة الزمنية من وقت تناول البيانات.
      فترة التخزين المؤقت الافتراضية 31 الفترة الزمنية (بالأيام) التي يجب الاحتفاظ بالبيانات التي يتم الاستعلام عنها بشكل متكرر والمتوفرة في تخزين SSD أو ذاكرة الوصول العشوائي ، بدلًا من التخزين على المدى الطويل.
    3. حدد Create لإنشاء قاعدة البيانات. عادة ما يستغرق الإنشاء أقل من دقيقة.

  • قم بإنشاء جدول هدف ترسل إليه "مراكز الأحداث" البيانات

    1. في Synapse Studio، في الجزء الأيسر، حدد تطوير.

    2. ضمن برامج KQL النصية، حدد + (إضافة مورد جديد) >برنامج KQL النصي. في الجزء الأيمن، يمكنك تسمية البرنامج النصي.

    3. في القائمة Connect to، حدد contosodataexplorer.

    4. في قائمة Use database، حدد TestDatabase.

    5. الصق الأمر التالي، وحدد Runلإنشاء الجدول.

      .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
      

      تلميح

      تحقق من أن الجدول تم إنشاؤه بنجاح. في الجزء الأيسر، حدد Data، وحدد قائمة المزيد من contosodataexplorer، ثم حدد Refresh. ضمن contosodataexplorer، وسّع Tables وتأكد من ظهور الجدول TestTable في القائمة.

    6. انسخ الأمر التالي في النافذة وحدد Run لتعيين بيانات JSON الواردة لأسماء الأعمدة وأنواع بيانات الجدول (TestTable).

      .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
      
  • نوصي باستخدام الهوية المُدارة يعينها المستخدم أو الهوية المُدارة يعينها النظام لاتصال البيانات (اختياري).

  • نموذج تطبيق يقوم بإنشاء البيانات وإرسالها إلى Event Hub. قم بتنزيل نموذج التطبيق على نظامك.

  • Visual Studio 2019 لتشغيل نموذج التطبيق.

سجِّل الدخول إلى مدخل Azure

قم بتسجيل الدخول إلى بوابة Azure.

إنشاء Event Hub

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

  1. لإنشاء مركز حدث، استخدم الزر التالي لبدء التوزيع. انقر بزر الماوس الأيمن وحدد Open in new window، حتى تتمكن من اتباع بقية الخطوات في هذه المقالة.

    Button to deploy the Resource Manager template to Azure.

    ينقلك الزر Deploy to Azure إلى مدخل Microsoft Azure.

  2. حدد الاشتراك حيث تريد إنشاء Event Hub، وأنشئ مجموعة موارد باسم test-hub-rg.

    Create a resource group

  3. املأ النموذج بالمعلومات التالية.

    استخدم الإعدادات الافتراضية لأي إعدادات غير مدرجة في الجدول التالي.

    الإعداد القيمة المقترحة وصف الحقل
    الاشتراك اشتراكك حدد اشتراك Azure الذي تريد استخدامه لمركز الأحداث الخاص بك.
    مجموعة الموارد test-hub-rg إنشاء مجموعة موارد جديدة.
    الموقع غرب الولايات المتحدة حدد West US لهذه المقالة. بالنسبة لنظام الإنتاج، حدد المنطقة التي تلبي احتياجاتك على أفضل وجه. قم بإنشاء مساحة اسم Event Hub في نفس الموقع مثل مجموعة Azure Synapse Data Explorer للحصول على أفضل أداء (الأكثر أهمية لمساحات أسماء Event Hub ذات المعدل نقل العالية).
    اسم مساحة الاسم اسم مساحة اسم فريد اختر اسماً فريداً يحدد مساحة الاسم الخاصة بك. على سبيل المثال، mytestnamespace. تم إلحاق اسم المجال servicebus.windows.net بالاسم الذي تقدمه. يمكن أن يحتوي الاسم على أحرف، وأرقام، وواصلات فقط. يجب أن يبدأ الاسم بحرف ويجب أن ينتهي بحرف أو رقم. يجب أن يتراوح طول القيمة بين 6 و50 حرفاً.
    اسم Event Hub test-hub يقع Event Hub ضمن مساحة الاسم، والتي توفر حاوية نطاق فريدة. يجب أن يكون اسم مركز الحدث فريداً داخل مساحة الاسم.
    اسم مجموعة المستهلك مجموعة اختبار تعمل مجموعات المستهلكين على تمكين العديد من التطبيقات المستهلكة لكل منها عرض منفصل لتدفق الأحداث.
  4. حدد "Review + create".

  5. راجع ملخص الموارد التي تم إنشاؤها. حدد Create، والتي تقر بأنك تقوم بإنشاء موارد في اشتراكك.

    Screen shot of Azure portal for reviewing and creating Event Hub namespace, Event Hub, and consumer group.

  6. حدد Notifications على شريط الأدوات لمراقبة عملية التوفير. قد يستغرق التوزيع عدة دقائق حتى ينجح، ولكن يمكنك الانتقال إلى الخطوة التالية الآن.

    Notifications icon

اعتبارات المصادقة

اعتماداً على نوع الهوية التي تستخدمها للمصادقة مع Event Hub، قد تحتاج إلى بعض التكوينات الإضافية.

  • إذا كنت تجري المصادقة باستخدام Event Hub باستخدام هوية مُدارة معينة من قبل المستخدم، فانتقل إلى Event Hub >Networking، ثم ضمن Allow access from، حدد All networks واحفظ التغييرات.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to all networks.

  • إذا كنت تقوم بالمصادقة مع Event Hub باستخدام هوية مُدارة يعينها النظام، فانتقل إلى Event Hub >Networking، ثم اسمح بالوصول من جميع الشبكات أو ضمن Allow access from، وحدد Selected networks، وحدد Allow trusted Microsoft services to bypass this firewall واحفظ التغييرات.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to trusted services.

اتصل بمركز الأحداث

أنت الآن تتصل بمركز الأحداث من تجمع مستكشف البيانات. عندما يكون هذا الاتصال في مكانه، فإن البيانات التي تتدفق إلى Event Hub تتدفق إلى جدول الاختبار الذي أنشأته مسبقاً في هذه المقالة.

  1. حدد Notifications على شريط الأدوات للتحقق من نجاح توزيع Event Hub.

  2. ضمن تجمع مستكشف البيانات الذي أنشأته، حدد Databases>TestDatabase.

    Select test database.

  3. حدد Data connections وAdd data connection.

    Select data ingestion and Add data connection.

إنشاء اتصال بيانات (إصدار أولي)

املأ النموذج بالمعلومات التالية، ثم حدد Create.

Data connection pane Event Hub - Azure Synapse Data Explorer.

الإعداد القيمة المقترحة وصف الحقل
اسم اتصال البيانات test-hub-connection اسم الاتصال الذي تريد إنشاءه في Azure Synapse Data Explorer.
الاشتراك معرف الاشتراك حيث يوجد مورد مركز أحداث. هذا الحقل مأهول آلياً.
مساحة اسم Event Hub اسم مساحة اسم فريد الاسم الذي اخترته سابقاً والذي يحدد مساحة الاسم الخاصة بك.
مركز الأحداث test-hub مركز الأحداث الذي أنشأته.
مجموعة المستهلكين مجموعة اختبار مجموعة المستهلكين المحددة في Event Hub الذي أنشأته.
خصائص نظام الحدث تحديد الخصائص ذات الصلة خصائص نظام مركز الأحداث. إذا كانت هناك سجلات متعددة لكل رسالة حدث، فستتم إضافة خصائص النظام إلى السجل الأول. عند إضافة خصائص النظام، قم بإنشاء أو تحديث مخطط الجدول و تعيينه لتضمين الخصائص المحددة.
الضغط بلا نوع ضغط حمولة رسائل Event Hub. أنواع الضغط المدعومة: بلا، Gzip.
الهوية المُدارة المعين من نظام الهوية المُدارة التي تستخدمها مجموعة Data Explorer للوصول للقراءة من Event Hub.

ملاحظة:
عند إنشاء اتصال البيانات:
- يتم إنشاء الهويات المعينة من قبل النظام تلقائياً إذا لم تكن موجودة
- يتم تعيين هوية مُدارة تلقائياً دور مستقبل بيانات مراكز الأحداث في Azure وتتم إضافتها إلى مجموعة مستكشف البيانات. نوصي بالتحقق من أنه تم تعيين الدور وأنه تمت إضافة الهوية إلى نظام المجموعة.

الجدول الهدف

يوجد خياران لتوجيه البيانات التي تم إدخالها: ثابت وديناميكي. بالنسبة لهذه المقالة، يمكنك استخدام التوجيه الثابت، حيث تحدد اسم الجدول وتنسيق البيانات والتعيين كقيم افتراضية. إذا تضمنت رسالة Event Hub معلومات توجيه البيانات، فإن معلومات التوجيه هذه ستتجاوز الإعدادات الافتراضية.

  1. املأ إعدادات التوجيه التالية:

    Default routing settings for ingesting data to Event Hub - Azure Synapse Data Explorer.

    الإعداد القيمة المقترحة وصف الحقل
    اسم الجدول TestTable الجدول الذي أنشأته في TestDatabase.
    تنسيق البيانات Json التنسيقات المدعومة هي Avro وCSV وJSON وMULTILINE JSON وORC وPARQUET وPSV وSCSV وSOHSV وTSV وTXT وTSVE وAPACHEAVRO وW3CLOG.
    التعيين TestMapping التعيين الذي أنشأته في TestDatabase، والذي يعيّن البيانات الواردة لأسماء الأعمدة وأنواع بيانات TestTable. مطلوب لـ JSON وMULTILINE JSON وAVRO واختياري للتنسيقات الأخرى.

    إشعار

    • لا يتعين عليك تحديد جميع إعدادات التوجيه الافتراضية. يتم أيضًا قبول الإعدادات الجزئية.
    • يتم استيعاب الأحداث المدرجة في قائمة الانتظار بعد إنشاء اتصال البيانات فقط.
  2. حدد إنشاء.

تعيين خصائص نظام الأحداث

إشعار

  • يتم دعم خصائص النظام لـ json والتنسيقات الجدولية (csv، tsv وما إلى ذلك) ولا يتم دعمها في البيانات المضغوطة. عند استخدام تنسيق غير مدعوم، سيستمر استيعاب البيانات، ولكن سيتم تجاهل الخصائص.
  • بالنسبة إلى البيانات المجدولة، يتم دعم خصائص النظام فقط لرسائل الأحداث ذات السجل الفردي.
  • بالنسبة لبيانات JSON، يتم أيضًا دعم خصائص النظام لرسائل الأحداث متعددة السجلات. في مثل هذه الحالات، تتم إضافة خصائص النظام فقط إلى السجل الأول لرسالة الحدث.
  • لتعيين csv، تتم إضافة الخصائص في بداية السجل بالترتيب المسرد في جدول System properties.
  • لتعيين json، تتم إضافة الخصائص وفقاً لأسماء الخصائص في جدول System properties.

إذا حددت Event system properties في قسم Data Source بالجدول، يجب عليك تضمين system properties في مخطط الجدول والتعيين.

نسخ سلسلة الاتصال

عند تشغيل نموذج التطبيق المدرج في المتطلبات الأساسية، فإنك تحتاج إلى سلسلة الاتصال لمساحة اسم مركز الحدث.

  1. ضمن مساحة الاسم Event Hub التي أنشأتها، حدد Shared access policies، ثم RootManageSharedAccessKey.

    Shared access policies.

  2. انسخ سلسلة الاتصال - المفتاح الأساسي. قمت بلصقه في القسم التالي.

    Connection string.

إنشاء عينات البيانات

استخدم نموذج التطبيق الذي نزّلته لإنشاء البيانات.

  1. افتح نموذج حل التطبيق في Visual Studio.

  2. في ملف program.cs، حدِّث الثابت eventHubName إلى اسم مركز الأحداث الخاص بك وحدِّث الثابت connectionString لسلسلة الاتصال التي نسختها من مساحة اسم Event Hub.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. قم بإنشاء التطبيق وتشغيله. يرسل التطبيق رسائل إلى Event Hub، ويطبع حالته كل 10 ثوانٍ.

  4. بعد أن يرسل التطبيق بعض الرسائل، انتقل إلى الخطوة التالية: مراجعة تدفق البيانات في مركز الأحداث وجدول الاختبار.

راجع تدفق البيانات

باستخدام التطبيق الذي يُنشئ البيانات، يمكنك الآن رؤية تدفق تلك البيانات من Event Hub إلى الجدول في مجموعتك.

  1. في مدخل Microsoft Azure، ضمن Event Hub، سترى الزيادة الكبيرة في النشاط أثناء تشغيل التطبيق.

    Event Hub graph.

  2. للتحقق من عدد الرسائل التي وصلت إلى قاعدة البيانات حتى الآن، قم بتشغيل الاستعلام التالي في قاعدة بيانات الاختبار الخاصة بك.

    TestTable
    | count
    
  3. لمعرفة محتوى الرسائل، قم بتشغيل الاستعلام التالي:

    TestTable
    

    يجب أن تبدو مجموعة النتائج مثل الصورة التالية:

    Message result set.

    إشعار

    • يحتوي Azure Synapse Data Explorer على نهج تجميع (تجميع) لاستيعاب البيانات، مصمم لتحسين عملية الاستيعاب. يتم تكوين نهج الدُفعات الافتراضية لإغلاق الدُفعة بمجرد أن يكون أحد الشروط التالية صحيحاً للدفعة: أقصى وقت تأخير يبلغ 5 دقائق، أو الحجم الإجمالي 1 جيجا، أو 1000 نقطة. لذلك، قد تواجه زمن انتقال. لمزيد من المعلومات، راجع نهج التجميع.
    • يتضمن عرض Event Hub وقت استجابة Event Hub لمدة 10 ثوانٍ أو 1 ميغابايت.
    • لتقليل تأخر وقت الاستجابة، قم بتكوين الجدول الخاص بك لدعم البث. راجع نهج البث.

تنظيف الموارد

إذا كنت لا تخطط لاستخدام Event Hub مرة أخرى، فقم بتنظيف test-hub-rgلتجنب تكبد التكاليف.

  1. من القائمة اليسرى في مدخل Azure، حدد مجموعات الموارد ثم حدد مجموعة الموارد التي أنشأتها.

    إذا تم طي القائمة اليسرى، فحدد Expand button. لتوسيعها.

    Select resource group to delete.

  2. ضمن test-Resource-group، حدد Delete resource group.

  3. في النافذة الجديدة، اكتب اسم مجموعة الموارد المراد حذفها (test-hub-rg)، ثم حدد Delete.

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