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

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

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

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

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

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

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

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

مثال

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

نمط المسار مع هوية العميل

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

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

إخراج واجهة برمجة تطبيقات REST

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

حاوية العملاء

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

محتويات كائنات ثنائية كبيرة الحجم

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

التقييدات

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

    • cluster1/{date}/{aFieldInMyData}
    • cluster1/{time}/{aFieldInMyData}
    • cluster1/{aFieldInMyData}
    • cluster1/{date}/{time}/{aFieldInMyData}
  2. إذا كان العملاء يريدون استخدام أكثر من حقل إدخال واحد، يمكنهم إنشاء مفتاح مركب في الاستعلام لقسم المسار المخصص في إخراج كائن ثنائي كبير الحجم باستخدام CONCAT. على سبيل المثال: حدد concat (col1، col2) كـ compositeColumn في blobOutput من الإدخال. ثم يمكنهم تحديد compositeColumn كالمسار المخصص في تخزين الكائن الثنائي كبير الحجم.

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

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

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

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

تسمح لك أنماط مسار DateTime المخصصة بتحديد تنسيق الإخراج يتوافق مع اصطلاحات دفق Hive، ما يمنح Azure Stream Analytics القدرة على إرسال البيانات إلى Azure HDInsight وAzure Databricks للمعالجة النهائية. تنفيذ أنماط مسار التاريخ والوقت المخصصة بسهولة باستخدام الكلمة الأساسية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 المضمنة.

التنسيقات القديمة لـ DateTime في Stream Analytics

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

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

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

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

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

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

يمكن استخدام أنماط المسار المخصصة لتخزين كائن ثنائي كبير الحجم مع اصطلاح دفق Hive الذي يتوقع أن يتم تسمية المجلدات باسم column= في اسم المجلد.

على سبيل المثال، ⁧year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}/hour={datetime:HH}⁩.

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

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

مثال

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

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

دفق تحليلات إنشاء مخزن إخراج البيانات الثنائية الكبيرة

شكل المسار الكامل كما يلي:

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

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

تدفق إخراج البيانات الثنائية الأبعاد للتحليلات مع نمط مسار مخصص

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