نسخ مخطط Vertica أو جميع الجداول الموجودة في المخطط من مجموعة فعلية إلى مجموعة فعلية أخرى

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

سؤال

أحاول تصدير واستيراد مخطط Vertica من مجموعة فعلية إلى مجموعة فعلية أخرى.يحتوي مثيل الاختبار الخاص بي على مجموعة واحدة ويحتوي مثيل الإنتاج الخاص بي على 3 مجموعات.

لقد استكشفت الخيارات التالية، ولكنها تقتصر على نقل البيانات على مثيل Vertica فعلي واحد:

  1. التصدير إلى فيرتيكا ..
  2. نسخ جدول المخطط من VERTICA ...

أرغب في معرفة ما إذا كان هناك خيار لنقل مخطط Vertica من مثيل Vertica فعلي إلى آخر، بتكوين مجموعة مختلف.

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

المحلول

هذا هو معالجة صعبة، والتي لديها العديد من القضايا:

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

محاولة للمساعدة مع هذا قد تم في بيثون عبر Pyvertica الأداة المساعدة، وخاصة vertica_migrate البرنامج النصي. يمكنك العثور على DOC على https://pyvertica.readtheedocs.org .

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

آمل أن يكون هذا ساعد،

نصائح أخرى

يمكنك استخدام أي منهما COPY FROM VERTICA أو EXPORT TO VERTICA لاستيراد/تصدير البيانات إلى قاعدة بيانات Vertica أخرى (بغض النظر عن تكوين العقدة).كما يجب أن يكون الجدول الهدف موجودًا بالفعل.يمكنك استخدام EXPORT_OBJECTS لتصدير DDL.تسمح كلتا الطريقتين بترحيل البيانات من إصدار يعد إصدارًا سابقًا من الإصدار الرئيسي الأخير (يعمل بالإصدار 6.x، ويمكنك الاستيراد من الإصدار 5.x).

في المثال أدناه، سأستخدم EXPORT TO VERTICA لتصدير البيانات من قاعدة البيانات المصدر إلى قاعدة البيانات الهدف.

يجب عليك أولاً إنشاء اتصال بقاعدة البيانات الأخرى:

CONNECT TO VERTICA VMart USER dbadmin PASSWORD '' ON 'VerticaTarget',5433;

ثم استخدام EXPORT TO VERTICA لتصدير البيانات من المصدر إلى قاعدة البيانات الهدف:

EXPORT TO VERTICA VMart.schema.customer_dimension FROM schema.customer_dimension;
                  |______________________________|     |_______________________|
                                 |                                 |
                              Target                            Source

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