التقسيم المخصص في Azure Synapse Link ل Azure Cosmos DB

ينطبق على: NoSQL MongoDB العفريت

تقسيم مخصص تمكنك من تقسيم بيانات مخزن التحليلية، على الحقول التي تستخدم عادة كعوامل تصفية في الاستعلامات التحليلية، ما أدى إلى تحسين أداء الاستعلام.

في هذه المقالة، ستتعلم كيفية تقسيم بياناتك في مخزن Azure Cosmos DB التحليلي باستخدام مفاتيح مهمة لأحمال العمل التحليلية. كما يشرح كيفية الاستفادة من تحسين أداء الاستعلام مع تقسيم التقليم. يمكنك أيضا معرفة كيفية تحسين التقسيم المخصص لأداء الاستعلامات عندما يكون لأحمال العمل عدد كبير من التحديثات أو الحذف.

إشعار

يجب تمكين Azure Synapse Link لحسابات وحاويات Azure Cosmos DB للاستفادة من التقسيم المخصص.

كيف تعمل هذه الوظيفة؟

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

يمكنك تشغيل التقسيم من دفتر ملاحظات Azure Synapse Spark باستخدام Azure Synapse Link. يمكنك جدولة تشغيله كوظيفة خلفية، مرة أو مرتين في اليوم ولكن يمكن تنفيذه في كثير من الأحيان، إذا لزم الأمر.

إشعار

يشير المخزن المقسم إلى حساب التخزين الأساسي ADLS Gen2 المرتبط بمساحة عمل Azure Synapse.

هندسة مخزن مقسمة في ارتباط نقاط الاشتباك العصبي Azure Cosmos DB

يحتوي المخزن المقسم على بيانات تحليلية Azure Cosmos DB حتى آخر طابع زمني قمت بتشغيل مهمة التقسيم. عند الاستعلام عن البيانات التحليلية باستخدام عوامل تصفية مفتاح القسم، يقوم Synapse Link تلقائيا بدمج بيانات المخزن المقسم مع أحدث التغييرات في المخزن التحليلي. وبهذه الطريقة يعطيك أحدث النتائج لاستفساراتك. على الرغم من أنه يدمج البيانات قبل الاستعلام، دلتا لا تتم كتابتها مرة أخرى إلى مخزن مقسمة. كما دلتا بين البيانات في مخزن تحليلي وتخزين مقسمة تتسع، قد تختلف أوقات الاستعلام على البيانات المقسمة. يؤدي تشغيل مهمة التقسيم بشكل متكرر إلى تقليل دلتا هذه. في كل مرة تقوم فيها بتنفيذ مهمة القسم، تتم معالجة التغييرات المتزايدة فقط في المخزن التحليلي، بدلا من مجموعة البيانات الكاملة.

متى تستخدم؟

استخدام مخزن مقسمة اختياري عند الاستعلام عن البيانات التحليلية في Azure Cosmos DB. يمكنك الاستعلام مباشرة عن نفس البيانات باستخدام Synapse Link مع مخزن التحليل الموجود. قد تحتاج إلى تشغيل مخزن مقسم إذا كان لديك المتطلبات التالية:

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

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

المزايا

انخفاض مسح البيانات من تقليم القسم

لأن البيانات المطابقة لكل مفتاح قسم فريدة يتم colocated في مخزن مقسمة عند استخدام مفتاح القسم كعامل تصفية استعلام تنفيذ الاستعلام يمكن prune البيانات الأساسية ومسح البيانات المطلوبة فقط. عن طريق مسح البيانات المحدودة، تحسين تقسيم أداء الاستعلام التحليلي.

مرونة لتقسيم البيانات التحليلية

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

تحسينات أداء الاستعلام

بالإضافة إلى تحسينات الاستعلام من تقليم القسم، يؤدي التقسيم المخصص أيضاً إلى تحسين أداء الاستعلام لأحمال العمل التالية:

  • تحديث/حذف أحمال العمل الثقيلة - بدلاً من تتبع إصدارات متعددة من السجلات في المخزن التحليلي وتحميلها أثناء تنفيذ كل استعلام، يحتوي المخزن المقسم على أحدث إصدار من البيانات فقط. تحسن هذه الإمكانية أداء الاستعلام بشكل كبير عندما يكون لديك تحديث/حذف أحمال العمل الثقيلة.

  • أعباء العمل بطيئة في استيعاب البيانات - تقسيم ضغط البيانات التحليلية وهكذا، إذا كان عبء العمل الخاص بك لديه ابتلاع بيانات بطيء، وهذا الضغط يمكن أن يؤدي إلى أداء أفضل الاستعلام

ضمان المعاملات

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

الأمان

إذا قمت بتكوين نقاط النهاية الخاصة المدارة لمتجر التحليل الخاص بك، نوصي بإضافة نقاط نهاية خاصة مدارة للمخزن المقسم أيضا. المخزن المقسم هو حساب تخزين أساسي مقترن بمساحة عمل Synapse.

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

إستراتيجيات التقسيم

يمكنك استخدام مفتاح قسم واحد أو أكثر للبيانات التحليلية. إذا كنت تستخدم مفاتيح أقسام متعددة، فإليك بعض التوصيات حول كيفية تقسيم البيانات:

  • استخدام مفاتيح مركبة:

    لنقل، تريد الاستعلام بشكل متكرر استنادا إلى Key1 وKey2.

    على سبيل المثال، "Query for all records where ReadDate = ‘2021-10-08’ and Location = ‘Sydney’".

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

    خيارات تكوين نموذج:

    .option("spark.cosmos.asns.partition.keys", "ReadDate String, Location String") \
    .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \
    

    الآن يمكن الاستعلام استنادا إلى عامل تصفية "الموقع":

    • قد تحتاج إلى الاستعلام عن مخزن تحليلي مباشرة. يقوم المخزن المقسم بفحص جميع السجلات بواسطة ReadDate أولا ثم حسب الموقع. لذلك، اعتماداً على عبء العمل الخاص بك والعلاقة الأساسية من البيانات التحليلية الخاصة بك، قد تحصل على نتائج أفضل عن طريق الاستعلام عن مخزن التحليلية مباشرة.
    • يمكنك أيضاً تشغيل مهمة قسم أخرى إلى قسم أيضاً استنادا إلى "الموقع" على نفس المخزن المقسم.
  • استخدام مفاتيح متعددة بشكل منفصل:

    لنقل، أنك تريد الاستعلام بشكل متكرر أحيانا استنادا إلى "ReadDate" وأوقات أخرى، استنادا إلى "الموقع".

    على سبيل المثال،

    • الاستعلام عن جميع السجلات حيث ReadDate = '2021-10-08'
    • الاستعلام عن جميع السجلات حيث الموقع = 'سيدني'

    تشغيل مهام قسم اثنين مع مفاتيح القسم كما هو موضح أدناه لهذا السيناريو:

    الوظيفة 1:

    .option("spark.cosmos.asns.partition.keys", "ReadDate String") \
    .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \
    

    الوظيفة 2:

    .option("spark.cosmos.asns.partition.keys", "Location String") \
    .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \
    

    لاحظ أنه ليس من الفعال الآن الاستعلام بشكل متكرر استنادا إلى عوامل تصفية "ReadDate" و"Location" معا، على التقسيم أعلاه. تسمح المفاتيح المركبة بأداء استعلام أفضل في هذه الحالة.

القيود

  • التقسيم المخصص متاح فقط ل Azure Synapse Spark. التقسيم المخصص غير معتمد حالياً لتجمعات SQL بلا خادم.

  • يمكن أن يشير المخزن المقسم حالياً فقط إلى حساب التخزين الأساسي المقترن بمساحة عمل Synapse. تحديد حسابات التخزين المخصصة غير مدعوم في هذه المرحلة.

  • لا يتوفر التقسيم المخصص إلا لواجهة برمجة التطبيقات ل NoSQL في Azure Cosmos DB. واجهة برمجة التطبيقات ل MongoDB وGremlin وCassandra قيد المعاينة في هذا الوقت.

التسعير

بالإضافة إلى تسعير Azure Synapse Link، تتحمل الرسوم التالية عند استخدام التقسيم المخصص:

  • تتم فوترتك لاستخدام تجمعات Synapse Apache Spark عند تشغيل وظائف التقسيم في مخزن تحليلي.

  • يتم تخزين البيانات المقسمة في حساب Azure Data Lake Storage Gen2 المقترن بمساحة عمل Azure Synapse Analytics. تتحمل التكاليف المرتبطة باستخدام تخزين ADLS Gen2 والمعاملات. يتم تحديد هذه التكاليف من خلال التخزين المطلوب من قبل البيانات التحليلية المقسمة والبيانات المعالجة للاستعلامات التحليلية في Synapse على التوالي. لمزيد من المعلومات حول التسعير، يرجى زيارة صفحة التسعير لـ Azure Data Lake Storage.

الأسئلة الشائعة

كم مرة يجب تشغيل مهمة التقسيم المخصصة؟

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

هل تتضمن نتائج الاستعلام أحدث البيانات أثناء تنفيذ مهمة التقسيم قيد التقدم؟

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

هل يمكن للتقسيم المخصص الاستفادة من مصادقة الخدمة المرتبطة على Azure Synapse Analytics؟

نعم، يمكن استخدام مصادقة الخدمة المرتبطة لتقسيم مخزن تحليلي.

هل يمكنني تغيير مفتاح القسم لحاوية معينة في وقت لاحق؟

نعم، يمكن تغيير مفتاح القسم للحاوية المحددة، وسينشئ تعريف مفتاح القسم الجديد مخزنا مقسما جديدا.

إشعار

تعريف مفتاح القسم جزء من مسار مخزن مقسمة.

هل يمكن لمفاتيح أقسام مختلفة أن تشير إلى نفس BasePath؟

نعم، يمكنك تحديد مفاتيح أقسام متعددة في نفس المخزن المقسم كما يلي:

.option("spark.cosmos.asns.partition.keys", "ReadDate String, Location String") \
.option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \

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

لمعرفة المزيد، راجع المستندات التالية: