الملحقات والوحدات النمطية في خادم مرن قاعدة بيانات Azure لـ PostgreSQL

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

ملحقات

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

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

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

يمكنك كتابة تنفيذ الوظائف التي توفرها تلك الكائنات الموزعة من خلال الامتداد في SQL أو PL/pgSQL. لكن يمكنك أيضا تنفيذها في ملف مكتبة مشتركة منفصل (ثنائي)، وهو نتيجة تجميع الشيفرة المصدرية (عادة مكتوبة بلغة C أو Rust) التي تنفذ الوظيفة.

في PostgreSQL، تدير الإضافات عبر CREATE EXTENSIONأوامر ، ALTER EXTENSION، ، DROP EXTENSIONو COMMENT ON EXTENSION .

  • CREATE EXTENSION يقوم بإنشاء أو تثبيت أو تحميل امتداد إلى قاعدة البيانات التي تنفذ فيها الأمر.
  • ALTER EXTENSION يحدث الملحق إلى إصدار أحدث.
  • DROP EXTENSION يقوم بإسقاط أو إلغاء تثبيت أو إلغاء تحميل إضافة من قاعدة البيانات التي تنفذ فيها الأمر.
  • COMMENT ON EXTENSION يخزن تعليقا حول الملحق ككائن قاعدة بيانات.

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

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

الوحدات النمطية

على الرغم من أنها لا تعتبر امتدادات لأنها لا تحتوي على ملف تحكموملف سكريبت لنشر كائنات SQL المجمعة في قاعدة البيانات، إلا أن شكلا آخر من قابلية التوسعة في PostgreSQL هو تنفيذ الوظائف في ملفات مكتبة ثنائية مشتركة مستقلة.

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

تدعم قاعدة بيانات Azure ل PostgreSQL الوحدات النمطية التالية:

  • auto_explain
  • pg_failover_slots
  • pg_partman_bgw
  • wal2json