Galera, bom dia, estou com um problema, preciso extrair do POSTGRESSQL uma massa de dados muito grande em torno de 4gb de informações e escrever essas informações em um arquivo TXT, gostaria de saber qual a melhor forma pois um select seco em todos esses registros explodiria a memoria da minha VM, alguem conhece algo?
Qual a finalidade?
é um dump? copia do banco?
é de uma unica tabela?
dependendo da arquitetura você pode ter problemas com o tamanho de um unico arquivo txt de 4gb.
Sim, os dados serão exportados de uma unica tabela, seria algo mais ou menos assim:
SELECT * FROM TABELA
E todos os resultados eu vou gravar em um txt, o problema e que teria que ser TUDO ou NADA, digamos que no meio do processamento acabe a energia ou caia o servidor, se faltou um unico resgistro nenhum deve ser transferido para o txt, saca?
Se você não precisar fazer isso dentro da sua aplicação pode fazer da seguinte maneira…
No PGAdmin faça sua query, vá em: Arquivo > Exportar, coloque um separador de colunas e mande gerar o txt onde preferir…
Caso precise ser feito dentro da aplicação acredito que exista algum comando do psql que execute essa função que o PGAdmin faz, basta procurar os comandos e gerar direto da aplicação…
Pera… você quer colocar 4gb de info em um arquivo txt e importar em um banco embarcado?
Me corrijam se estiver errado falando besteira mas o h2 não me parece um banco parrudo o suficiente para tal processo.
Eu andei vendo e o h2 aguenta ate 1 tera, mas o problema é como ir pegando parcialmente esses dados do postegres para jogar no h2, teria que ser em um unico comendo., entende?
O certo mesmo seria um select no postgres e um insert no h2 maso problema e que o retorno desse select pode voltar muitos registros
Vou ignorar o fato de ser o H2, você teve ter seus motivos para utilizar…
Li um outro tópico em que você já engaja o mesmo assunto, aparentemente o que você precisa é fazer uma migração de base.
Na minha experiencia com software já fiz algumas migrações de base: Aparentemente este é o seu caso
Quando você trabalha com bases distintas ou não conversantes você pode utilizar um software de terceiros(se não me engano é opensource) chamado liquibase para fazer a migração da base. Ainda
Quando o banco de dados é o mesmo, apenas com versões diferentes você pode fazer um dump da base existente e importar na nova base.