La copie Vertica de Schéma ou de toutes les tables dans un schéma à partir d'un cluster à un autre Cluster physique

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

Question

Je suis en train d'exportation et d'importation Vertica le schéma d'un cluster physique à un autre cluster physique.Mon instance de Test a un seul pôle et mon instance de production a 3 clusters.

J'ai exploré des options suivantes, mais elles sont limitées au déplacement de données sur un physique Vertica exemple:

  1. L'EXPORTATION DE VERTICA ..
  2. COPIE du schéma.table DE VERTICA ...

Voudrais savoir si il y a une option pour déplacer la Vertica le schéma d'un physique Vertica instance à l'autre, avec différentes configuration de cluster.

Était-ce utile?

La solution

C'est une manipulation délicate, qui ont de nombreux problèmes:

  • Si vous copiez sur DDLS, vous perdrez la valeur actuelle des séquences, ce qui pourrait signifier une clé primaire en double lorsque vous insérez des données.
  • Si les colonnes sont configurées comme auto_incrènement, vous ne pourrez pas insérer de données dedans, car il est sur la source (vous ne pouvez pas forcer une colonne Auto_inCremmentation, bien que je pense que cela aurait pu être corrigé dans de nouvelles sorties).
  • Si vous copiez DDLS entre les clusters avec un nombre différent de nœuds, si les noms de nœuds font partie de la définition de projection, vous vous retrouverez avec quelque chose que vous ne voulez pas.
  • Comme vous l'avez remarqué, différents réseaux empêcheront l'utilisation de Connect.

Une tentative d'aider avec cela a été faite à Python via le utilitaire pyvertica et spécialement Le Vertica_migraate script. Vous pouvez trouver le doc de https://pyvertica.readthedocs.org .

C'est un travail délicat, et je sais qu'il y a des problèmes dans ce script, bien que cela m'a déjà aidé beaucoup .

J'espère que cela a aidé,

Autres conseils

Vous pouvez utiliser COPY FROM VERTICA ou EXPORT TO VERTICA pour importer/exporter les données vers une autre base de données Vertica (indépendamment de la configuration du nœud).Aussi, la table cible doit déjà exister.Vous pouvez utiliser EXPORT_OBJECTS pour exporter le DDL.Les deux méthodes permettent de migration de données à partir d'une version une version antérieure à partir de la dernière version majeure (course de 6.x, vous pouvez importer à partir de 5.x).

Dans l'exemple ci-dessous, je vais l'utiliser EXPORT TO VERTICA pour exporter des données à partir de la base de données source à la base de données cible.

Vous devez d'abord créer une connexion à la base de données:

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

Ensuite, utilisez EXPORT TO VERTICA pour exporter les données de la source vers la cible de la base de données:

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

DISCONNECT VMart;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top