المدونة

الصفحة الرئيسية / المدونة / دليل التقاط بيانات التغيير (CDC) لـ PostgreSQL

جدول المحتويات
الآلي, لا كود مكدس البيانات

تعلم كيف Astera يمكن لـ Data Stack تبسيط وتبسيط إدارة بيانات مؤسستك.

دليل التقاط بيانات التغيير (CDC) لـ PostgreSQL

عثمان حسن خان

استراتيجي المحتوى

7 فبراير، 2024

هذه المقالة بمثابة دليل شامل ل تغيير التقاط البيانات (CDC) في PostgreSQL، المعروف أيضًا باسم Postgres. سيأخذك عبر الطرق المختلفة لتنفيذ Postgres CDC، بما في ذلك الإيجابيات والسلبيات، بالإضافة إلى بديل آلي لجميع الطرق اليدوية. 

وسوف يتطرق أيضًا إلى أهمية PostgreSQL CDC. قبل أن نبدأ، دعونا نتعرف على بعض الأساسيات. 

ما هي PostgreSQL؟ 

PostgreSQL هو امتداد المصدر المفتوح قواعد البيانات العلائقية نظام الإدارة (RDBMS). تعدد استخداماته يسمح باستخدامه كـ قاعدة بيانات وكمخزن للبيانات عند الحاجة. 

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

ميزات وتطبيقات PostgreSQL 

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

جدول يوضح كيفية تخزين البيانات في قاعدة بيانات PostgreSQL، مع تسميات للصفوف والسمات.

هذه الميزات تجعل من PostgreSQL الاختيار الصحيح للعديد من التطبيقات، بضعة منها: 

  • قاعدة بيانات المعاملات: عندما تحتاج في كثير من الأحيان إلى الوصول السريع إلى المعلومات لاستخدامها في منتج أو تطبيق، فإن PostgreSQL هو الاختيار الصحيح لقاعدة البيانات نظرًا لأن بنيتها العلائقية تجلب البيانات ذات الصلة بسرعات عالية.
  • تخزين البيانات: تعمل قاعدة البيانات بشكل جيد لعمليات بيانات المعاملات ولكن ليس للتحليل، والعكس صحيح بالنسبة لمستودع البيانات. الاثنان يكملان بعضهما البعض حتى تتمكن من نفوذ بياناتك بسهولة أكبر. إن توافق PostgreSQL مع أدوات ذكاء الأعمال يجعلها عملية خيار لتلبية متطلبات استخراج البيانات والتحليلات وذكاء الأعمال.
  • خدمات تحديد المواقع: باستخدام PostGIS التمديد، يمكنك استخدم PostgreSQL لتخزين البيانات الجغرافية المكانية وفهرستها والاستعلام عنها حسب الحاجة. هذا يجعلها اختيار ذكي للخدمات المعتمدة على الموقع وأنظمة المعلومات الجغرافية (GIS).
  • معاملات OLTP: PostgreSQL هو الاكثر استعمالا لمعاملات معالجة المعاملات عبر الإنترنت (OLTP). في العديد من الصناعات، بما في ذلك التجارة الإلكترونية (الشراء عبر الإنترنت وتحديثات المخزون)، والخدمات المصرفية (تحويل الأموال، والسحب من أجهزة الصراف الآلي, والتحقق من الرصيد)، والمبيعات (معاملات البيع بالتجزئة، وإنشاء الفواتير، ونقاط الولاء), والخدمات (حجز المواعيد، تحديثات الخدمة، و المدفوعات للخدمات المقدمة). 

لماذا هل تحتاج بوستجرس CDC? 

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

في النهاية، ستتأثر عملية اتخاذ القرار لديك حيث لن يكون لديك البيانات المحدثة التي تحتاجها لاتخاذ الخطوات التي ينبغي عليك القيام بها. 

هذا هو بالضبط نوع السيناريو الذي يمكنك تجنبه باستخدام Postgres CDC. 

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

مراجعة العميل ل Astera.

كيف عمل PostgreSQL CDC وماذا يفعل؟ 

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

  • يمكن لـ Postgres CDC مساعدتك على التخفيض من خلال تكاليف استخدام الشبكة حيث سيتم معالجة أحدث التغييرات فقط أثناء كل مزامنة بدلاً من مجموعة البيانات بأكملها.
  • Aتحليلات ومهام مماثلة تتطلب المزيد من الموارد ينفذ، تأثيرات معالجة الدفعات المتكررة أداء قاعدة بيانات Postgres بمرور الوقت ويعطل وظائفها. يقوم Postgres CDC في البداية بعمل نسخ من قاعدة البيانات ثم يقوم بتحديثها تدريجيًا بالبيانات المتغيرة. هذا العملية أخف بكثير من معالجة الدفعات، والحفاظ على قاعدة البيانات الخاصة بك بشكل أسرع وأكثر كفاءة.
  • حل متجر العقارات الشامل الخاص بك في جورجيا إدارة البيانات الرئيسية (MDM) سوف يقوم النظام طريقة التوسع أكثر سلاسة مع Postgres CDC في الواقع. من خلال البيانات المتغيرة من مصادر مختلفة والتي يتم تحديثها باستمرار في نظام MDM، ستفعل جميع فرقك ذلك تستخدم نفس البيانات المحدثة. يمكن أن يؤدي ذلك إلى تحسين التعاون والتنسيق وتسريع اتخاذ قرارات عمل أفضل.
  • يمكنك حتى استخدام ملفات تغيير التقاط البيانات مع Postgres كآلية للتعافي من الكوارث لبياناتك. يساعدك مركز السيطرة على الأمراض في الوقت الفعلي على عمل نسخة احتياطية من قواعد البيانات المهمة وإنشاء عمليات تكرار يمكن أن تكون مفيدة فيها حالات فشل النظام، وهجمات البرامج الضارة، والأخطاء البشرية، وغيرها من المواقف المماثلة.    

Meطرق التنفيذ بوستجرسSQL Change Dآتا Capture 

رسم يوضح الأنواع المختلفة لتقنيات PostgreSQL CDC.

كما تمت مناقشته أعلاه، سيقوم Postgres CDC بتتبع وتكرار أي تغييرات في البيانات عبر قواعد بيانات متعددة. يمكن أن تكون طريقة CDC التي تختارها إما دفعة أو في الوقت الفعلي منذ CDC لا لديك أي متطلبات ذات الصلة بالوقت.  

يمكنك تنفيذ Postgres CDC في بضعة دمقدرة طرق بناءً على متطلباتك التشغيلية، و سنقوم نلقي نظرة فاحصة عليهم أدناه: 

Tالحفارون 

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

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

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

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

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

مقتطف التعليمات البرمجية لإنشاء جدول "users_cdc" في Postgres.

سيؤدي هذا الكود إلى إنشاء جدول باسم "users_cdc' لتخزين معلومات التقاط بيانات التغيير، والتقاط معلومات مثل معرف المستخدم، والتشغيلنوع الأيون (INSERT، UPDATE، DELETE)، والطابع الزمني للتغيير، واسم المستخدم قبل وبعد التغيير معلومات. 

رمز لإنشاء وظيفة الزناد في Postgres.

يحدد هذا الرمز PL/pgSQL وظيفة ('Capture_changes') أثار بعد عمليات الإدراج أو التحديث أو الحذف في جدول "المستخدمين". 'قضية' بيان يحدد نوع العملية على أساس القيمة of  'TG_OP' (عملية الزناد). 

رمز لإنشاء وظيفة الزناد في Postgres.

ينشئ هذا الرمز مشغلًا باسم "users_trigger" في جدول "المستخدمين" الذي سيتم تنشيطه بعد أي عمليات إدراج أو تحديث أو حذف.

في ما سبق بوستجرس مركز السيطرة على الأمراض على سبيل المثال، في أي وقت يحدث تغيير في جدول "المستخدمين"، سيقوم المشغل المقابل بتنشيط "Capture_changesوظيفة "، والتي ستقوم بتسجيل التغييرات على"users_CDC' طاولة. سوف يلتقط جدول CDC نوع العملية والطابع الزمني والبيانات ذات الصلة قبل التغيير وبعده.

ستساعدك هذه العناصر معًا على تتبع جميع التعديلات في الجدول الأصلي بمرور الوقت. 

إيجابيات Postgres CDC المستندة إلى الزناد 

  • يعتبر Postgres CDC القائم على الزناد موثوقًا وشاملاً.
  • كل التقاط التغييرs ويتم حفظ السجلات داخل نظام SQL.
  • يتيح التقاط التغيير الفوري معالجة الأحداث في الوقت الفعلي.
  • يمكنك إنشاء مشغلات لأنواع مختلفة من الأحداث. 

سلبيات Postgres CDC المستندة إلى الزناد:

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

الاستعلامات 

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

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

يمكنك أيضًا استخدام البرامج النصية لـ مراقب قاعدة بيانات Postgres الخاصة بك للتغييرات وتسجيلها في قاعدة بيانات الوجهة، ولكن هذا خيار بل هو أكثر كثافة في العمل من مجرد الاستعلام عن قاعدة البيانات. 

استمرار بوستجرس تغيير التقاط البيانات المثال أعلاه، ها هو كيف سيتم الاستعلام عن جدول "المستخدمين": 

رمز لاستعلام Postgres.

يقوم هذا الاستعلام بجلب كافة السجلات من the 'المستخدمين' طاولة حيث 'آخر تحديث' الطابع الزمني أكبر من "2024-01-01". يتم استخدامه لاسترداد سجلات المستخدم التي تم تحديثها منذ التاريخ المحدد.

مقتطف التعليمات البرمجية لإنشاء جدول "users_cdc" في Postgres.

Thهو الكود الذي سيقوم بإنشاء الجدولusers_changesمع معلومات حول كل تغيير، مثل نوع العملية (إدراج أو تحديث أو حذف)، والطابع الزمني الخاص بها، والبيانات ذات الصلة قبل التغيير وبعده.

إيجابيات Postgres CDC القائمة على الاستعلامات 

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

سلبيات Postgres CDC المستندة إلى الاستعلامات

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

كيو النسخ المتماثل المنطقي 

يُطلق على Postgres CDC مع النسخ المتماثل المنطقي أيضًا اسم فك التشفير المنطقي. فكر في الأمر كتمثيل متدفق لسجل الكتابة المسبقة (WAL). منذ تلتقط WAL جميع تغييرات البيانات في قاعدة بيانات Postgres وتسجلها، وتعتبر هذه التغييرات تدفقات فك تشفير منطقية ويتم تصنيفها على أنها فتحة نسخ منطقية على مستوى قاعدة البيانات. 

بمعنى آخر، فتحة النسخ المتماثل ليست أكثر من مجرد دفق من التغييرات التي تحدث في قاعدة البيانات. يمكن أن تحتوي كل قاعدة بيانات على فتحات أو تدفقات متعددة من التغييرات.  

تنفيذ كيو يتطلب النسخ المتماثل المنطقي مكونًا إضافيًا لفك التشفير المنطقي. تتميز إصدارات Postgres 10 والإصدارات الأحدث بالإعداد الافتراضي "com.pgoutput' توصيل في. يسمح بمعالجة تغييرات قاعدة بيانات Postgres كتدفقات. ومع ذلك، إذا كنت تستخدم إصدارًا أقدم من 10، فستحتاج إلى تثبيت مكون إضافي يدويًا مثل 'com.decoderbufs"أو"wal2json". 

ال 'com.pgoutputيعد البرنامج المساعد مفيدًا لنسخ البيانات بين مثيلين أو أكثر من مثيلات PostgreSQL. أمازالت يمكن أن يكون صعبة لنقل بيانات تيار تغيير Postgres إلى أخرى منصة أو قاعدة بيانات. 

إذا كنت تريد نقل بيانات دفق التغيير إلى منصة غير تابعة لـ Postgres، فيمكنك استخدام "wal2jsonالبرنامج المساعد لتحويل بيانات دفق التغيير إلى JSON. سيسمح هذا لمنصات وجهتك بقراءتها بتنسيق JSON، وهو أمر أسهل من القراءة pgoutput الإخراج الثنائي. 

إلى جانب البرنامج المساعد، المكون الحيوي الآخر في CDC عبر النسخة المتماثلة المنطقية لـ PostgreSQLأوجه هو نموذج اشتراك مع الناشرين والمشتركين. يسمح نموذج الاشتراك هذا لمشترك واحد أو أكثر بالاشتراك في منشور واحد (أو أكثر) باستخدام عقدة الناشر. يقوم المشتركون بسحب البيانات من المنشورات، ويمكنهم إعادة نشرها للنسخ المتماثل أو لمزيد من إعادة التشكيل. 

اتبع الخطوات التالية لتنفيذ Postgres CDC مع النسخ المتماثل المنطقي من قاعدة البيانات المصدر (سنستخدم ملف "المستخدمين" جدول من الأمثلة السابقة) إلى قاعدة البيانات الوجهة، والتي سوف نسميها "تغييرات_المستخدمين" الجدول.

تذكر استبدال العناصر النائبة مثل "مصدر_ديسيبل' و "مستخدم_النسخ المتماثل" مع معلومات قاعدة البيانات الفعلية الخاصة بك. 

إعدادات تكوين Postgres للنسخ المتماثل المنطقي.

أولاً، قم بتمكين التمثيل المنطقي في ملف تكوين Postgres 'postgresql.conf'. استخدم الإعدادات المذكورة أعلاه وأعد تشغيل Postgres بمجرد إجراء هذه التغييرات. 

كود إنشاء جدول ونشر في Postgres.

سيقوم هذا القسم بإنشاء جدول اسمه "المستخدمين" ومطبوع اسمه "my_pub' من أجلالمستخدمين' طاولة. هذا المنشور هو مصدر التغييرات المراد تكرارها. 

رمز لإنشاء جدول "users_changes" في Postgres.

سيقوم هذا القسم بإنشاء جدول اسمه 'users_changes' في قاعدة البيانات الوجهة لتخزين التغييرات من المصدر.

رمز لإنشاء اشتراك في Postgres Logical Replication

هذا الرمز سوف إنشاء الاشتراك "my_sub'، والتي سوف تتصل بقاعدة البيانات المصدر وتشترك في 'my_sub' نشر. 

رمز لوظيفة التشغيل "capture_changes" و"users_trigger" في Postgres.

يحدد هذا الرمز وظيفة الزناد 'Capture_changes"لرصد التغييرات في"المستخدمين طاولة. إنه أناإدخالات المعلومات ذات الصلة في "المستخدمين_ التغييرات' طاولة حسب نوع العملية (إدراج، تحديث، حذف). كما أنه يخلق الزناد "users_trigger' لتنفيذ هذه الوظيفة بعد كل صفتغيير vel في 'المستخدمين الجدول. 

رمز وظيفة التشغيل "capture_changes" في قاعدة بيانات Postgres.

هذا عبارة SQL لمراقبة التغييرات في فتحة النسخ المتماثل المنطقية المسماة 'my_sub'و' جلبهم. يستبدل 'my_sub" باسم الاشتراك المحدد الخاص بك. 

إيجابيات Postgres CDC مع النسخ المنطقي: 

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

سلبيات Postgres CDC مع النسخ المنطقي: 

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

Postgres CDC باستخدام سجل الكتابة المسبقة (WAL) 

يمكن لكل من Postgres CDC القائم على المشغلات والاستعلامات إنشاء زمن استجابة والتأثير على أداء قاعدة البيانات الخاصة بك بمرور الوقت. لو, كنت بدلا نفوذ يمكنك استخدام ميزات Postgres المضمنة وإعادة توظيفها لعمليات مراكز السيطرة على الأمراض (CDC) بدلاً من استخدام التقنيات التي تمت مناقشتها أعلاه وال. 

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

فيما يلي الخطوات التي يتعين عليك اتخاذها تنفيذ بوستجرس تشانالتقاط البيانات باستخدام سجل المعاملات: 

أولاً، قم بتمكين WAL في تكوين Postgres الخاص بك. على الرغم من أن هذا هو الإعداد الافتراضي عادةً، تحقق من "postgresql.conf"ملف للتأكيد. يتيح Postgres للمستخدمين فحص محتويات WAL. على سبيل المثال، سوف نستخدم "pg_waldumpأداة. Rاستبدال العنصر النائب "path_to_wal_file> " بالمسار الفعلي لملف WAL الخاص بك عند استخدام هذا الرمز.

رمز للتحقق من محتويات WAL في Postgres.

التالي، ساستخدم محتويات WAL باستخدام استعلامات SQL. ال 'com.pglogic"تتضمن حزمة الامتداد"pg_decode"، وهو الامتداد الأكثر استخدامًا لهذا الغرض.

عبارة SQL للاستخدام في مركز السيطرة على الأمراض (CDC) باستخدام سجل الكتابة المسبقة.

  • سيؤدي "CREATE EXTENSION" إلى إنشاء وتثبيت "منطقي" الامتداد الذي يوفر إمكانات النسخ المتماثل المنطقي لـ Postgres.
  • بيان SQL "SELECT". يقوم بإنشاء فتحة نسخ متماثل منطقية باسم "my_slot' باستخدام 'pg_create_logic_representation_slot' وظيفة.
  • 'com.pgoutput' يحدد البرنامج المساعد للإخراج الذي سيتم استخدامه من أجله تغييرات فك التشفير وهنا انها ملحق إخراج مدمج للنسخ المتماثل المنطقي.
  • "pg_logic_slot_peek_changes" يتم استخدامه لفحص التغييرات التي تم التقاطها في فتحة النسخ المتماثل المنطقية
  • 'my_slot' هي فتحة النسخ المتماثل المنطقية التي يتم الاستعلام عنها. يعد هذا الاسم عنصرًا نائبًا ويجب عليك استبداله باسم الفتحة الفعلية التي تريد الاستعلام عنها
  • 'لا شيء' هو المكان الذي يمكنك فيه وضع المعلمات التي تحدد نطاق التغييرات المراد استردادها. استخدام 'لا شيء' هنا يعني استرجاع كافة التغييرات المتاحة دون أي نطاق محدد. 

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

إيجابيات استخدام WAL لـ Postgres CDC

  • بينما بعض الترميز لا يزال عند استخدام WAL، فإنه بشكل عام يتطلب ترميزًا أقل من طرق Postgres CDC الأخرى التي ناقشناها.
  • حلول ومنصات الطرف الثالث مثل "بلوجولوجي" متاحة لتبسيط الخطوات الأكثر تعقيدًا في العملية. 

سلبيات استخدام WAL لـ Postgres CDC

  • قد تكون البيانات التي تستخرجها من WAL بتنسيق أولي. تحويله ليتوافق مع بنية بيانات التطبيق الخاص بك يتطلب عمل إضافي.
  • قد تتطلب مراقبة التغييرات في WAL مزيدًا من البرمجة النصية أو الأتمتة.
  • يتطلب فهم وتفسير سجلات WAL فهمًا متعمقًا لطريقة العمل الداخلية لقاعدة بيانات Postgres الخاصة بك. 

أتمتة بوستجرس مركز السيطرة على الأمراض ثإيث Astera 

المثال التالي يشرح كيف يمكنك أتمتة يثير-على أساس بوستجرس مركز السيطرة على الأمراض استخدام Astera. Lوآخرون افترض كنت العمل مع PostgreSQL قاعدة البيانات وقمت بتكوين ملف مصدر جدول قاعدة البيانات لقراءة المعلومات من قاعدة البيانات هذه.  

تكوين اتصال قاعدة البيانات في Astera.

أولا، عليك تمكين CDC على قاعدة البيانات هذهaحد ذاتها اختيار تمكين تغيير التقاط البيانات على الجدول. 

تمكين مشغل CDC في Astera.

ثم حدد الحقول التي تريد تمكين مركز السيطرة على الأمراض عليها، من خلال حدد الأعمدة صندوق المحادثة. 

تحديد الأعمدة لتمكين CDC في Astera.

بينما you يمكن تحديد واحد أو كل الحقول في قاعدة البيانات، من الضروري اختيار مفتاح أساسي. في هذه الحالة ، يمكنك الاختيار موظفID. 
 تمكين مشغل CDC في Astera.

Once Spa كنت قد اختيار الحقول، انقر فوق "موافق".'. عليك انظر مربع الحوار يشير إلى أنك قمت بتمكين CDC بنجاح في قاعدة البيانات هذه. 

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

إضافة كائن وجهة قاعدة البيانات إلى سير العمل في Astera.

قم بتكوين الكائن الوجهة عن طريق فتح خصائصه. في ال تحديد منافذ الإدخال لـ Maبينغ قسم, حدد تقلب مربع الاختيار مع مصدر CDC كما ستفعل البيانات الواردة على الأرجح تحتوي على كل من السجلات الجديدة والمحدثة. في حدد الحقول لمطابقة إعادة قاعدة البياناتحبل, اختر موظفID منذ انها المفتاح الأساسي والفريد لكل سجل في قاعدة البيانات المصدر. 

تكوين وجهة قاعدة البيانات في Astera.

المقبل، استخدم السحب والإفلات ل قم بتعيين كافة الحقول من كائن مصدر قاعدة البيانات إلى الكائن الوجهة. تدفق البيانات إلى اكتمل الآن تنفيذ Postgres CDC. 

قاعدة بيانات الوجهة المعينة في Astera.

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

تشغيل تنفيذ CDC في Astera.

تزايدي Postgres CDC

انها من السهل إعداد CDC التزايدي في قاعدة بيانات PostgreSQL باستخدام Astera، مما يتيح لك تحميل البيانات تبدأ من جدول قاعدة البيانات الخاصة بك تدريجيًا بدلا من الأحمال الكاملة مع كل تشغيل.

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

حسنا استخدم مصدر جدول قاعدة بيانات تم تكوينه مسبقًا مع المعلومات ذات الصلة. 

كائن مصدر جدول قاعدة البيانات في Astera.

الوصول إلى خصائص الكائن المصدر عن طريق النقر بزر الماوس الأيمن رأسه واختياره خصائص.

قائمة سياق خصائص الكائن المصدر في Astera.

اتصل بقاعدة البيانات وانقر على "التالي" ل والمضي قدما. 

نافذة اتصال قاعدة البيانات في Astera.

في الشاشة التالية عليك راجع خيارات القراءة المتزايدة والقسم الخاص به.  

خيارات التحميل المتزايدة في Astera.

اختار الحمل المتزايد بناءً على حقول التدقيق as ال اقرأ الإستراتيجية والتي سوف تعرض المزيد من الخيارات. 

خيارات تزايدية في Astera.

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

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

إضافة كائن جدول الوجهة في Astera.

  • بمجرد التكوين، قم بتعيين مصدر الجدول إلى كائن وجهة الجدول.  

الكائنات المعينة في Astera.

  • عليك تأكد من أن الجدول الوجهة فارغ. يمكنك التحقق من محتوياته كما هو موضح أدناه، وسيؤدي ذلك إلى فتح استعلام SQL لعرض بيانات الجدول. 

التحقق من محتويات الجدول الوجهة في Astera.

جدول فارغ في Astera.الجدول المصدر في Astera.

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

نافذة تقدم المهمة أثناء إدخال مركز السيطرة على الأمراض (CDC) المتزايد Astera.

 

  • يمكنك التحقق من ذلك عن طريق معاينة الجدول الوجهة. 

معاينة جدول الوجهة في Astera.

 

أتمتة Postgres CDC في Astera والحفاظ على قواعد البيانات الخاصة بك متزامنة دون عناء

اجمع بين تقنيات Postgres CDC مع Asteraميزات إدارة البيانات الرائعة وتحقيق أقصى استفادة من قواعد بياناتك المحدثة دائمًا. اكتشف Astera الفرق اليوم!

ابدأ تجربتك المجانية

اختيار طريقة PostgreSQL CDC المناسبة لحالة الاستخدام الخاصة بك 

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

حجم البيانات وتكرار التغيير: 

  • في البيئات ذات التغييرات المعتدلة في البيانات التي تتطلب تتبعًا في الوقت الفعلي، فإن مراكز السيطرة على الأمراض (CDC) المستندة إلى المشغلات هي أفضل رهان لك
  • النسخ المتماثل المنطقي مناسب للسيناريوهات مع معدلات تغيير عالية للبيانات لأنها توفر إمكانات النسخ المتماثل في الوقت الفعلي.
  • إذا كان هناك استخراج غير متكرر لتغييرات البيانات في سير عملك، فاختر Postgres CDC القائم على الاستعلامات. 

الأداء والنفقات العامة: 

  • يمكن لـ Postgres CDC المستندة إلى المشغلات إضافة نفقات إضافية، خاصة إذا كانت معدلات المعاملات مرتفعة.
  • يعد النسخ المنطقي منخفض التأثير وسهل على النظام المصدر، مما يجعله الاختيار الصحيح للسيناريوهات عالية الأداء.
  • عادةً لا يستهلك مركز السيطرة على الأمراض (CDC) المبني على الاستعلامات الكثير من الموارد، ولكنه قد يؤثر على الأداء عندما يكون هناك استعلام مكثف. 

استخدام تعقيد الحالة: 

  • يعد مركز السيطرة على الأمراض (CDC) القائم على المشغلات مفيدًا للحالات المعقدة التي تتطلب التخصيص وتتبع التغيير التفصيلي.
  • النسخ المتماثل المنطقي مناسب للحالات التي تتطلب البساطة والنسخ المتماثل في الوقت الحقيقي.
  • يُعد مركز السيطرة على الأمراض (CDC) القائم على الاستعلامات خيارًا خاليًا من المتاعب لحالات الاستخدام البسيطة التي لا تحتاج إلى مشغلات معقدة. 

التكامل والتوافق: 

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

البساطة والوظيفة: 

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

وفي الختام 

في هذه المدونة، ألقينا نظرة متعمقة على الخيارات المتنوعة التي يمكنك استخدامها لتنفيذ CDC في PostgreSQL. ناقشنا أيضًا مزايا وعيوب كل طريقة وأبرزنا العوامل التي يجب عليك القيام بها نظر قبل اختيار طريقة CDC لمؤسستك. 

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

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

يمكّنك جناحنا من تبسيط عملك تكامل البيانات العمليات، بناء قوي مستودعات البياناتو تبسيط EDI الخاص بك و إدارة API, كل ذلك دون كتابة سطر واحد من التعليمات البرمجية. 

تجربة Astera اختلاف. يبدأ نسختك التجريبية المجانية اليوم أو طلب عرض أسعار للبدء. 

ربما يعجبك أيضا
أفضل 7 أدوات لتجميع البيانات في عام 2024
إطار إدارة البيانات: ما هو؟ الأهمية والركائز وأفضل الممارسات
أفضل أدوات استيعاب البيانات في عام 2024
مع مراعاة Astera لتلبية احتياجات إدارة البيانات الخاصة بك؟

أنشئ اتصالاً خاليًا من التعليمات البرمجية مع تطبيقات مؤسستك وقواعد البيانات والتطبيقات السحابية لدمج جميع بياناتك.

دعونا نتواصل الآن!
يتيح الاتصال