تخزين Blob وإخراج Azure Data Lake Gen2 من Azure Stream Analytics
Data Lake Storage Gen2 يجعل Azure Storage الأساس لبناء مستودعات بيانات المؤسسة على Azure. تم تصميمها منذ البداية لخدمة عدد من البيتابايت من المعلومات مع الحفاظ على مئات الجيجابت من الإنتاجية، يسمح Data Lake Storage Gen2 لك بإدارة كميات هائلة من البيانات بسهولة. جزء أساسي من الجيل الثاني من تخزين Azure Data Lake هو إضافة مساحة اسم هرمية لنظام تخزين Blob.
توفر مساحة تخزين Azure Blob حلاً فعالاً من حيث التكلفة وقابل للتطوير لتخزين كميات كبيرة من البيانات غير المهيكلة في السحابة. للحصول على مقدمة حول تخزين Blob واستخدامه، راجع Upload النقاط وتنزيلها وإدراجها باستخدام مدخل Azure.
تكوين الإخراج
يسرد الجدول التالي أسماء الخصائص وأوصافها لإنشاء blob أو ناتج ADLS Gen2.
| اسم الخاصية | الوصف |
|---|---|
| اسم مستعار للإخراج | اسم مألوف يُستخدم في الاستعلامات لتوجيه إخراج الاستعلام إلى مساحة تخزين البيانات الثنائية الكبيرة هذه. |
| حساب التخزين | اسم حساب التخزين الذي ترسل إليه المخرجات. |
| مفتاح حساب السعة التخزينية | المفتاح السري المرتبط بحساب السعة التخزينية. |
| حاوية التخزين | تجميع منطقي للنقاط الثنائية الكبيرة المخزنة في خدمة Azure Blob. عندما تقوم بتحميل blob إلى خدمة Blob، يجب عليك تحديد حاوية لذلك blob. |
| نمط المسار | اختياري. نمط مسار الملف المستخدم لكتابة النقاط داخل الحاوية المحددة. في نمط المسار، يمكنك اختيار استخدام مثيل واحد أو أكثر من متغيرات التاريخ والوقت لتحديد التكرار الذي تتم كتابة النقط: {تاريخ}, {وقت} يمكنك استخدام تقسيم blob المخصص لتحديد اسم {field} مخصص واحد من بيانات الحدث إلى البيانات الكبيرة للأقسام. اسم الحقل أبجدي رقمي ويمكن أن يتضمن مسافات وواصلات وشرطات سفلية. تشمل القيود المفروضة على الحقول المخصصة ما يلي:
تتيح هذه الميزة استخدام تكوينات مخصصة لمحدِّد تنسيق التاريخ/الوقت في المسار. يجب تحديد تنسيقات التاريخ والوقت المخصصة واحدة تلو الأخرى، مرفقة بالكلمة الأساسية {datetime:<specifier>. المدخلات المسموح بها <للمحدد> هي yyyy أو MM أو M أو dd أو d أو HH أو H أو mm أو m أو ss أو s. يمكن استخدام الكلمة الأساسية {datetime:<specifier>} محدد عدة مرات في المسار لتشكيل تكوينات مخصصة للتاريخ/الوقت. أمثلة:
الطابع الزمني لهيكل المجلد الذي تم إنشاؤه يتبع التوقيت العالمي المنسق وليس التوقيت المحلي. System.Timestamp هو الوقت المستخدم لجميع التقسيم المستند إلى الوقت. تستخدم تسمية الملف الاصطلاح التالي: {Path Prefix Pattern}/schemaHashcode_Guid_Number.extension هنا يمثل Guid المعرف الفريد المعين لكاتب داخلي تم إنشاؤه للكتابة إلى ملف blob. يمثل الرقم فهرس كتلة الفقاعة. مثال على ملفات الإخراج:
لمزيد من المعلومات حول هذه الميزة، راجع تقسيم إخراج blob المخصص في Azure Stream Analytics. |
| تنسيق التاريخ | اختياري. إذا تم استخدام رمز التاريخ المميز في مسار البادئة، يمكنك تحديد تنسيق التاريخ الذي يتم تنظيم ملفاتك به. مثال: YYYY/MM/DD |
| تنسيق الوقت | اختياري. إذا تم استخدام رمز الوقت في مسار البادئة، فحدد تنسيق الوقت الذي يتم تنظيم ملفاتك به. القيمة الوحيدة المدعومة حاليًا هي HH. |
| تنسيق تسلسل الأحداث | تنسيق التسلسل لبيانات الإخراج. يتم دعم JSON وCSV وAvro وParquet. |
| الحد الأدنى للصفوف | عدد الصفوف الدنيا لكل دفعة. بالنسبة إلى باركيه، ستنشئ كل دفعة ملفًا جديدًا. القيمة الافتراضية الحالية هي 2000 صف والحد الأقصى المسموح به هو 10000 صف. |
| أقصى وقت | أقصى وقت انتظار لكل دفعة. بعد هذا الوقت، ستتم كتابة الدُفعة في الإخراج حتى إذا لم يتم استيفاء الحد الأدنى من متطلبات الصفوف. القيمة الافتراضية الحالية هي دقيقة واحدة والحد الأقصى المسموح به هو ساعتان. إذا كان إخراج كائن تخزين البيانات الثنائية الكبيرة الخاص بك يحتوي على تردد نمط مسار، فلا يمكن أن يكون وقت الانتظار أعلى من النطاق الزمني للقسم. |
| الترميز | إذا كنت تستخدم تنسيق CSV أو JSON، فيجب تحديد ترميز. UTF-8 هو تنسيق الترميز الوحيد المدعوم في الوقت الحالي. |
| المحدِد | ينطبق فقط على تسلسل CSV. يدعم Stream Analytics عددا من المحددات الشائعة لتسلسل بيانات CSV. القيم المدعومة هي الفاصلة، والفاصلة المنقوطة، والمسافة، وعلامة الجدولة، والشريط العمودي. |
| تنسيق | ينطبق فقط على تسلسل JSON. يحدد الخط المنفصل أن الإخراج يتم تنسيقه عن طريق فصل كل كائن JSON بواسطة سطر جديد. إذا قمت بتحديد خط منفصل، قراءة JSON كائنا واحدا في كل مرة. المحتوى بأكمله في حد ذاته لن يكون JSON صالحا. يحدد الصفيف أن الإخراج منسق كصفيف من كائنات JSON. يتم إغلاق هذه المصفوفة فقط عند توقف الوظيفة أو عند انتقال Stream Analytics إلى نافذة الوقت التالية. بشكل عام ، من الأفضل استخدام JSON مفصول بالأسطر ، لأنه لا يتطلب أي معالجة خاصة أثناء استمرار كتابة ملف الإخراج عليه. |
ملفات إخراج Blob
عند استخدام تخزين Blob كمخرجات، يتم إنشاء ملف جديد في النقطة في الحالات التالية:
- إذا تجاوز الملف الحد الأقصى لعدد الكتل المسموح بها (حاليًا 50000). قد تصل إلى الحد الأقصى المسموح به من عدد الكتل دون الوصول إلى الحد الأقصى المسموح به لحجم البيانات الثنائية الكبيرة. على سبيل المثال، إذا كان معدل الإخراج مرتفعًا، يمكنك رؤية المزيد من وحدات البايت لكل كتلة، ويكون حجم الملف أكبر. إذا كان معدل الإخراج منخفضًا، فإن كل كتلة بها بيانات أقل، ويكون حجم الملف أصغر.
- إذا كان هناك تغيير في المخطط في الإخراج ، ويتطلب تنسيق الإخراج مخططا ثابتا (CSV و Avro و Parquet).
- في حالة إعادة تشغيل مهمة ما، إما خارجيًا من قِبل مستخدم يوقفها وبدء تشغيلها، أو داخليًا لصيانة النظام أو استرداد الأخطاء.
- إذا كان الاستعلام مقسمًا بالكامل، وتم إنشاء ملف جديد لكل قسم من أقسام الإخراج. يأتي هذا من استخدام PARTITION BY، أو التوازي الأصلي الذي تم تقديمه في مستوى التوافق 1.2
- إذا قام المستخدم بحذف ملف أو حاوية لحساب التخزين.
- إذا كان الإخراج عبارة عن وقت مقسم باستخدام نمط بادئة المسار، ويتم استخدام blob جديد عندما ينتقل الاستعلام إلى الساعة التالية.
- إذا تم تقسيم الإخراج من قِبل حقل مخصص، ويتم إنشاء blob جديد لكل مفتاح قسم إذا لم يكن موجودًا.
- إذا تم تقسيم الإخراج من قِبل حقل مخصص حيث يتجاوز عدد العناصر الأساسية لمفتاح القسم 8000، ويتم إنشاء blob جديد لكل مفتاح قسم.
التقسيم
بالنسبة لمفتاح القسم، استخدم الرموز المميزة {date} و {time} من حقول الحدث في نمط المسار. اختر تنسيق التاريخ، مثل YYYY/MM/DD أو DD/MM/YYYY أو MM-DD-YYYY. يُستخدم HH لتنسيق الوقت. يمكن تقسيم إخراج Blob من قِبل سمة حدث مخصصة واحدة {fieldname} أو {datetime:<specifier>}. يتبع عدد كتاب المخرجات تقسيم الإدخال للاستعلامات المتوازية تماما.
حجم دفعة الإخراج
للحصول على الحد الأقصى لحجم الرسالة، راجع حدود تخزين Azure. الحد الأقصى لحجم كتلة الفقاعة هو 4 ميغابايت والحد الأقصى لعدد كتلة الفقاعة هو 50000.
التقييدات
- إذا تم استخدام / في نمط المسار (على سبيل المثال /folder2/folder3)، إنشاء مجلدات فارغة ولن تكون مرئية في مستكشف التخزين
- يلحق Azure Stream Analytics بنفس الملف في الحالات التي لا تكون فيها هناك حاجة إلى ملف نقطة جديد. يرجى ملاحظة أن هذا قد يتسبب في إنشاء مشغلات إضافية إذا تم تكوين خدمات azure مثل شبكة الأحداث ليتم تشغيلها عند تحديث ملف blob
- يتم إلحاق Azure Stream Analytics بالنقطة بشكل افتراضي. عندما يكون تنسيق الإخراج عبارة عن صفيف Json ، فإنه يكمل الملف عند إيقاف التشغيل أو عندما ينتقل الإخراج إلى قسم المرة التالية للمخرجات المقسمة بالوقت. لاحظ أنه في بعض الحالات مثل إعادة التشغيل غير النظيفة، من الممكن أن يكون الإغلاق "]" لصفيف json مفقودا.