تصنيف حمل العمل لتجمع SQL مخصص في Azure Synapse Analytics

تشرح هذه المقالة عملية تصنيف حمل العمل لتعيين مجموعة حمل العمل وأهميتها للطلبات الواردة مع تجمعات SQL المخصصة في Azure Synapse.

تصنيف

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

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

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

لا يتم تصنيف جميع البيانات لأنها لا تتطلب موارد أو تحتاج إلى أهمية للتأثير على التنفيذ. DBCCلا يتم تصنيف الأوامر والعبارات BEGINCOMMITو وROLLBACK TRANSACTION.

عملية التصنيف

يتم تحقيق تصنيف تجمع SQL المخصص اليوم عن طريق تعيين المستخدمين لدور له فئة موارد مقابلة تم تعيينها له باستخدام sp_addrolemember. القدرة على توصيف الطلبات التي تتجاوز تسجيل الدخول إلى فئة الموارد محدودة بهذه الإمكانية. تتوفر الآن طريقة أكثر ثراءً للتصنيف باستخدام بنية CREATE WORKLOAD CLASSIFIER. باستخدام بناء الجملة هذا، يمكن لمستخدمي تجمع SQL المخصص تعيين الأهمية ومقدار موارد النظام المخصصة لطلب عبر المعلمة workload_group.

ترجيح التصنيف

كجزء من عملية التصنيف، يتم الترجيح لتحديد مجموعة حمل العمل التي تم تعيينها. يتم الترجيح على النحو التالي:

معلمة المصنف الوزن
MEMBERNAME:USER 64
MEMBERNAME:ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

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

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

إشعار

يختلف تصنيف سلوك الهويات المدارة بين تجمع SQL المخصص في مساحات عمل Azure Synapse وتجمع SQL المخصص المستقل (المعروف سابقا ب SQL DW). بينما تحافظ الهوية المدارة لمجموعة SQL المخصصة المستقلة على الهوية المعينة، بالنسبة لمساحات عمل Azure Synapse تعمل الهوية المدارة ك dbo. لا يمكن تغيير ذلك. يتم تصنيف دور dbo افتراضياً إلى smallrc. يسمح إنشاء مصنف لدور dbo بتعيين الطلبات إلى مجموعة حمل عمل أخرى غير smallrc. إذا كان dbo وحده عاماً جداً بالنسبة للتصنيف وله تأثيرات أوسع، ففكر في استخدام التصنيف أو الجلسة أو التصنيف المستند إلى الوقت جنباً إلى جنب مع تصنيف دور dbo.

باستثناء smallrc، يتم تنفيذ فئات الموارد الديناميكية كأدوار قاعدة بيانات محددة مسبقا. لا يظهر Smallrc كدور قاعدة بيانات، ولكنه فئة المورد الافتراضي.

مصنفات النظام

يحتوي تصنيف حمل العمل على تصنيفات حمل عمل النظام. تقوم مصففات النظام بتعيين عضويات دور فئة الموارد الحالية إلى تخصيصات موارد فئة الموارد ذات الأهمية العادية. لا يمكن إسقاط مصنفات النظام. لعرض مصنفات النظام، يمكنك تشغيل الاستعلام التالي:

SELECT * FROM sys.workload_management_workload_classifiers where classifier_id <= 12

خلط تعيينات فئة الموارد مع المصنفات

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

فكر في السيناريو التالي:

  • يحتوي مستودع البيانات الحالي على مستخدم قاعدة بيانات DBAUser تم تعيينه لدور فئة المورد الأكبر. تم تعيين فئة المورد باستخدام sp_addrolemember.
  • تم الآن تحديث مستودع البيانات بإدارة حمل العمل.
  • لاختبار بناء جملة التصنيف الجديد، فإن دور قاعدة البيانات DBARole (الذي يعتبر DBAUser عضواً فيه)، لديه مصنف تم إنشاؤه من أجل تعيينهم إلى mediumrc وأهمية عالية.
  • عندما يقوم DBAUser بتسجيل الدخول وتشغيل استعلام، سيتم تعيين الاستعلام إلى أكبر ج. لأن المستخدم له الأسبقية على عضوية الدور.

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

SELECT  r.name AS [Resource Class]
,       m.name AS membername
FROM    sys.database_role_members rm
JOIN    sys.database_principals AS r ON rm.role_principal_id = r.principal_id
JOIN    sys.database_principals AS m ON rm.member_principal_id = m.principal_id
WHERE   r.name IN ('mediumrc','largerc','xlargerc','staticrc10','staticrc20','staticrc30','staticrc40','staticrc50','staticrc60','staticrc70','staticrc80');
--for each row returned run in the previous query
EXEC sp_droprolemember '[Resource Class]', membername;