Todos os produtos
Search
Central de documentação

AnalyticDB:Use LOAD DATA to import data to Data Warehouse Edition

Última atualização: Jun 27, 2026

O comando LOAD DATA LOCAL INFILE carrega arquivos locais diretamente em uma tabela do AnalyticDB for MySQL Data Warehouse Edition por meio de uma conexão de cliente MySQL. Todos os arquivos de texto são suportados. Arquivos CSV têm suporte em clusters com as versões V3.1.10.2 ou posterior e V3.2.0 ou posterior.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do AnalyticDB for MySQL Data Warehouse Edition

  • Um cliente MySQL com a opção local-infile ativada (consulte Ativar local-infile)

  • Uma tabela de destino no cluster

Sintaxe

LOAD DATA LOCAL
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE table_name
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
    ]
    [LINES
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(column_name_or_user_var
    [, column_name_or_user_var] ...)]

Parâmetros

Localização do arquivo

Parâmetro

Descrição

file_name

Caminho para o arquivo local. Aceita caminho absoluto ou relativo. O sistema resolve caminhos relativos com base no diretório de trabalho do cliente.

Resolução de conflitos

Parâmetro

Descrição

REPLACE

Sobrescreve linhas existentes ao detectar chave primária duplicada. Se a importação de uma linha falhar, a operação é interrompida imediatamente e as linhas subsequentes não são importadas.

IGNORE

Ignora linhas com chaves primárias duplicadas ou erros de dados e continua a importar as linhas restantes.

Nota

A importação de dados não garante atomicidade. No modo

IGNORE

, as linhas com falha são ignoradas silenciosamente. No modo

REPLACE

, a importação para na primeira falha; portanto, algumas linhas podem não ser importadas. Execute

SHOW WARNINGS

após a importação para revisar os erros das linhas com falha.

Formato de arquivo

Parâmetro

Padrão

Descrição

TERMINATED BY 'string' (FIELDS)

\t

Delimitador de coluna. Mesmo padrão do MySQL.

ENCLOSED BY 'char' (FIELDS)

Caractere que envolve cada valor de coluna. Por exemplo, ENCLOSED BY '"' remove as aspas duplas dos valores antes da importação.

TERMINATED BY 'string' (LINES)

\n

Delimitador de linha.

Filtragem de linhas e mapeamento de colunas

Parâmetro

Descrição

IGNORE number LINES

Ignora as primeiras n linhas. Use esta opção para pular linhas de cabeçalho.

(column_name_or_user_var, ...)

Mapeia colunas do arquivo para colunas da tabela pelo nome. Se não especificado, o mapeamento ocorre em ordem. Caso o arquivo tenha mais colunas que a tabela, as colunas extras são ignoradas. Se houver menos colunas no arquivo, as colunas da tabela sem correspondência recebem seus valores padrão.

Ative local-infile

Antes de executar LOAD DATA LOCAL INFILE, ative a opção local-infile no seu cliente MySQL. Adicione as seguintes linhas ao arquivo ~/.my.cnf:

[mysqld]
local-infile

[mysql]
local-infile

Para obter mais informações sobre arquivos de opções do MySQL, consulte a documentação do MySQL.

Suporte a arquivos CSV

Em clusters com as versões V3.1.10.2 ou posterior e V3.2.0 ou posterior, há suporte para arquivos CSV, que seguem o padrão OpenCSV por padrão. É possível configurar delimitadores de coluna personalizados, mas não é possível personalizar delimitadores de linha e terminadores de coluna para arquivos CSV.

Para desativar a análise OpenCSV para arquivos CSV, execute:

SET adb_config LOAD_CSV_DATA_WITH_OPENCSV_FORMAT=false;

Importar dados

O exemplo a seguir importa dados de um arquivo local chamado out.bak para uma tabela chamada test no banco de dados adb_demo. O arquivo contém 5.000 linhas. O delimitador de coluna é \t e o delimitador de linha é \n. A linha 8 contém dados inválidos.

Etapa 1: Conecte-se ao cluster e crie a tabela de destino.

Conecte-se ao seu cluster AnalyticDB for MySQL, em seguida execute CREATE DATABASE e CREATE TABLE para configurar o destino:

CREATE TABLE test (
    a int NOT NULL DEFAULT '0',
    b varchar NOT NULL,
    PRIMARY KEY (a)
) DISTRIBUTED BY HASH(a);

Etapa 2: Execute LOAD DATA LOCAL INFILE.

Escolha um modo de resolução de conflitos conforme a forma como deseja lidar com linhas incorretas:

  • Modo IGNORE: ignora linhas inválidas e continua. Recomendado quando importações parciais são aceitáveis.

    LOAD DATA LOCAL INFILE '~/out.bak'
        IGNORE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n';
  • Modo REPLACE: interrompe na primeira linha inválida. Ideal para detectar problemas de dados imediatamente.

    LOAD DATA LOCAL INFILE '~/out.bak'
        REPLACE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n';
  • Ignorar linhas de cabeçalho: use IGNORE n LINES para pular as primeiras n linhas (por exemplo, uma linha de cabeçalho).

    LOAD DATA LOCAL INFILE '~/out.bak'
        REPLACE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n'
        IGNORE 10 LINES;

Etapa 3: Verifique o resultado.

Após a importação, confira a contagem de linhas:

SELECT COUNT(1) FROM test;

Modo IGNORE: a linha 8 (inválida) é ignorada; 4.999 linhas são importadas:

+----------+
| count(1) |
+----------+
|     4999 |
+----------+
1 row in set (0.14 sec)

Modo REPLACE: a importação para na linha 8 (a primeira linha inválida) e retorna um erro:

ERROR 1064 (42000): [13000, 2019061210070703000511314203303000266] syntax error :syntax error => IDENTIFIER is not value type pos:34 row: 0 and ceil:0

Ignorar 10 linhas: as primeiras 10 linhas são puladas; 4.990 linhas são importadas:

Query OK, 4990 rows affected (0.37 sec)

Etapa 4: Revise os erros das linhas com falha.

Execute SHOW WARNINGS para visualizar detalhes de erro das linhas que não foram importadas:

SHOW WARNINGS;

Próximos passos