تقسيم إخراج كائن ثنائي كبير الحجم مخصص لـ Azure Stream Analytics

يدعم Azure Stream Analytics تقسيم إخراج الكائن الثنائي كبير الحجم المخصص مع الحقول أو السمات المخصصة وأنماط المسار المخصصة DateTime .

حقل أو سمات مخصصة

تعمل سمات الحقل أو الإدخال المخصصة على تحسين عمليات معالجة البيانات والإبلاغ عنها من خلال السماح بمزيد من التحكم في الإخراج.

الخيارات الخاصة بمفتاح القسم

قد يحتوي مفتاح القسم أو اسم العمود المستخدم لتقسيم بيانات الإدخال على أي حرف مقبول لأسماء الكائنات الثنائية كبيرة الحجم. لا يمكن استخدام الحقول المتداخلة كمفتاح قسم ما لم يتم استخدامها مع الأسماء المستعارة. ومع ذلك، يمكنك استخدام أحرف معينة لإنشاء تسلسل هرمي للملفات. على سبيل المثال، لإنشاء عمود يجمع بين البيانات من عمودين آخرين لإنشاء مفتاح قسم فريد، يمكنك استخدام الاستعلام التالي:

SELECT name, id, CONCAT(name, "/", id) AS nameid

يجب أن يكون NVARCHAR(MAX)مفتاح القسم أو BIGINTFLOATأو أو BIT (مستوى توافق 1.2 أو أعلى). DateTimeArrayالأنواع و و Records غير مدعومة، ولكن يمكن استخدامها كمفاتيح أقسام إذا تم تحويلها إلى سلاسل. لمزيد من المعلومات، راجع أنواع بيانات Azure Stream Analytics.

مثال

لنفترض أن الوظيفة تأخذ بيانات الإدخال من جلسات عمل المستخدم المباشرة المتصلة بخدمة ألعاب فيديو خارجية حيث تحتوي البيانات التي تم استيعابها على عمود client_id لتحديد الجلسات. لتقسيم البيانات حسب client_id، قم بتعيين حقل نمط مسار الكائن الثنائي كبير الحجم لتضمين رمز {client_id} مميز للقسم في خصائص إخراج الكائن الثنائي كبير الحجم عند إنشاء وظيفة. نظرا لأن البيانات ذات القيم المختلفة client_id تتدفق من خلال مهمة Stream Analytics، يتم حفظ بيانات الإخراج في مجلدات منفصلة استنادا إلى قيمة واحدة client_id لكل مجلد.

لقطة شاشة تعرض نمط المسار مع معرف العميل.

وبالمثل، إذا كان إدخال الوظيفة هو بيانات الاستشعار من ملايين أجهزة الاستشعار حيث كان sensor_idلكل جهاز استشعار ، فإن نمط المسار سيكون {sensor_id} لتقسيم كل بيانات أداة استشعار إلى مجلدات مختلفة.

عند استخدام REST API، قد يبدو قسم الإخراج لملف JSON المستخدم لهذا الطلب مثل الصورة التالية:

لقطة شاشة تعرض إخراج واجهة برمجة تطبيقات REST.

بعد بدء تشغيل المهمة، قد تبدو الحاوية clients مثل الصورة التالية:

لقطة شاشة تعرض حاوية العملاء.

قد يحتوي كل مجلد على كائنات ثنائية كبيرة الحجم متعددة حيث يحتوي كل كائن ثنائي كبير الحجم على سجل واحد أو أكثر. في المثال السابق، هناك كائن ثنائي كبير الحجم واحد في مجلد مسمى "06000000" بالمحتويات التالية:

لقطة شاشة تعرض محتويات الكائن الثنائي كبير الحجم.

لاحظ أن كل سجل في الكائن الثنائي كبير client_id الحجم يحتوي على عمود يطابق اسم المجلد لأن العمود المستخدم لتقسيم الإخراج في مسار الإخراج كان client_id.

القيود

  1. يسمح بمفتاح قسم مخصص واحد فقط في خاصية إخراج كائن ثنائي كبير الحجم لنمط المسار. كافة أنماط المسار التالية صالحة:

    • cluster1/{date}/{aFieldInMyData}
    • cluster1/{time}/{aFieldInMyData}
    • cluster1/{aFieldInMyData}
    • cluster1/{date}/{time}/{aFieldInMyData}
  2. إذا كان العملاء يرغبون في استخدام أكثر من حقل إدخال واحد، يمكنهم إنشاء مفتاح مركب في الاستعلام عن قسم المسار المخصص في إخراج blob باستخدام CONCAT. مثال على ذلك select concat (col1, col2) as compositeColumn into blobOutput from input . ثم يمكنهم تحديد compositeColumn كمسار مخصص في Azure Blob Storage.

  3. مفاتيح القسم غير حساسة لحالة الأحرف، لذا فإن مفاتيح القسم مثل John و john مكافئة. أيضا، لا يمكن استخدام التعبيرات كمفاتيح أقسام. على سبيل المثال، {columnA + columnB} لا يعمل.

  4. عندما يتكون دفق الإدخال من سجلات ذات علاقة أساسية لمفتاح القسم أقل من 8000، يتم إلحاق السجلات بالكائنات الثنائية كبيرة الحجم الموجودة. إنها تنشئ كائنات ثنائية كبيرة الحجم جديدة فقط عند الضرورة. إذا كانت العلاقة الأساسية أكثر من 8000، فلا يوجد ضمان بكتابة الكائنات الثنائية كبيرة الحجم الموجودة إليها. لن يتم إنشاء الكائنات الثنائية كبيرة الحجم الجديدة لعدد عشوائي من السجلات بنفس مفتاح القسم.

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

أنماط مسار DateTime المخصصة

تسمح لك أنماط المسار المخصصة DateTime بتحديد تنسيق إخراج يتماشى مع اصطلاحات Hive Streaming، ما يمنح Stream Analytics القدرة على إرسال البيانات إلى Azure HDInsight وAzure Databricks للمعالجة النهائية. يتم تنفيذ أنماط المسار المخصصة DateTime بسهولة باستخدام datetime الكلمة الأساسية في حقل بادئة المسار لإخراج الكائن الثنائي كبير الحجم، جنبا إلى جنب مع محدد التنسيق. مثال على ذلك {datetime:yyyy} .

الرموز المتميزة المدعومة

يمكن استخدام الرموز المميزة لمحدد التنسيق التالي وحدها أو بالاشتراك لتحقيق تنسيقات مخصصة DateTime .

محدد التنسيق ‏‏الوصف نتائج الوقت علي سبيل المثال 2018-01-02T10:06:08
{datetime:yyyy} السنة في صورة عدد مكون من أربعة أرقام 2018
{datetime:MM} من شهر 01 إلى 12 01
{datetime:M} الشهر 1 إلى 12 1
{datetime:dd} اليوم من 01 إلى 31 02
{datetime:d} يوم من 1 إلى 31 2
{datetime:HH} الساعة باستخدام تنسيق 24 ساعة، من 00 إلى 23 10
{datetime:mm} الدقائق من 00 إلى 60 06
{datetime:m} الدقائق من 0 إلى 60 6
{datetime:ss} الثواني من 00 إلى 60 08

إذا كنت لا تريد استخدام أنماط مخصصة DateTime ، يمكنك إضافة {date} و/أو {time} الرمز المميز إلى حقل بادئة المسار لإنشاء قائمة منسدلة بتنسيقات مضمنة DateTime .

لقطة شاشة تعرض تنسيقات التاريخ والوقت القديمة ل Stream Analytics.

التمدد والقيود

يمكنك استخدام العديد من الرموز المميزة ({datetime:<specifier>}) كما تريد في نمط المسار حتى تصل إلى حد أحرف بادئة المسار. لا يمكن دمج محددات التنسيق في رمز مميز واحد يتجاوز المجموعات المدرجة بالفعل بواسطة القوائم المنسدلة للتاريخ والوقت.

لقسم مسار من logs/MM/dd:

تعبير صالح ‏‏تعبير غير صالح
logs/{datetime:MM}/{datetime:dd} logs/{datetime:MM/dd}

يمكنك استخدام محدد التنسيق نفسه عدة مرات في بادئة المسار. تكرار الرمز المميز في كل مرة.

اصطلاحات دفق Hive

يمكن استخدام أنماط المسار المخصصة ل Blob Storage مع اصطلاح Apache Hive Streaming الذي يتوقع تسمية المجلدات باسم column= المجلد.

مثال على ذلك year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}/hour={datetime:HH} .

يزيل الإخراج المخصص متاعب تغيير الجداول وإضافة أقسام يدويا إلى بيانات المنفذ بين Stream Analytics وHive. بدلا من ذلك، يمكن إضافة العديد من المجلدات تلقائيا باستخدام:

MSCK REPAIR TABLE while hive.exec.dynamic.partition true

مثال

إنشاء حساب تخزين ومجموعة موارد ووظيفة Stream Analytics ومصدر إدخال وفقا للتشغيل السريع لمدخل Stream Analytics Azure. استخدم نفس البيانات النموذجية المستخدمة في التشغيل السريع. تتوفر عينة البيانات أيضا في GitHub.

أنشئ مصدر إخراج كائن ثنائي كبير الحجم بالتكوين التالي:

لقطة شاشة تعرض مصدر إخراج Stream Analytics لإنشاء كائن ثنائي كبير الحجم.

نمط المسار الكامل هو:

year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}

عند بدء الوظيفة، إنشاء بنية مجلد استنادًا إلى نمط المسار في حاوية الكائن الثنائي كبير الحجم. يمكنك التنقل للأسفل إلى مستوى اليوم.

لقطة شاشة تعرض إخراج كائن ثنائي كبير الحجم ل Stream Analytics مع نمط مسار مخصص.