Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Melhores práticas/ Importação e exportação/ Melhores práticas para importação de dados
Atualizado em 2024-05-09 GMT+08:00

Melhores práticas para importação de dados

Importar dados do OBS em paralelo

  • Dividir um arquivo de dados em vários arquivos

    Importar uma enorme quantidade de dados leva um longo período de tempo e consome muitos recursos de computação.

    Para melhorar o desempenho da importação de dados do OBS, divida um arquivo de dados em vários arquivos da forma mais uniforme possível antes de importá-lo para o OBS. O número preferencial de arquivos divididos é um múltiplo inteiro da quantidade de DN.

  • Verificar arquivos de dados antes e depois de uma importação

    Ao importar dados do OBS, primeiro importe seus arquivos para o bucket do OBS e, em seguida, verifique se o bucket contém todos os arquivos corretos e apenas esses arquivos.

    Após a conclusão da importação, execute a instrução SELECT para verificar se os arquivos necessários foram importados.

  • Garantir que não há caracteres chineses contidos em caminhos usados para importar dados para ou exportar dados do OBS.

Usar o GDS para importar dados

  • A distorção de dados faz com que o desempenho da consulta se deteriore. Antes de importar todos os dados de uma tabela contendo mais de 10 milhões de registros, é aconselhável importar alguns dos dados e verificar se há distorção de dados e se as chaves de distribuição precisam ser alteradas. Solucione problemas de distorção de dados, se houver. É caro abordar a distorção de dados e alterar as chaves de distribuição após uma grande quantidade de dados ter sido importada. Para obter detalhes, consulte Verificação de distorção de dados.
  • Para acelerar a importação, é aconselhável dividir arquivos e usar várias ferramentas do Gauss Data Service (GDS) para importar dados em paralelo. Uma tarefa de importação pode ser dividida em várias tarefas de importação simultâneas. Se várias tarefas de importação usarem o mesmo GDS, você poderá especificar o parâmetro -t para habilitar a importação simultânea de vários threads do GDS. Para evitar I/O física e gargalos de rede, é aconselhável montar GDSs em diferentes discos físicos e NICs.
  • Se a I/O e as NICs do GDS não atingirem seus gargalos físicos, você poderá habilitar o SMP no GaussDB(DWS) para aceleração. SMP irá multiplicar a pressão sobre GDSs. Note-se que a adaptação SMP é implementada com base na pressão da CPU do GaussDB(DWS) em vez da pressão do GDS. Para obter mais informações sobre SMP, consulte Sugestões para configurações de parâmetros de SMP.
  • Para a comunicação adequada entre GDSs e GaussDB(DWS), é aconselhável usar redes de 10GE. As redes de 1GE não podem suportar a transmissão de dados de alta velocidade e, como resultado, não podem garantir a comunicação adequada entre GDSs e GaussDB(DWS). Para maximizar a taxa de importação de um único arquivo, certifique-se de que uma rede de 10GE seja usada e que a taxa de I/O do grupo de discos de dados seja maior que o limite superior do recurso de processamento de núcleo único do GDS (cerca de 400 MB/s).
  • Semelhante à importação de tabela única, certifique-se de que a taxa de I/O seja maior que a taxa de transferência máxima da rede na importação simultânea.
  • Recomenda-se que a proporção entre a quantidade do GDS e a quantidade de DN esteja na faixa de 1:3 a 1:6.
  • Para melhorar a eficiência da importação de dados em lotes para tabelas particionadas armazenadas em coluna, os dados são armazenados em buffer antes de serem gravados em um disco. Você pode especificar o número de buffers e o tamanho do buffer definindo a partition_mem_batch e partition_max_cache_size, respectivamente. Valores menores indicam quanto mais lenta a importação em lote para tabelas particionadas de armazenamento de colunas. Quanto maiores os valores, maior o consumo de memória.

Usar INSERT para inserir várias linhas

Se a instrução COPY não puder ser usada e você precisar de inserções SQL, use uma inserção de várias linhas sempre que possível. A compactação de dados é ineficiente quando você adiciona dados de apenas uma linha ou algumas linhas de cada vez.

Inserções de várias linhas melhoram o desempenho por lotes até uma série de inserções. O exemplo a seguir insere três linhas em uma tabela de três colunas usando uma única instrução INSERT. Esta ainda é uma pequena inserção, mostrada simplesmente para ilustrar a sintaxe de uma inserção de várias linhas. Para obter detalhes sobre como criar uma tabela, consulte Criação de uma tabela.

Para inserir várias linhas de dados na tabela customer_t1, execute a seguinte instrução:

1
2
3
4
INSERT INTO customer_t1 VALUES 
(6885, 'maps', 'Joes'),
(4321, 'tpcds', 'Lily'),
(9527, 'world', 'James');

Para obter mais detalhes e exemplos, consulte INSERT.

Usar a instrução COPY para importar dados

A instrução COPY importa dados de bancos de dados locais e remotos em paralelo. COPY importa grandes quantidades de dados de forma mais eficiente do que as instruções INSERT.

Para obter detalhes sobre como usar a instrução COPY, consulte Executação da instrução COPY FROM STDIN para importar dados.

Usar um meta-comando de gsql para importar dados

O comando \copy pode ser usado para importar dados depois de fazer logon em um banco de dados por meio de qualquer cliente de gsql. Ao contrário da instrução COPY, o comando \copy lê ou grava em um arquivo.

Os dados lidos ou gravados usando o comando \copy são transferidos através da conexão entre o servidor e o cliente e podem não ser eficientes. A instrução COPY é recomendada quando a quantidade de dados é grande.

Para obter detalhes sobre como usar o comando \copy, consulte Usar o meta-comando \copy para importar dados.

\copy só se aplica à importação de dados em pequenos lotes com formatos uniformes, mas capacidade de tolerância a erros fraca. GDS ou COPY são preferidos para a importação de dados.