دفق البيانات كإدخال في Stream Analytics
يحتوي Stream Analytics على تكامل من الدرجة الأولى مع تدفقات بيانات Azure كمدخلات من ثلاثة أنواع من الموارد:
يمكن أن تعيش موارد الإدخال هذه في اشتراك Azure نفسه مثل وظيفة Stream Analytics أو اشتراك مختلف.
الضغط
يدعم Stream Analytics الضغط لجميع مصادر الإدخال. أنواع الضغط المدعومة هي: None وGzip وDefflate. لا يتوفر دعم الضغط للبيانات المرجعية. إذا كانت بيانات الإدخال مضغوطة من بيانات Avro، فإن Stream Analytics يعالجها بشفافية. لا تحتاج إلى تحديد نوع الضغط باستخدام تسلسل Avro.
إنشاء المدخلات أو تحريرها أو اختبارها
يمكنك استخدام مدخل Azure وVisual Studio وVisual Studio Code لإضافة وعرض أو تحرير المدخلات الموجودة في مهمة الدفق الخاصة بك. يمكنك أيضًا اختبار اتصالات الإدخال واستعلامات الاختبار من بيانات نموذجية من مدخل Azure و Visual Studio و Visual Studio Code. عندما تكتب استعلامًا، فأنت تسرد الإدخال في عبارة FROM. يمكنك الحصول على قائمة المدخلات المتاحة من صفحة الاستعلام في المدخل. إذا كنت ترغب في استخدام مدخلات متعددة، JOIN
فها أو كتابة استعلامات متعددة SELECT
.
إشعار
نوصي بشدة باستخدام أدوات Stream Analytics ل Visual Studio Code للحصول على أفضل تجربة تطوير محلية. هناك فجوات في الميزات المعروفة في أدوات Stream Analytics لبرنامج Visual Studio 2019 (الإصدار 2.6.3000.0) ولن يتم تحسينها من الآن فصاعداً.
دفق البيانات من Event Hubs
Azure Event Hubs هو استيعاب حدث نشر-اشتراك قابل للتطوير بدرجة كبيرة. يمكن لمركز الأحداث جمع ملايين الأحداث في الثانية بحيث يمكنك معالجة وتحليل الكميات الهائلة من البيانات التي تنتجها الأجهزة والتطبيقات المتصلة. معا، يمكن أن توفر مراكز الأحداث و Stream Analytics حلا من طرف إلى طرف للتحليات في الوقت الفعلي. تتيح لك Event Hubs تغذية الأحداث في Azure في الوقت الفعلي، ويمكن لوظائف Stream Analytics معالجة هذه الأحداث في الوقت الفعلي. على سبيل المثال، يمكنك إرسال نقرات الويب أو قراءات أجهزة الاستشعار أو أحداث السجل عبر الإنترنت إلى Event Hubs. يمكنك بعد ذلك إنشاء وظائف Stream Analytics لاستخدام مراكز الأحداث لبيانات الإدخال للتصفية والتجميع والارتباط في الوقت الفعلي.
EventEnqueuedUtcTime
هو الطابع الزمني لوصول حدث ما في مركز الأحداث وهو الطابع الزمني الافتراضي للأحداث القادمة من مركز الأحداث إلى Stream Analytics. لمعالجة البيانات كتدفق باستخدام طابع زمني في حمولة الحدث، يجب عليك استخدام الكلمة الأساسية TIMESTAMP BY.
مجموعات مستهلكي مركز الأحداث
يجب تكوين كل إدخال مركز أحداث ليكون لديك مجموعة المستهلكين الخاصة به. عندما تحتوي الوظيفة على ارتباط ذاتي أو لديها مدخلات متعددة، فقد تتم قراءة مجموعة من المدخلات من قبل أكثر من قارئ واحد في نهاية المطاف. يؤثر هذا الموقف على عدد القراء في مجموعة مستهلكين واحدة. لتجنب تجاوز حد مراكز الأحداث الذي يبلغ خمسة قراء لكل مجموعة مستهلكين لكل قسم، فمن أفضل الممارسات تعيين مجموعة مستهلكين لكل وظيفة Stream Analytics. هناك أيضا حد يبلغ 20 مجموعة مستهلكين لمركز أحداث المستوى القياسي. لمزيد من المعلومات، راجع استكشاف أخطاء إدخالات Azure Stream Analytics وإصلاحها.
إنشاء مدخلات من Event Hubs
يوضح الجدول التالي كل خاصية في صفحة الإدخال الجديد في مدخل Azure لدفق إدخال البيانات من مركز الأحداث:
الخاصية | الوصف |
---|---|
الاسم المستعار للإدخل | اسم مألوف تستخدمه في استعلام الوظيفة للإشارة إلى هذا الإدخال. |
الاشتراك | اختر اشتراك Azure الذي يوجد فيه مورد مركز الأحداث. |
مساحة اسم Event Hub | مساحة اسم مراكز الأحداث هي حاوية لمراكز الأحداث. عند إنشاء مركز أحداث، يمكنك أيضا إنشاء مساحة الاسم. |
اسم Event Hub | اسم مركز الحدث المراد استخدامه كمدخل. |
مجموعة مستهلكي مركز الأحداث (موصى به) | نوصي باستخدام مجموعة مستهلكين مميزة لكل وظيفة في Stream Analytics. تحدد هذه السلسلة مجموعة المستهلكين لاستخدامها في جلب البيانات من مركز الأحداث. إذا لم يتم تحديد مجموعة مستهلكين، فإن وظيفة Stream Analytics تستخدم مجموعة المستهلكين $Default . |
وضع المصادقة | حدد نوع المصادقة التي تريد استخدامها للاتصال بمركز الأحداث. يمكنك استخدام سلسلة الاتصال أو هوية مدارة للمصادقة مع مركز الأحداث. بالنسبة لخيار الهوية المدارة، يمكنك إما إنشاء هوية مدارة معينة من قبل النظام لوظيفة Stream Analytics أو هوية مدارة يعينها المستخدم للمصادقة مع مركز الأحداث. عند استخدام هوية مدارة، يجب أن تكون الهوية المدارة عضوا في Azure Event Hubs Data Receiver أو أدوار مالك بيانات مراكز الأحداث Azure. |
اسم نهج Event Hub | نهج الوصول المشترك الذي يوفر الوصول إلى مراكز الأحداث. لكل نهج وصول مشترك اسم وأذونات تقوم بتعيينها ومفاتيح وصول. يتم ملء هذا الخيار تلقائيًا، ما لم تحدد خيار توفير إعدادات مراكز الأحداث يدويًا. |
مفتاح التقسيم | إنه حقل اختياري يتوفر فقط إذا تم تكوين وظيفتك لاستخدام مستوى التوافق 1.2 أو أعلى. في حالة تقسيم الإدخال الخاص بك بواسطة خاصية، يمكنك إضافة اسم هذه الخاصية هنا. يتم استخدامه لتحسين أداء الاستعلام الخاص بك إذا كان يتضمن عبارة PARTITION BY أو GROUP BY في هذه الخاصية. إذا كانت هذه المهمة تستخدم مستوى التوافق 1.2 أو أعلى، فسيتم تعيين هذا الحقل افتراضيا إلى PartitionId. |
تنسيق تسلسل الأحداث | تنسيق التسلسل (JSON أو CSV أو Avro أو Parquet أو Other (Protobuf أو XML أو privatey...)) لتدفق البيانات الواردة. تأكد من أن تنسيق JSON يتوافق مع المواصفات ولا يتضمن الصفر البادئ للأرقام العشرية. |
الترميز | UTF-8 هو تنسيق الترميز الوحيد المدعوم حاليًا. |
نوع ضغط الحدث | نوع الضغط المستخدم لقراءة تدفق البيانات الواردة، مثل لا شيء (افتراضي) أو Gzip أو Deflate. |
سجل المخطط (معاينة) | يمكنك تحديد سجل المخطط مع مخططات لبيانات الحدث التي تم تلقيها من مركز الأحداث. |
عندما تأتي بياناتك من إدخال تدفق مراكز الأحداث، يكون لديك حق الوصول إلى حقول بيانات التعريف التالية في استعلام Stream Analytics:
الخاصية | الوصف |
---|---|
EventProcessedUtcTime | التاريخ والوقت الذي يعالج فيه Stream Analytics الحدث. |
EventEnqueuedUtcTime | التاريخ والوقت الذي تتلقى فيه مراكز الأحداث الأحداث. |
معرف القسم | معرف القسم الصفري لمحول الإدخال. |
على سبيل المثال، باستخدام هذه الحقول، يمكنك كتابة استعلام مثل المثال التالي:
SELECT
EventProcessedUtcTime,
EventEnqueuedUtcTime,
PartitionId
FROM Input
إشعار
عند استخدام مراكز الأحداث كنقطة نهاية لمسارات مركز IoT، يمكنك الوصول إلى بيانات تعريف مركز IoT باستخدام الدالة GetMetadataPropertyValue.
دفق البيانات من IoT Hub
يعد Azure IoT Hub أحد الفعاليات القابلة للتطوير والاشتراك في الأحداث والتي تم تحسينها لسيناريوهات إنترنت الأشياء.
الطابع الزمني الافتراضي للأحداث القادمة من IoT Hub في Stream Analytics هو الطابع الزمني الذي وصل إليه الحدث في IoT Hub، وهو EventEnqueuedUtcTime
. لمعالجة البيانات كتدفق باستخدام طابع زمني في حمولة الحدث، يجب عليك استخدام الكلمة الأساسية TIMESTAMP BY.
مجموعات مستهلكي مركز IoT
يجب عليك تكوين كل إدخال Stream Analytics IoT Hub ليكون لديك مجموعة المستهلكين الخاصة به. عندما تحتوي الوظيفة على صلة ذاتية أو عندما تحتوي على مدخلات متعددة، فقد تتم قراءة بعض المدخلات من قبل أكثر من قارئ واحد في نهاية المطاف. يؤثر هذا الموقف على عدد القراء في مجموعة مستهلكين واحدة. لتجنب تجاوز حد مركز Azure IoT الذي يبلغ خمسة قراء لكل مجموعة مستهلكين لكل قسم، فمن أفضل الممارسات تعيين مجموعة مستهلكين لكل وظيفة Stream Analytics.
تكوين IoT Hub كإدخال دفق البيانات
يشرح الجدول التالي كل خاصية في صفحة الإدخال الجديدة في مدخل Azure عند تكوين مركز IoT كإدخال دفق.
الخاصية | الوصف |
---|---|
الاسم المستعار للإدخل | اسم مألوف تستخدمه في استعلام الوظيفة للإشارة إلى هذا الإدخال. |
الاشتراك | اختر الاشتراك الذي يوجد فيه مورد IoT Hub. |
مركز IoT | اسم IoT Hub الذي سيتم استخدامه كمدخل. |
مجموعة المستهلكين | نوصي باستخدام مجموعة مستهلكين مختلفة لكل وظيفة Stream Analytics. تُستخدم مجموعة المستهلكين لاستيعاب البيانات من IoT Hub. يستخدم Stream Analytics مجموعة المستهلك $Default ما لم تُحدِد خلاف ذلك. |
اسم نهج الوصول المشترك | نهج الوصول المشترك التي توفر الوصول إلى IoT Hub. لكل نهج وصول مشترك اسم وأذونات تقوم بتعيينها ومفاتيح وصول. |
مفتاح نهج الوصول المشترك | مفتاح الوصول المشترك المستخدم للسماح بالوصول إلى IoT Hub. يتم ملء هذا الخيار تلقائيًا ما لم تحدد خيار توفير إعدادات Iot Hub يدويًا. |
نقطه النهايه | نقطة النهاية لـ IoT Hub. |
مفتاح التقسيم | إنه حقل اختياري يتوفر فقط إذا تم تكوين وظيفتك لاستخدام مستوى التوافق 1.2 أو أعلى. في حالة تقسيم الإدخال الخاص بك بواسطة خاصية، يمكنك إضافة اسم هذه الخاصية هنا. يتم استخدامه لتحسين أداء الاستعلام الخاص بك إذا كان يتضمن عبارة PARTITION BY أو GROUP BY على هذه الخاصية. إذا كانت هذه المهمة تستخدم مستوى التوافق 1.2 أو أعلى، فسيتم تعيين هذا الحقل افتراضيا إلى "PartitionId". |
تنسيق تسلسل الأحداث | تنسيق التسلسل (JSON أو CSV أو Avro أو Parquet أو Other (Protobuf أو XML أو privatey...)) لتدفق البيانات الواردة. تأكد من أن تنسيق JSON يتوافق مع المواصفات ولا يتضمن الصفر البادئ للأرقام العشرية. |
الترميز | UTF-8 هو تنسيق الترميز الوحيد المدعوم حاليًا. |
نوع ضغط الحدث | نوع الضغط المستخدم لقراءة تدفق البيانات الواردة، مثل لا شيء (افتراضي) أو Gzip أو Deflate. |
عند استخدام دفق البيانات من IoT Hub، يمكنك الوصول إلى حقول بيانات التعريف التالية في استعلام Stream Analytics:
الخاصية | الوصف |
---|---|
EventProcessedUtcTime | تاريخ ووقت معالجة الحدث. |
EventEnqueuedUtcTime | التاريخ والوقت الذي يتلقى فيه IoT Hub الحدث. |
معرف القسم | معرف القسم الصفري لمحول الإدخال. |
IoTHub.MessageId | معرّف يُستخدم لربط الاتصال ثنائي الاتجاه في مركز IoT. |
IoTHub.CorrelationId | معرّف يُستخدم في ردود الرسائل والتعليقات في مركز IoT. |
IoTHub. الاتصال ionDeviceId | معرّف المصادقة المستخدم لإرسال هذه الرسالة. يتم ختم هذه القيمة على الرسائل المرتبطة بالخدمة بواسطة IoT Hub. |
IoTHub. الاتصال ionDeviceGenerationId | معرّف إنشاء الجهاز المصادق عليه والذي تم استخدامه لإرسال هذه الرسالة. يتم ختم هذه القيمة على رسائل الخدمة من خلال IoT Hub. |
IoTHub.EnqueuedTime | الوقت الذي يتلقى فيه IoT Hub الرسالة. |
دفق البيانات من تخزين Blob أو Data Lake Storage Gen2
بالنسبة للسيناريوهات ذات الكميات الكبيرة من البيانات غير المنظمة لتخزينها في السحابة، يوفر تخزين Azure Blob أو Azure Data Lake Storage Gen2 حلا فعالا من حيث التكلفة وقابلا للتطوير. تعتبر البيانات في تخزين Blob أو Azure Data Lake Storage Gen2 بيانات ثابتة. ومع ذلك، يمكن معالجة هذه البيانات كتدفق بيانات بواسطة Stream Analytics.
معالجة السجل هو سيناريو شائع الاستخدام لاستخدام مدخلات تخزين كائن ثنائي كبير الحجم مع Stream Analytics. في هذا السيناريو، يتم التقاط ملفات بيانات تتبع الاستخدام من نظام وتحتاج إلى تحليلها ومعالجتها لاستخراج بيانات ذات معنى.
الطابع الزمني الافتراضي لتخزين Blob أو حدث Azure Data Lake Storage Gen2 في Stream Analytics هو الطابع الزمني الذي تم تعديله آخر مرة، وهو BlobLastModifiedUtcTime
. إذا تم تحميل كائن ثنائي كبير الحجم إلى حساب تخزين في تمام الساعة 13:00، وبدأت وظيفة Azure Stream Analytics باستخدام الخيار الآن في تمام الساعة 13:01، فلن يتم التقاط كائن ثنائي كبير الحجم نظرًا لأن الوقت المعدل يقع خارج فترة تشغيل الوظيفة.
في حالة تحميل كائن ثنائي كبير الحجم إلى حاوية حساب تخزين في تمام الساعة 13:00، وبدأت وظيفة Azure Stream Analytics باستخدام وقت مخصص في تمام الساعة 13:00 أو قبل ذلك، فسيتم انتقاء كائن ثنائي كبير الحجم لأن الوقت المعدل يقع داخل فترة تشغيل الوظيفة.
إذا بدأت مهمة Azure Stream Analytics باستخدام الآن في الساعة 13:00، وتم تحميل كائن ثنائي كبير الحجم إلى حاوية حساب التخزين في الساعة 13:01، يلتقط Azure Stream Analytics الكائن الثنائي كبير الحجم. يعتمد الطابع الزمني المعين لكل كائن ثنائي كبير الحجم فقط على BlobLastModifiedTime
. المجلد الذي يوجد فيه الكائن الثنائي كبير الحجم لا علاقة له بالطوابع الزمنية المعينة. على سبيل المثال، إذا كان هناك كائن 2019/10-01/00/b1.txt
ثنائي كبير الحجم مع BlobLastModifiedTime
من 2019-11-11
، فإن الطابع الزمني المعين لهذا الكائن الثنائي كبير الحجم هو 2019-11-11
.
لمعالجة البيانات كتدفق باستخدام طابع زمني في حمولة الحدث، يجب عليك استخدام الكلمة الأساسية TIMESTAMP BY. تسحب مهمة Stream Analytics البيانات من تخزين Azure Blob أو إدخال Azure Data Lake Storage Gen2 كل ثانية إذا كان ملف blob متوفرا. إذا لم يكن ملف الكائن الثنائي كبير الحجم متوفرا، فهناك تراجع أسي بحد أقصى للتأخير الزمني 90 ثانية.
إشعار
لا يدعم Stream Analytics إضافة محتوى إلى ملف blob موجود. سيعرض Stream Analytics كل ملف مرة واحدة فقط، ولن تتم معالجة أي تغييرات تحدث في الملف بعد قراءة الوظيفة للبيانات. أفضل الممارسات هي تحميل جميع البيانات لملف كائن ثنائي كبير الحجم مرة واحدة ثم إضافة أحداث أخرى جديدة إلى ملف كائن ثنائي كبير جديد ومختلف.
في السيناريوهات التي تتم فيها إضافة العديد من الكائنات الثنائية كبيرة الحجم باستمرار ومعالجة Stream Analytics للكائنات الثنائية كبيرة الحجم عند إضافتها، من الممكن تخطي بعض الكائنات الثنائية كبيرة الحجم في حالات نادرة بسبب دقة BlobLastModifiedTime
. يمكنك التخفيف من هذه الحالة عن طريق تحميل الكائنات الثنائية كبيرة الحجم على الأقل بعد ثانيتين. إذا لم يكن هذا الخيار ممكنا، يمكنك استخدام مراكز الأحداث لدفق كميات كبيرة من الأحداث.
تكوين تخزين Blob كإدخال دفق
يوضح الجدول التالي كل خاصية في صفحة الإدخال الجديدة في مدخل Azure عندما تقوم بتكوين تخزين كائن ثنائي كبير الحجم كإدخال دفق.
الخاصية | الوصف |
---|---|
الاسم المستعار للإدخل | اسم مألوف تستخدمه في استعلام الوظيفة للإشارة إلى هذا الإدخال. |
الاشتراك | اختر الاشتراك الذي يوجد فيه مورد تخزين. |
حساب التخزين | اسم حساب التخزين حيث توجد ملفات blob. |
مفتاح حساب التخزين | المفتاح السري المرتبط بحساب السعة التخزينية. يتم ملء هذا الخيار تلقائيًا ما لم تحدد خيار توفير إعدادات يدويًا. |
الحاوية | توفر الحاويات تجميع منطقي للكائن الثنائي كبير الحجم. يمكنك اختيار استخدام حاوية موجودة أو إنشاء حاوية جديدة لإنشاء حاوية جديدة. |
وضع المصادقة | حدد نوع المصادقة التي تريد استخدامها للاتصال بحساب التخزين. يمكنك استخدام سلسلة الاتصال أو هوية مدارة للمصادقة باستخدام حساب التخزين. بالنسبة لخيار الهوية المدارة، يمكنك إما إنشاء هوية مدارة معينة من قبل النظام إلى مهمة Stream Analytics أو هوية مدارة يعينها المستخدم للمصادقة مع حساب التخزين. عند استخدام هوية مدارة، يجب أن تكون الهوية المدارة عضوا في دور مناسب على حساب التخزين. |
نمط المسار (اختياري) | مسار الملف المستخدم لتحديد موقع النقاط الكبيرة داخل الحاوية المحددة. إذا كنت تريد قراءة الكائنات الثنائية كبيرة الحجم من جذر الحاوية، فلا تقم بتعيين نمط مسار. ضمن المسار، يمكنك تحديد مثيل واحد أو أكثر من المتغيرات الثلاثة التالية: {date} ، {time} أو {partition} مثال 1: cluster1/logs/{date}/{time}/{partition} مثال 2: cluster1/logs/{date} * الحرف ليس قيمة مسموح بها لبادئة المسار. مسموح فقط بأحرف كائن ثنائي كبير الحجم Azure الصالحة. لا تقم بتضمين أسماء الحاويات أو أسماء الملفات. |
تنسيق التاريخ (اختياري) | إذا كنت تستخدم متغير التاريخ في المسار، فإن تنسيق التاريخ الذي يتم تنظيم الملفات به. مثال: YYYY/MM/DD عندما يكون إدخال الكائن الثنائي كبير الحجم {date} أو {time} في مساره، تأتي المجلدات بترتيب زمني تصاعدي. |
تنسيق الوقت (اختياري) | إذا كنت تستخدم متغير الوقت في المسار، فسيتم تنسيق الوقت الذي يتم فيه تنظيم الملفات. القيمة الوحيدة المدعومة حاليًا هي HH للساعات. |
مفتاح التقسيم | إنه حقل اختياري يتوفر فقط إذا تم تكوين وظيفتك لاستخدام مستوى التوافق 1.2 أو أعلى. في حالة تقسيم الإدخال الخاص بك بواسطة خاصية، يمكنك إضافة اسم هذه الخاصية هنا. يتم استخدامه لتحسين أداء الاستعلام الخاص بك إذا كان يتضمن عبارة PARTITION BY أو GROUP BY على هذه الخاصية. إذا كانت هذه المهمة تستخدم مستوى التوافق 1.2 أو أعلى، فسيتم تعيين هذا الحقل افتراضيا إلى "PartitionId". |
عدد أقسام الإدخال | يتوفر هذا الحقل فقط عندما يكون {القسم} موجودا في نمط المسار. قيمة هذه الخاصية هي عدد صحيح >=1. أينما يظهر {القسم} في نمط المسار، سيستخدم رقم بين 0 وقيمة هذا الحقل -1. |
تنسيق تسلسل الأحداث | تنسيق التسلسل (JSON أو CSV أو Avro أو Parquet أو Other (Protobuf أو XML أو privatey...)) لتدفق البيانات الواردة. تأكد من أن تنسيق JSON يتوافق مع المواصفات ولا يتضمن الصفر البادئ للأرقام العشرية. |
الترميز | بالنسبة لملفات CSV وJSON، فإن UTF-8 هو تنسيق الترميز الوحيد المدعوم حاليًا. |
ضغط | نوع الضغط المستخدم لقراءة تدفق البيانات الواردة، مثل لا شيء (افتراضي) أو Gzip أو Deflate. |
عندما تأتي بياناتك من مصدر تخزين Blob، يمكنك الوصول إلى حقول بيانات التعريف التالية في استعلام Stream Analytics:
الخاصية | الوصف |
---|---|
BlobName | اسم كائن البيانات الثنائية الكبيرة الذي جاء منه الحدث. |
EventProcessedUtcTime | التاريخ والوقت الذي يعالج فيه Stream Analytics الحدث. |
BlobLastModifiedUtcTime | تاريخ ووقت آخر تعديل لـ blob. |
معرف القسم | معرف القسم الصفري لمحول الإدخال. |
على سبيل المثال، باستخدام هذه الحقول، يمكنك كتابة استعلام مثل المثال التالي:
SELECT
BlobName,
EventProcessedUtcTime,
BlobLastModifiedUtcTime
FROM Input
دفق البيانات من Apache Kafka
يتيح لك Azure Stream Analytics الاتصال مباشرة بمجموعة Apache Kafka لاستيعاب البيانات. الحل منخفض التعليمات البرمجية ويديره بالكامل فريق Azure Stream Analytics في Microsoft، ما يسمح له بتلبية معايير التوافق مع الأعمال. إدخال Kafka متوافق مع الإصدارات السابقة ويدعم جميع الإصدارات مع أحدث إصدار للعميل بدءا من الإصدار 0.10. يمكن للمستخدمين الاتصال بنظام مجموعات Kafka داخل شبكة ظاهرية ومجموعات Kafka بنقطة نهاية عامة، اعتمادا على التكوينات. يعتمد التكوين على اصطلاحات تكوين Kafka الموجودة. أنواع الضغط المدعومة هي None وGzip وSnapy وLZ4 وZstd.
لمزيد من المعلومات، راجع دفق البيانات من Kafka إلى Azure Stream Analytics (معاينة).