ورقة معلومات مرجعية لتجمع SQL المخصص (SQL DW سابقا) في Azure Synapse Analytic

توفر ورقة المعلومات المرجعية هذه نصائح مفيدة وأفضل الممارسات لبناء حلول تجمع SQL مخصص (SQL DW سابقًا).

يوضح الرسم التالي عملية تصميم مستودع بيانات مع تجمع SQL مخصص (SQL DW سابقًا):

الرسم

الاستعلامات والعمليات عبر الجداول

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

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

معرفة أنواع العمليات مقدمًا يساعدك في تحسين تصميم جداولك.

ترحيل البيانات

أولاً، قم بتحميل بياناتك في ⁧⁩Azure Data Lake Storage⁧⁩ أو Azure Blob Storage. بعد ذلك، استخدم ⁧⁩COPY statement⁧⁩ لتحميل بياناتك في جداول مرحلية. استخدم التكوين التالي:

التصميم التوصية
التوزيع الترتيب الدوري
الفهرسة كومة ذاكرة مؤقتة
التقسيم بلا
فئة الموارد largerc أو xlargerc

تعرف على المزيد حول ⁧⁩ترحيل البيانات⁧⁩، ⁧⁩وتحميل البيانات⁧⁩، ⁧⁩، وعملية الاستخراج والتحميل والتحويل (ELT)⁧⁩.

جداول موزعة أو منسوخة

استخدم الإستراتيجيات التالية، استنادًا إلى خصائص الجدول:

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

* يمكنك تغيير Data Warehouse Units (DWU) في كثير من الأحيان

* يمكنك استخدام عمودين إلى 3 أعمدة فقط؛ ولكن جدولك يحتوي على العديد من الأعمدة

* يمكنك القيام بفهرسة جدول مكرر
Round Robin (افتراضي) * جدول مؤقت/ مرحلي

* لا يوجد مفتاح واضح للانضمام أو عمود مرشح جيد
* الأداء بطيء نتيجة حركة البيانات
التجزئة * جداول الحقائق

* جداول بعد كبير
* لا يمكن تحديث مفتاح التوزيع

⁩نصائح:⁧

  • ابدأ بـ Round Robin؛ لكن تطمح إلى إستراتيجية توزيع بالتجزئة للاستفادة من التصميم المتوازي على نطاق واسع.
  • تأكد من أن مفاتيح التجزئة الشائعة لها نفس تنسيق البيانات.
  • لا توزع بتنسيق varchar.
  • يمكن توزيع جداول الأبعاد التي تحتوي على مفتاح تجزئة مشترك لجدول حقائق مع عمليات ربط متكررة بالتجزئة.
  • استخدم ⁧⁩⁧⁩sys.dm_pdw_nodes_db_partition_stats⁧⁩⁧⁩ لتحليل أي انحراف في البيانات.
  • استخدم ⁧⁩⁧⁩sys.dm_pdw_request_steps⁧⁩⁧⁩لتحليل حركات البيانات خلف الاستعلامات، ومراقبة البث الزمني، والعشوائية التي تتبعها العمليات. هذا مفيد لمراجعة استراتيجية التوزيع الخاصة بك.

تعرف على المزيد حول ⁧⁩الجداول المنسوخة⁧⁩ ⁧⁩والجداول الموزعة⁧⁩.

فهرسة جدولك

تُعد الفهرسة مفيدة لقراءة الجداول بسرعة. هناك مجموعة فريدة من التقنيات التي يمكنك استخدامها بناءً على احتياجاتك:

النوع ملائم بشكل كبير لأجل... انتبه في حالة حدوث أي مما يلي...
كومة ذاكرة مؤقتة * جدول مؤقت/ مرحلي

* جداول صغيرة مع عمليات بحث صغيرة
* أي بحث بمسح الجدول الكامل
مؤشر متفاوت المسافات * الجداول التي تحتوي على ما يصل إلى 100 مليون صف

* الجداول الكبيرة (أكثر من 100 مليون صف) مع عمود واحد أو اثنين فقط يُستخدم بكثافة
* يتم استخدامه على جدول منسوخ

* تمتلك استعلامات معقدة تنطوي على عمليات مشتركة، وعمليات Group By متعددة

* بإمكانك إجراء تحديثات على الأعمدة المفهرسة: يستهلك ذلك الذاكرة
فهرس تخزين الأعمدة المجمع (CCI) (افتراضي) * جداول كبيرة (أكثر من 100 مليون صف) * يتم استخدامه على جدول منسوخ

* بإمكانك إجراء عمليات التحديث الضخمة على جدولك

* تقوم بتقسيم جدولك بشكل زائد: مجموعات الصف لا تمتد عبر مختلف العقد والأقسام للتوزيع

⁩نصائح:⁧

  • في أعلى الفهرس المجمع، قد ترغب في إضافة فهرس غير مجمع إلى عمود يستخدم بكثرة من أجل التصفية.
  • كن حذرًا في تعاملك مع إدارة الذاكرة على جدول به CCI. عند تحميل البيانات، تريد أن يستفيد المستخدم (أو الاستعلام) من فئة مورد كبير. تأكد من تجنب الاقتطاع، وإنشاء العديد من مجموعات الصفوف المضغوطة الصغيرة.
  • على Gen2، يتم تخزين جداول CCI محليًا على عقد الحوسبة لتحقيق أقصى قدر من الأداء.
  • أما بالنسبة إلى CCI، يمكن أن يبطؤ الأداء بسبب ضعف ضغط مجموعات الصفوف. في حالة حدوث ذلك، أعد إنشاء أو أعد تنظيم CCI. يلزمك على الأقل 100,000 صف لكل مجموعات صفوف مضغوطة. المعدل المثالي هو مليون صف في مجموعة صفوف.
  • استنادًا إلى تكرار التحميل المتزايد وحجمه، تلزمك الأتمتة عند إعادة تنظيم، أو إعادة إنشاء فهارسك. يمكنك دائمًا الاستفادة من Spring cleaning.
  • خطط إستراتيجية عندما تريد اقتطاع مجموعة صفوف. ما حجم مجموعات الصفوف المفتوحة؟ ما مقدار البيانات التي تتوقع تحميلها في الأيام القادمة؟

تعرّف على المزيد حول ⁧⁩الفهرسة⁧⁩.

التقسيم

قد تقسم الجدول عندما يكون لديك جدول حقائق كبير (أكبر من 1 مليار صف). في 99 بالمائة من الحالات، يجب أن يستند مفتاح القسم على التاريخ.

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

تعرّف على المزيد حول ⁧⁩التقسيم⁧⁩.

التحميل التزايدي

إذا كنت تريد تحميل البيانات بشكل متزايد، فتأكد أولاً من تخصيص فئات موارد أكبر لتحميل بياناتك. يُعد هذا مهمًا بشكل خاص عند التحميل في جداول تضم فهارس مخزن الأعمدة المجمعة. راجع ⁧⁩فئات الموارد⁧⁩ لمزيد من التفاصيل.

نوصي باستخدام PolyBase وADF V2 لأتمتة تدفقات ELT لديك في مستودع بياناتك.

وبالنسبة للمجموعة الكبيرة من التحديثات في بياناتك التاريخية، ضع في اعتبارك استخدام ⁧⁩CTAS⁧⁩ لكتابة البيانات التي تريد الاحتفاظ بها في جدول بدلاً من استخدام INSERT، وUPDATE، وDELETE.

إحصائيات الصيانة

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

يمكنك أيضًا تحديد تكرار التحديثات. على سبيل المثال، قد تحتاج إلى تحديث أعمدة التاريخ، حيث يمكن إضافة قيم جديدة، بشكل يومي. يمكنك الحصول على أكبر فائدة من خلال وجود إحصائيات حول الأعمدة المتضمنة في الصلات، والأعمدة المستخدمة في عبارة WHERE، والأعمدة الموجودة في GROUP BY.

تعرّف على المزيد حول ⁧⁩الإحصائيات⁧⁩.

فئة الموارد

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

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

أخيرًا، باستخدام Gen2 من ⁧⁩تجمع SQL المخصص (SQL DW سابقًا)⁧⁩، تحصل كل فئة موارد على زيادة في الذاكرة بمعدل 2.5 مرة أكثر من Gen1.

تعرف على المزيد حول كيفية العمل مع ⁧⁩فئات الموارد والتزامن⁧⁩.

خفض التكلفة

الميزة الرئيسية في Azure Synapse هي القدرة على ⁧⁩إدارة موارد الحوسبة⁧⁩. يمكنك إيقاف تجمع SQL المخصص (SQL DW سابقًا) مؤقتًا عندما لا تستخدمه، ما يوقف فوترة موارد الحوسبة. يمكنك قياس الموارد لتلبية متطلبات الأداء. للإيقاف المؤقت، استخدم ⁧⁩مدخل Azure⁧⁩ أو ⁧⁩PowerShell⁧⁩. وللقياس، استخدم ⁧⁩مدخل Azure⁧⁩، أو ⁧⁩PowerShell⁧⁩، أو ⁧⁩T-SQL⁧⁩، أو ⁧⁩REST API⁧⁩.

قم بالقياس تلقائيًا الآن في الوقت الذي تريده مع Azure Functions:

صورة تعرض زر بعنوان «النشر في Azure».

تحسين التصميم من أجل الأداء

نوصي بالنظر في قاعدة بيانات SQL وAzure Analysis Services في تصميم النظام المحوري. يمكن أن يوفر هذا الحل عزل حمل العمل بين مجموعات المستخدمين المختلفة في أثناء استخدام ميزات الأمان المتقدمة من قاعدة بيانات SQL وAzure Analysis Services. ويُعد هذا أيضًا وسيلة لتوفير التزامن بلا حدود للمستخدمين.

تعرف على المزيد حول ⁧⁩التصميمات النموذجية التي تستفيد من تجمع SQL المخصص (SQL DW سابقًا) في Azure Synapse Analytics⁧⁩.

انشر محاورك بنقرة واحدة في قواعد بيانات SQL من تجمع SQL مخصص (SQL DW سابقًا):

صورة تعرض زرا بعنوان «Deploy to Azure».