Esta página descreve como importar um arquivo CSV para um banco de dados do AlloyDB.
O procedimento para realizar a importação envolve estas tarefas:
Faça upload do arquivo CSV em um bucket do Cloud Storage.
Prepare um host de cliente para realizar a operação de importação.
Importe o arquivo CSV para o banco de dados.
Limpe os recursos criados para realizar o procedimento.
Antes de começar
- É necessário ter a função básica de proprietário (
roles/owner
) ou editor (roles/editor
) do IAM no projeto do Google Cloud que você está usando ou ter estes papéis predefinidos do IAM:- Administrador do AlloyDB (
roles/alloydb.admin
) ou leitor do AlloyDB (roles/alloydb.viewer
) - Administrador do Storage (
roles/storage.admin
) - Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1
)
- Administrador do AlloyDB (
Fazer o upload do arquivo CSV
Para enviar o arquivo CSV, crie um bucket do Cloud Storage e envie o arquivo CSV para ele.
Crie um bucket de armazenamento regional padrão no projeto e na região em que está localizado o banco de dados AlloyDB.
Faça upload do arquivo CSV no bucket de armazenamento criado.
Preparar um host de cliente
Para preparar um host de cliente para realizar a operação de importação, crie uma
VM do Compute Engine que possa se conectar à instância principal do AlloyDB
onde seu banco de dados está localizado e instale a ferramenta psql
e a
Google Cloud CLI nessa VM.
Siga as instruções Conectar um cliente psql a uma instância para criar uma VM do Compute Engine com a conectividade adequada e a ferramenta
psql
instalada. Ao seguir estas instruções, aloque armazenamento local suficiente para a VM do Compute Engine e para acomodar o arquivo CSV que você está importando.Instale a gcloud CLI para fornecer acesso de linha de comando ao arquivo CSV no bucket do Cloud Storage.
Importar o arquivo CSV
Para importar o arquivo CSV, você recebe o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado e usa a ferramenta psql
para criar uma tabela que contenha os dados CSV e, em seguida, importar.
- Acesse o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado confira os detalhes.
- Conecte-se por SSH à VM do Compute Engine.
Console
- No console do Google Cloud, acesse a página Instâncias de VMs.
- Na lista de instâncias de máquina virtual, clique em SSH na linha da instância que você criou.
gcloud
Use o comando
gcloud compute ssh
para se conectar à instância criada.gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Substitua:
PROJECT_ID
: o ID do projeto que contém a instância.ZONE
: o nome da zona em que a instância está localizada.VM_NAME
: o nome da instância
- Copie o arquivo CSV para o sistema de arquivos local do host do cliente:
gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
- Importe o arquivo CSV:
- Execute a ferramenta de cliente
psql
e, no prompt do psql, conecte-se ao banco de dados:psql -h IP_ADDRESS -U postgres \c DB_NAME
Será necessário inserir a senha do usuário
postgres
.IP_ADDRESS
: o endereço IP da instância principal.DB_NAME
: o nome do banco de dados em que você quer armazenar os dados CSV.
- Crie uma tabela para conter os dados CSV. Por exemplo:
CREATE TABLE weather ( city varchar(80), temp_lo int, temp_hi int, prcp real, date date );
A instrução
CREATE TABLE
acima é apenas para fins de ilustração. Crie uma tabela com colunas que correspondam aos dados do CSV. - Importe os dados do arquivo CSV:
\copy TABLE_NAME(COLUMN_LIST) FROM 'CSV_FILE_NAME' DELIMITER ',' CSV HEADER ;
TABLE_NAME
: o nome da tabela que você criou na etapa anterior.(COLUMN_LIST)
: uma lista separada por vírgulas dos nomes das colunas da tabela para importar dados, na ordem em que os dados aparecem no arquivo CSV.CSV_FILE_NAME
: o arquivo CSV.HEADER
: indicação de que o arquivo CSV contém uma linha de cabeçalho a ser ignorada. Caso contrário, omita esse parâmetro.
O comando
\copy
empsql
usa as mesmas opções e argumentos do comandoCOPY
do PostgreSQL para controlar a operação de importação de dados. - Execute a ferramenta de cliente
Limpar recursos
Depois de importar o arquivo CSV, você pode excluir o bucket do Cloud Storage e a VM do Compute Engine usada durante o procedimento de importação.