Copiar Vertica de Esquema ou de todas as tabelas em um esquema de um cluster para outro Cluster físico
-
21-12-2019 - |
Pergunta
Eu estou tentando exportar e importar Vertica esquema de um cluster para outro cluster físico.Minha instância de Teste tem um único cluster e minha instância de produção de 3 clusters.
Eu explorei seguintes opções, mas eles estão limitados a movimentação de dados em um físico Vertica exemplo:
- EXPORTAR PARA VERTICA ..
- CÓPIA do esquema.tabela DE VERTICA ...
Gostaria de saber se existe uma opção para mover a Vertica esquema de um físico Vertica instância para outra, com diferente configuração de cluster.
Solução
Esta é uma manipulação complicada, que tem muitos problemas:
- Se você copiar o DDLS, perderá o valor atual das seqüências, o que pode significar a chave primária duplicada quando você insere dados.
- Se as colunas estiverem configuradas como Auto_increment, você não poderá inserir dados nele como estiver na fonte (você não pode forçar uma coluna Auto_increment, embora acredite que isso possa ter sido corrigido em novos lançamentos).
- Se você copiar DDLs entre clusters com um número diferente de nós, se nomes dos nó for parte da definição de projeção, você acabará com algo que você não quiser.
- Como você notou, redes diferentes impedirão o uso de conexão.
Uma tentativa de ajudar com isso foi feita em Python através do Pipartica utilidade e especialmente O vertica_migrate script. Você pode encontrar o doc em https://pyverta.readthedocs.org .
Este é um trabalho complicado, e eu sei que há alguns problemas neste script, embora já me ajudou muito
.Espero que isso tenha ajudado,
Outras dicas
Você pode usar um COPY FROM VERTICA
ou EXPORT TO VERTICA
para importar/exportar os dados para outro Vertica de banco de dados (independentemente da configuração de nó).Além disso, a tabela de destino tem de existir.Você pode usar EXPORT_OBJECTS
para exportar o DDL.Ambos os métodos permitem a migração de dados a partir de uma versão de uma versão anterior do último grande lançamento (em execução 6.x, você pode importar a partir de 5.x).
No exemplo abaixo, eu vou usar EXPORT TO VERTICA
para exportar dados a partir do banco de dados de origem para o banco de dados de destino.
Primeiro você deve criar uma conexão com o banco de dados:
CONNECT TO VERTICA VMart USER dbadmin PASSWORD '' ON 'VerticaTarget',5433;
Em seguida, use EXPORT TO VERTICA
para exportar os dados de origem para o banco de dados de destino:
EXPORT TO VERTICA VMart.schema.customer_dimension FROM schema.customer_dimension;
|______________________________| |_______________________|
| |
Target Source
DISCONNECT VMart;