Estou investigando bancos de dados orientados a colunas e me deparei com o Vertica.
Minha necessidade é alimentar o banco de dados Vertica a partir do código C. Não consigo obter esta informação da Vertica: disseram-me para usar "vsql" e o comando "copy". Tudo o que quero é emitir INSERT
instruções para meu banco de dados Vertica.
Isso pode ser feito?
Por exemplo, no PostgreSQL você pode fazer "SQL incorporado" vinculando a ecpg
biblioteca Postgres ao seu binário C. Não tenho ideia se tal coisa existe para Vertica, e não conheço outra maneira.
Alguma ideia?
Você realmente tem duas opções: Você pode criar um arquivo delimitado com seus dados, como o seguinte:
Você pode carregá-lo no Vertica usando o comando COPY e vsql. Se você tiver direitos de superusuário do banco de dados, poderá carregar o arquivo diretamente, usando:
Omita -w se quiser manter a senha fora do histórico do bash e inseri-la quando o programa iniciar. Se você não tem direitos de superusuário do banco de dados, ainda pode converter o arquivo em vsql e obter os dados do STDIN - exatamente por isso que o Vertica impede que você carregue dados de um arquivo sem direitos de superusuário, mas permite que qualquer usuário o canalize via cat , não faço ideia, mas você pode fazer da seguinte forma:
Ou, se você tiver várias instruções de inserção individuais em um arquivo, separadas por ponto e vírgula, basta executar o arquivo por meio do vsql, da seguinte maneira:
Mas se você estiver fazendo mais de 1.000 linhas, o carregamento em massa usando um arquivo delimitado deve ser muito mais rápido.
Espero que ajude!
Vertica inclui um driver ODBC para C.
Leia "Programador > Guia Vertica Client Libraries > Programação de aplicativos cliente ODBC"