استهلاك موارد Synapse SQL

توضح هذه المقالة نماذج استهلاك الموارد في SQL Synapse.

تجمع SQL بلا خادم

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

تجمع SQL مخصص - وحدات مستودع البيانات (DWUs) وحدات حسابية لمستودع البيانات (cDWUs)

توصيات بخصوص اختيار العدد المثالي لوحدات مستودع البيانات (DWUs) لتحسين السعر والأداء، وكيفية تغيير عدد الوحدات.

وحدات مستودع البيانات

يمثل تجمع SQL Synapse مجموعة من الموارد التحليلية التي يتم توفيرها. تُعرَّف الموارد التحليلية بأنها مزيج من وحدة المعالجة المركزية والذاكرة وميزة الإدخال والإخراج. يتم تجميع هذه الموارد الثلاثة في وحدات مقياس الحساب تسمى وحدات مستودع البيانات (DWUs). تمثل وحدة مستودع البيانات قياسًا مجردًا تمت تسويته لموارد الحساب وأدائه. يؤدي تغيير مستوى الخدمة إلى تغيير عدد وحدات مستودع البيانات المتوفرة للنظام. وهذا التغيير بدوره يضبط أداء النظام وتكلفته.

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

يعتمد أداء وحدات مستودع البيانات على مقاييس حمل العمل الخاصة بمستودعات البيانات هذه:

  • مدى السرعة الممكنة لاستعلام التخزين القياسي للبيانات في فحص عدد كبير من الصفوف ثم إجراء تجميع معقد. تعتمد هذه العملية بشكل مكثف على ميزة الإدخال والإخراج ووحدة المعالجة المركزية.
  • مدى السرعة الممكنة لمستودع البيانات في استيعاب البيانات من Azure Storage Blobs أو Azure Data Lake. تعتمد هذه العملية بشكل مكثف على الشبكة ووحدة المعالجة المركزية.
  • مدى السرعة الممكنة لأمر CREATE TABLE AS SELECT T-SQL في نسخ جدول. تتضمن هذه العملية قراءة البيانات من مساحة التخزين، وتوزيعها عبر عُقد الجهاز، والكتابة مرة أخرى في مساحة التخزين. تعتمد هذه العملية بشكل مكثف على وحدة المعالجة المركزية وميزة الإدخال والإخراج والشبكة.

زيادة وحدات مستودع البيانات:

  • تغيّر أداء النظام بشكل خطي لعمليات الفحص والتجميع وعبارات CTAS
  • تزيد عدد القراء والكُتّاب لعمليات تحميل PolyBase
  • ترفع الحد الأقصى لعدد الاستعلامات المتزامنة وفتحات التزامن.

هدف مستوى الخدمة

هدف مستوى الخدمة (SLO) هو إعداد قابلية التوسع الذي يحدد التكلفة ومستوى الأداء لمستودع البيانات. يتم قياس مستويات الخدمة للجيل الثاني في الوحدات الحسابية لمستودع البيانات (cDWU)، على سبيل المثال DW2000c. يتم قياس مستويات الخدمة للجيل الأول في وحدات مستودع البيانات، على سبيل المثال DW2000.

هدف مستوى الخدمة (SLO) هو إعداد قابلية التوسع الذي يحدد التكلفة ومستوى الأداء لمستودع البيانات. يتم قياس مستويات الخدمة لتجمع SQL المخصص للجيل الثاني في وحدات مستودع البيانات (DWU)، على سبيل المثال DW2000c.

ملاحظة

مؤخرًا، أضاف الجيل الثاني من Azure Synapse Analytics قدرات توسع إضافية لدعم مستويات الحساب، بحيث يمكن أن تنخفض حتى إلى 100 وحدة حسابية لمستودع البيانات. يمكن الآن ترقية مستودعات البيانات الموجودة على الجيل الأول التي تتطلب مستويات حسابية أقل إلى الجيل الثاني في المناطق المتاحة حاليًا بدون أي تكلفة إضافية. إذا لم تكن منطقتك مدعومة بعد، فلا تزال بإمكانك الترقية إلى منطقة مدعومة. لمزيد من المعلومات، راجع الترقية إلى الجيل الثاني.

في T-SQL، يحدد الإعداد SERVICE_OBJECTIVE مستوى الخدمة ومستوى الأداء لتجمع SQL المخصص.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

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

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

  • يتم قياس مستودعات البيانات للجيل الأول في وحدات مستودع البيانات (DWUs).
  • ويتم قياس مستودعات البيانات للجيل الثاني في الوحدات الحسابية لمستودع البيانات (cDWUs).

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

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

حدود السعة

كل خادم SQL (على سبيل المثال: myserver.database.windows.net) لديه حصة نسبية من وحدة عمليات قاعدة البيانات (DTU) تسمح بعدد محدد من وحدات مستودع البيانات. لمزيد من المعلومات، راجع حدود سعة إدارة حمل العمل.

تقدير العدد الذي تحتاجه من وحدات مستودع البيانات

يعتمد العدد المثالي لوحدات مستودع البيانات إلى حد كبير على حمل العمل لديك وكمية البيانات التي حمّلتها في النظام.

خطوات لمعرفة أفضل عدد وحدات مستودع البيانات لحمل العمل:

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

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

ملاحظة

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

الأذونات

يتطلب تغيير وحدات مستودع البيانات الأذونات الموضحة في ALTER DATABASE.

يمكن للأدوار المضمنة في Azure، مثل SQL DB Contributor وSQL Server Contributor، تغيير إعدادات وحدات مستودع البيانات.

عرض الإعدادات الحالية لوحدات مستودع البيانات

لعرض الإعداد الحالي لوحدات مستودع البيانات:

  1. افتح مستكشف عناصر SQL Server في Visual Studio.
  2. اتصل بقاعدة البيانات الرئيسية المقترنة بخادم SQL المنطقي.
  3. حدد من طريقة عرض الإدارة الديناميكية sys.database_service_objectives. وفيما يلي مثال على ذلك:
SELECT  db.name [Database]
,        ds.edition [Edition]
,        ds.service_objective [Service Objective]
FROM    sys.database_service_objectives   AS ds
JOIN    sys.databases                     AS db ON ds.database_id = db.database_id
;

تغيير وحدات مستودع البيانات

مدخل Azure

لتغيير وحدات مستودع البيانات:

  1. افتح مدخل Azure، ثم افتح قاعدة البيانات، وحدد تحجيم.

  2. ضمن تحجيم، حرك شريط التمرير لليسار أو لليمين لتغيير إعداد وحدات مستودع البيانات.

  3. حدد ⁧⁩حفظ⁧⁩. تظهر رسالة تأكيد. حدد نعم للتأكيد أو لا للإلغاء.

PowerShell

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

لتغيير وحدات مستودع البيانات، استخدم Set-AzSqlDatabase PowerShell cmdlet. في المثال التالي، يتم تعيين هدف مستوى الخدمة إلى DW1000 لقاعدة البيانات MySQLDW المُستضافة على الخادم MyServer.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

لمزيد من المعلومات، راجع PowerShell cmdlets لـ Azure Synapse Analytics

T-SQL

باستخدام T-SQL، يمكنك عرض تعيينات الإعدادات الحالية لوحدات مستودع البيانات وتغيير الإعدادات والتحقق من التقدم.

لتغيير وحدات مستودع البيانات:

  1. اتصل بقاعدة البيانات الرئيسية المقترنة بالخادم.
  2. استخدم عبارة TSQL ALTER DATABASE. في المثال التالي، يتم تعيين هدف مستوى الخدمة إلى DW1000c لقاعدة البيانات MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

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

لتغيير وحدات مستودع البيانات، استخدم واجهة برمجة تطبيقات REST إنشاء قاعدة بيانات أو تحديثها. في المثال التالي، يتم تعيين هدف مستوى الخدمة إلى DW1000c لقاعدة البيانات MySQLDW المُستضافة على خادم MyServer. الخادم في مجموعة مورد Azure، باسم ResourceGroup1.

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
    "properties": {
        "requestedServiceObjectiveName": DW1000
    }
}

لمزيد من أمثلة واجهات برمجة تطبيقات REST، راجع واجهات برمجة تطبيقات REST لـ Azure Synapse Analytics.

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

قد يستغرق إكمال التغييرات في وحدات مستودع البيانات عدة دقائق. إذا كنت تستخدم التحجيم التلقائي، فانظر في تطبيق المنطق لضمان إكمال عمليات محددة قبل المتابعة والتقدم إلى إجراء آخر.

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

لا يمكنك التحقق من حالة قاعدة البيانات لعمليات التحجيم مع مدخل Azure.

للتحقق من حالة تغييرات وحدات مستودع البيانات:

  1. اتصل بقاعدة البيانات الرئيسية المقترنة بالخادم.
  2. أرسل الاستعلام التالي للتحقق من حالة قاعدة البيانات.
SELECT    *
FROM      sys.databases
;
  1. أرسل الاستعلام التالي للتحقق من حالة العملية
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

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

سير التحجيم

عند بدء عملية للتحكم في الحجم، يغلق النظام أولاً جميع الجلسات المفتوحة، مع التراجع عن أي عمليات مفتوحة لضمان حالة متسقة. في عمليات التحجيم، لا يتم التحجيم إلا بعد إكمال هذا التراجع عن العمليات.

  • في عمليات زيادة الحجم، يفصل النظام جميع العُقد الحسابية، ويوفر عُقداً حسابية إضافية، ثم يعيد ربطها بطبقة التخزين.
  • وفي عمليات تقليص الحجم، يفصل النظام جميع العُقد الحسابية ثم يعيد ربط العُقد المطلوبة فقط بطبقة التخزين.

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

للتعرف على المزيد حول إدارة الأداء، راجع فئات الموارد لإدارة حمل العمل وحدود الذاكرة والتزامن.