كيفية تكرار اثنين من أنظمة قاعدة البيانات المختلفة؟

StackOverflow https://stackoverflow.com/questions/2026165

  •  19-09-2019
  •  | 
  •  

سؤال

لست متأكدا، إذا كنت تتناسب مع Stackoverflow بالضبط، لأنني أسعى للحصول على بعض الكود بدلا من أداة، أعتقد أنه يفعل ذلك.

أبحث عن طريقة لكيفية تكرار / مزامنة أنظمة قاعدة البيانات المختلفة - في هذه الحالة: MySQL و MongoDB. نحن نركض كلاهما لغرض مختلف. بدأنا مع قاعدة بيانات MySQL وأضاف MongodB لاحقا للتطبيقات الخاصة. هناك بيانات نود الحصول عليها في كلا قواعد البيانات، حيث نريد أن نحصل على قيود في MySQL محترم DBREFS في MongoDB. على سبيل المثال: نحتاج إلى سجل مستخدم في MySQL، ولكن أيضا في MongoDB للحصول على المراجع بين الجداول الأحكام الكائنات. في الوقت الحالي، لدينا Cronjob، والتي تفريغ بيانات MySQL واستوردها في MongoDB. ولكن على الرغم من أنه يعمل بشكل جيد للغاية، فإن هذا ليس الحل الذي نود الحصول عليه.

أفكر في الوقت الحالي ستكون النسخ المتماثل في اتجاه واحد كافيا - MySQL-> MongoDB، الجزء المهم هو أن النسخ المتماثل يعمل في "الوقت الفعلي"، مثل أعمال النسخ المتماثل MySQL MASTER-> الرقيق.

هل هناك بالفعل أي حلول لهذه المشكلة أو الأفكار أي شخص من كيفية تحقيق هذا؟

شكرا!

هل كانت مفيدة؟

المحلول

ما تبحث عنه يسمى EAI (تكامل تطبيق المؤسسة). هناك الكثير من الأدوات التجارية حولها ولكن تحت الرابط المقدم، ستجد أيضا حلول OSS. أساس EAI هو أن لديك مصادر بيانات ومصارف البيانات. يوفر EAI Framework أدوات لبناء مضخات مخصصة بين الاثنين.

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

نصائح أخرى

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top