تحديد نوع الطلب
يتطلب تشغيل استعلامات فعالة على مجموعة خوادم Hyperscale (Citus) توزيع الجداول بشكل صحيح عبر الخوادم. يختلف التوزيع الموصى به حسب نوع التطبيق وأنماط الاستعلام الخاصة به.
هناك نوعان من التطبيقات التي تعمل بشكل جيد على Hyperscale (Citus). الخطوة الأولى في نمذجة البيانات هي تحديد أي منها يشبه تطبيقك بشكل أوثق.
لمحة سريعة
| تطبيقات متعددة المستأجرين | تطبيقات Real-Time |
|---|---|
| ويكون في بعض الأحيان عشرات أو مئات من الجداول في المخطط | يوجد عدد قليل من الجداول |
| وعند الاستفسارات المتعلقة بالمستأجر الواحد (شركة/متجر) في كل مرة | يوجد استعلامات تحليلات بسيطة نسبيًا مع التجميعات |
| أحمال عمل OLTP بغرض خدمة عملاء الويب | ازدياد حجم استيعاب البيانات غير القابلة للتغيير في الغالب |
| أحمال عمل OLAP التي تقوم بخدمة الاستعلامات التحليلية لكل مستأجر | والتي غالبًا ما تكون تتمحور حول جدول كبير من الأحداث |
أمثلة وخصائص
تطبيق متعدد المستأجرين
هذه عادة ما تكون تطبيقات SaaS التي تخدم شركات أو حسابات أو مؤسسات أخرى. معظم تطبيقات SaaS علائقية بطبيعتها. لديهم بعد طبيعي لتوزيع البيانات عبر العقد: فقط شظايا من قبل tenant_id.
يمكنك Hyperscale (Citus) من توسيع نطاق قاعدة البيانات الخاصة بك لملايين المستأجرين دون الحاجة إلى إعادة تصميم التطبيق الخاص بك. يمكنك الاحتفاظ بالدلالات العلائقية التي تحتاجها ، مثل الصلات وقيود المفاتيح الخارجية والمعاملات و ACID والاتساق.
- أمثلة: مواقع الويب التي تستضيف واجهات متاجر لأنشطة تجارية أخرى، مثل حل التسويق الرقمي أو أداة أتمتة المبيعات.
- الخصائص: الاستعلامات المتعلقة بمستأجر واحد بدلا من الانضمام إلى المعلومات عبر المستأجرين. ويشمل ذلك أحمال عمل OLTP لخدمة عملاء الويب، وأحمال عمل OLAP التي تخدم الاستعلامات التحليلية لكل مستأجر. يعد وجود عشرات أو مئات الجداول في مخطط قاعدة البيانات أيضا مؤشرا لنموذج البيانات متعدد المستأجرين.
يتطلب تغيير حجم تطبيق متعدد المستأجرين باستخدام Hyperscale (Citus) أيضا الحد الأدنى من التغييرات على التعليمات البرمجية للتطبيق. لدينا دعم للأطر الشعبية مثل Ruby on Rails و Django.
تحليلات في الوقت الحقيقي
التطبيقات التي تحتاج إلى توازي هائل ، وتنسيق مئات النوى للحصول على نتائج سريعة إلى الاستعلامات العددية أو الإحصائية أو العد. من خلال تقسيم الاستعلامات SQL وموازاتها عبر عقد متعددة ، يجعل Hyperscale (Citus) من الممكن إجراء استعلامات في الوقت الفعلي عبر مليارات السجلات في أقل من ثانية.
عادة ما يتم توزيع الجداول في نماذج بيانات التحليلات في الوقت الفعلي حسب أعمدة مثل user_id أو host_id أو device_id.
- أمثلة: لوحات معلومات التحليلات التي تواجه العملاء والتي تتطلب أوقات استجابة دون الثانية.
- الخصائص: عدد قليل من الجداول ، غالبا ما تتمحور حول جدول كبير من أحداث الجهاز أو الموقع أو المستخدم وتتطلب استيعابا كبيرا لحجم البيانات غير القابلة للتغيير في الغالب. استعلامات تحليلات بسيطة نسبيا (ولكنها مكثفة حسابيا) تتضمن العديد من التجميعات و GROUP BYs.
إذا كان موقفك يشبه أي من الحالتين أعلاه ، فإن الخطوة التالية هي تحديد كيفية تقسيم بياناتك في مجموعة الخوادم. يجب أن يتطابق اختيار مسؤول قاعدة البيانات لأعمدة التوزيع مع أنماط الوصول إلى الاستعلامات النموذجية لضمان الأداء.
الخطوات التالية
- اختيار عمود توزيع للجداول في التطبيق الخاص بك لتوزيع البيانات بكفاءة