Copia di schema vertica o tutte le tabelle in uno schema da un cluster fisico a un altro cluster fisico
-
21-12-2019 - |
Domanda
Sto cercando di esportare e importare lo schema Vertica da un cluster fisico a un altro cluster fisico. La mia istanza di test ha un singolo cluster e la mia istanza di produzione ha 3 cluster.
Ho esplorato le seguenti opzioni, ma sono limitate a spostare i dati su un'istanza Vertica fisica:
- .
- Esporta in vertica ..
- copia schema.Table da Vertica ...
vorrebbe sapere se c'è un'opzione per spostare lo schema Vertica da un'istanza di vertica fisica a un'altra, con diverse configurazione del cluster.
Soluzione
Questa è una manipolazione complicata, che ha molti problemi:
- .
- Se si copia su DDLS, perderai il valore corrente delle sequenze, che potrebbe significare la chiave primaria duplicata quando si inseriscono i dati.
- Se le colonne sono configurate come Auto_Increment, non sarà possibile inserire dati in esso poiché è sulla sorgente (non è possibile forzare una colonna Auto_Increment, anche se ritengo che ciò potrebbe essere stato risolto in nuove versioni). .
- Se si copia DDLS tra cluster con un numero diverso di nodi, se i nomi dei nodi fanno parte della definizione di proiezione, finirai con qualcosa che non vuoi.
- Come hai notato, diverse reti impediranno l'uso di connect.
Un tentativo di aiutare con questo è stato fatto in Python tramite il Pyvertica utilità e specialmente vertica_migrate script. Puoi trovare il documento a https://pyvertica.readthedocs.org .
Questo è un lavoro complicato, e so che ci sono alcuni problemi in questo script, anche se mi ha già aiutato un lotto .
Spero che questo abbia aiutato,
Altri suggerimenti
È possibile utilizzare COPY FROM VERTICA
o EXPORT TO VERTICA
per importare / esportare i dati su un altro database Vertica (indipendentemente dalla configurazione del nodo). Inoltre, il tavolo bersaglio deve già esistere. È possibile utilizzare EXPORT_OBJECTS
< / a> per esportare il DDL. Entrambi i metodi consentono la migrazione dei dati da una versione che è una versione precedente dall'ultima versione principale (in esecuzione 6.x, è possibile importare da 5.x).
È necessario prima creare una connessione con l'altro database:
CONNECT TO VERTICA VMart USER dbadmin PASSWORD '' ON 'VerticaTarget',5433;
.
Quindi utilizzare EXPORT TO VERTICA
per esportare i dati dalla sorgente al database di destinazione:
EXPORT TO VERTICA VMart.schema.customer_dimension FROM schema.customer_dimension;
|______________________________| |_______________________|
| |
Target Source
DISCONNECT VMart;
.