Todos os produtos
Search
Central de documentação

AnalyticDB:Importação e exportação

Última atualização: Jun 27, 2026

Este tópico descreve problemas comuns e soluções para importação e exportação de dados no AnalyticDB for MySQL.

Nota

A menos que uma linha de produtos seja especificada, o problema se aplica apenas ao AnalyticDB for MySQL (Data Warehouse Edition).

Perguntas frequentes

Cancelar uma tarefa assíncrona de importação ou exportação

Acesse o console do AnalyticDB for MySQL. Na página Diagnostics and Optimization, clique em aba Import/Export Jobs. Localize a tarefa desejada e copie seu Asynchronous Job Name. Em seguida, execute o comando CANCEL JOB "${asynchronous job name}" para cancelar a tarefa. Para mais informações, consulte enviar tarefas de importação assíncronas.

Visualizar tarefas de importação em execução

Execute a seguinte consulta:

SELECT * FROM INFORMATION_SCHEMA.kepler_meta_async_jobs where status = "RUNNING"

Baixo desempenho na importação de dados via JDBC

  • Garanta que a fonte de dados gere dados em uma taxa suficiente. Se os dados forem lidos de outros sistemas ou arquivos, verifique se há gargalos de saída no cliente.

  • Assegure que o processamento de dados seja eficiente e acompanhe a geração de dados. Isso ajuda a manter uma fila suficiente de dados prontos para importação no AnalyticDB for MySQL.

  • Verifique se a máquina cliente possui recursos de sistema suficientes. Analise métricas como utilização de cpu e E/S de disco para identificar possíveis gargalos.

Cobranças de link para ingestão de dados (APS)

Não. O recurso de ingestão de dados (APS) em si é gratuito. No entanto, as tarefas do APS são executadas em um grupo de recursos no seu cluster e consomem recursos faturáveis.

Endereço interno ou público para tabelas externas do oss

Use um endereço interno ao criar uma tabela externa do oss. Os nós de backend no AnalyticDB for MySQL acessam o oss pela rede interna, não pela rede pública.

Erro 'Endpoint unreachable' para tabelas externas do MaxCompute

Causa: O erro 'endpoint unreachable' ocorre quando o endpoint especificado para uma tabela externa do MaxCompute está inacessível.

Solução: Ative a rede ENI, substitua o endpoint na instrução CREATE TABLE pelo endpoint de VPC da região da instância e execute a instrução novamente.

Importante
  • Ativar ou desativar a rede ENI interrompe a conectividade do banco de dados por aproximadamente dois minutos, período em que as operações de leitura e gravação ficam indisponíveis. Avalie cuidadosamente o impacto potencial antes de ativar ou desativar a rede ENI.

  • Acesse o console do AnalyticDB for MySQL. Navegue até . Na seção Network Information , ative o switch da rede ENI.

Erro 'Odps external table endpoint should not contain special character'

Causa: O endpoint está configurado incorretamente.

Solução: Substitua o endpoint na instrução CREATE TABLE pelo endpoint de VPC da região da instância e execute a instrução novamente.

Erro "Project not found - 'xxx'"

  • Causa: O projeto especificado não existe no MaxCompute ou o nome do projeto está escrito incorretamente.

    Solução: Corrija o nome do projeto na sua instrução de criação de tabela e tente criar a tabela externa novamente.

  • Causa: O projeto existe no MaxCompute, mas não está na mesma região do seu cluster AnalyticDB for MySQL.

    Solução: Certifique-se de que seu cluster AnalyticDB for MySQL e o projeto MaxCompute estejam na mesma região e tente criar a tabela externa novamente.

Erro na importação de dados do MaxCompute: "Rollback this write and commit one row at a time"

Causa: Este erro ocorre ao importar dados com o DataX devido a uma limitação na camada de conexão do AnalyticDB for MySQL.

Solução: Adicione o parâmetro rewriteBatchedStatements=false à sua string de conexão JDBC e tente importar novamente.

Erro "Query Exceeded Maximum Time Limit"

Causa: Este erro ocorre porque a importação de dados de uma tabela grande do MaxCompute excede o tempo limite para uma operação INSERT no AnalyticDB for MySQL.

Solução: Modifique o parâmetro INSERT_SELECT_TIMEOUT e tente importar novamente. Para detalhes, consulte parâmetros config e hint.

Erro: "can't submit job: job queue is full"

Causa: O número de tarefas assíncronas simultâneas no seu cluster AnalyticDB for MySQL excedeu o limite. Você pode enviar um ticket para verificar o limite de simultaneidade do seu cluster.

Solução:

  • Aguarde a conclusão das tarefas assíncronas enviadas e reenvie a tarefa de importação assíncrona. Para verificar o status de uma tarefa assíncrona, consulte enviar tarefas de importação assíncronas.

  • Você pode enviar um ticket para solicitar um limite maior de simultaneidade para o seu cluster.

"Query execution error: odps partition num: 192 > 191, specific odps partitions" ao importar dados do MaxCompute

Causa: O número de partições em uma única operação de importação excede o limite para um cluster AnalyticDB for MySQL.

Solução: Com base no número específico de partições na tabela do MaxCompute, adicione um Hint antes da instrução SQL /*RC_INSERT_ODPS_MAX_PARTITION_NUM=<value>*/ para ajustar o limite do número de partições.

A função max_pt() requer uma tabela particionada

Causa: Este erro ocorre quando você aplica a função MAX_PT() a uma tabela externa do MaxCompute não particionada.

Solução: Certifique-se de que a tabela do MaxCompute seja uma tabela particionada e tenha pelo menos uma partição. Em seguida, recrie a tabela externa do MaxCompute e consulte-a usando a função MAX_PT().

Erro ErrorCode=NoSuchPartition ao consultar dados do MaxCompute

Causa: A tabela externa do MaxCompute não possui partições.

Solução: Garanta que a tabela do MaxCompute contenha pelo menos uma partição Operações de partição. Depois, recrie a tabela externa e consulte os dados.

Erro Code 500 ao consultar dados do MaxCompute

Causa: O AnalyticDB for MySQL usa o mecanismo nativo para executar instruções SQL, mas o mecanismo nativo não suporta tabelas externas do MaxCompute.

Solução: Adicione o hint /*native_engine_task_enabled=false*/ no início da instrução SQL para desativar o mecanismo nativo e executar a instrução usando o mecanismo Java.

Erro de execução de consulta ao consultar dados do MaxCompute

  • Causa 1: O AccessKey não consegue ler a tabela do MaxCompute devido a configurações de permissão incorretas no MaxCompute.

    Solução: Atualize as permissões de leitura e gravação no MaxCompute e execute a consulta novamente.

  • Causa 2: O esquema ou os nomes das colunas da tabela do AnalyticDB for MySQL não correspondem aos da tabela do MaxCompute.

    Solução: No AnalyticDB for MySQL, recrie a tabela externa para corresponder ao esquema e aos nomes das colunas da tabela do MaxCompute. Em seguida, execute a consulta novamente.

  • Causa 3: A partição especificada do MaxCompute não existe.

    Solução: Corrija a partição do MaxCompute especificada na sua consulta e execute-a novamente.

  • Causa 4: A tabela do MaxCompute contém muitos arquivos pequenos.

    Solução: Mescle os arquivos pequenos no MaxCompute e execute a consulta novamente. Use a instrução de exemplo abaixo. Para mais detalhes, consulte Mesclar arquivos pequenos.

    ALTER TABLE tablename [PARTITION] MERGE SMALLFILES;

Importar array<string> do MaxCompute para o AnalyticDB for MySQL

Causa: Não é possível importar diretamente dados array<string> para o AnalyticDB for MySQL porque tabelas externas do MaxCompute não suportam tipos aninhados.

Solução: Exporte os dados do MaxCompute para o oss no formato Parquet e use o AnalyticDB for MySQL para ler os dados Parquet do oss.

Otimizar a velocidade de importação de dados do MaxCompute

  • Se a carga nos nós de armazenamento estiver baixa, ajuste o valor de SQL_OUTPUT_BATCH_SIZE e reimporte os dados usando a seguinte instrução:

    set adb_config SQL_OUTPUT_BATCH_SIZE = 6000;
  • Se a tabela do MaxCompute tiver muitas partições, defina ENABLE_ODPS_MULTI_PARTITION_PART_MATCH como false e reimporte os dados usando a seguinte instrução:

    set adb_config ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

Se o problema persistir, envie um ticket para o Suporte Técnico da alibaba cloud.

Falha na sobrescrita de dados para tabelas externas do MaxCompute

Tabelas externas do MaxCompute não suportam sobrescrita de dados.

Erro "Slot Quota Exceeded" para INSERT INTO SELECT no MaxCompute

Causa: Os slots necessários para a operação de gravação excedem a cota de slots.

Solução: Use um dos seguintes métodos.

  • Utilize um grupo de recursos exclusivo para integração de dados. Ele fornece uma cota de slots maior do que um grupo de recursos público para integração de dados.

  • A simultaneidade padrão para uma tarefa INSERT INTO SELECT é 16. Reduza a simultaneidade adicionando o hint /*TASK_WRITER_COUNT=<value>*/ no início da instrução SQL. O value deve ser um número inteiro maior que 0.

Erro de controle de fluxo ao gravar em tabelas externas do MaxCompute

Causa: Ao gravar dados em uma tabela externa do MaxCompute, se a operação criar novas partições, o MaxCompute chama a operação createPartition. Criar partições com muita frequência aciona o mecanismo de limitação no MaxCompute, o que causa este erro.

Solução: Verifique se sua tarefa INSERT INTO SELECT grava dados em várias partições simultaneamente. Se sim, adicione o hint /*TASK_WRITER_COUNT=<value>*/ à sua instrução SQL para reduzir a simultaneidade. O valor deve ser um número inteiro maior que 0. Se isso não resolver o problema, envie um ticket.

Incompatibilidade na contagem de registros

Causa: O AnalyticDB for MySQL remove automaticamente registros com chaves primárias duplicadas.

Solução: Verifique se há chaves primárias duplicadas nos seus dados de source do MaxCompute.

Lidando com tipos de dados não suportados

Se um banco de dados de source contiver tipos de dados não suportados pelo AnalyticDB for MySQL, como tipos de dados geoespaciais, o AnalyticDB for MySQL descarta as colunas correspondentes durante a inicialização do esquema.

Para obter uma lista de tipos de dados suportados, consulte Tipos de Dados Básicos e Tipos de Dados Complexos.

Alterar tipos de dados durante a sincronização

Durante a sincronização de dados, é possível modificar os tipos de dados das colunas em uma tabela de source. Este recurso suporta apenas alterações entre tipos de dados inteiros ou entre tipos de dados de ponto flutuante. Só é permitido alterar um tipo de dado para outro com um intervalo mais amplo, como de precisão simples para precisão dupla.

  • Tipos de dados inteiros: É possível alterar de um tipo menor para um maior entre Tinyint, Smallint, Int e Bigint. Por exemplo, alterar de Tinyint para Bigint é suportado, mas alterar de Bigint para Tinyint não é.

  • Tipos de dados de ponto flutuante: É possível alterar de Float para Double, mas não de Double para Float.

Sincronização de dados do DTS para um cluster AnalyticDB for MySQL: Erros decorrentes de alterações de tipo de dado

Erros:

  • ‘id' is LONG type, Can't change column type to DECIMAL
  • modify precision is not supported, col=id, type decimal, old=11, new=21

Causa: Este erro ocorre porque o DTS não suporta esta operação DDL quando você altera o tipo de dado de uma tabela de source durante a sincronização. Para mais informações, consulte O DTS suporta a alteração do tipo de dado de uma tabela de source durante a sincronização de dados para um cluster AnalyticDB for MySQL?

Solução:

  • Sincronização de objetos específicos: Ressincronize a tabela. Para isso, remova a tabela dos objetos de sincronização, exclua-a do banco de dados de destino e adicione-a novamente. O DTS então realiza uma nova sincronização completa e migração de esquema, contornando a operação DDL não suportada.

  • Sincronização completa do banco de dados: No AnalyticDB for MySQL, crie uma nova tabela com um nome diferente, mas com a mesma estrutura da tabela de source. Use INSERT INTO SELECT para copiar os dados da tabela original para a nova tabela. Em seguida, exclua a tabela original que apresenta o erro, renomeie a nova tabela para o nome original e reinicie a tarefa do DTS.

DTS para AnalyticDB for MySQL: resolver erros de valor de data inválido

Mensagem de erro:

Cannot parse "2013-05-00 00:00:00": Value 0 for dayOfMonth must be in the range [1,31]]

Causa: O AnalyticDB for MySQL não suporta a gravação de valores de data inválidos.

Solução:

  • Se a tarefa de sincronização estiver na fase de inicialização completa, corrija o valor na tabela de source. Por exemplo, altere '2013-05-00 00:00:00' para '2013-05-01 00:00:00'.

  • Se a tarefa de sincronização estiver na fase de sincronização incremental, remova a tabela do objeto de sincronização, corrija o valor inválido na tabela de source, adicione a tabela de volta ao objeto de sincronização e reinicie a tarefa de sincronização.

  • Se a tarefa de sincronização estiver na fase de sincronização incremental de uma sincronização completa de banco de dados, entre em contato com o Suporte Técnico da alibaba cloud para ativar um switch que permita gravar valores de data inválidos como null.

DTS para AnalyticDB for MySQL: Erro ao sincronizar tabelas sem chave primária

Mensagem de erro:

DTS-077004: Record Replicator error. cause by [[17003,2020051513063717201600100703453067067] table not exist => xxx_table] 

Causa: O AnalyticDB for MySQL não suporta a sincronização de tabelas sem chaves primárias.

Solução: Para resolver este erro, crie manualmente a tabela com uma chave primária no banco de dados de destino e reinicie a tarefa do DTS.

Sincronização do DTS: Erro "Default value is too long"

Mensagem de erro:

default value is too long

Solução: Envie um ticket para solicitar que o suporte técnico da alibaba cloud atualize seu cluster AnalyticDB for MySQL para a versão mais recente.

Sincronização do DTS para AnalyticDB for MySQL: Resolver erro de tamanho de registro (>16 MB)

Erro:

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (120468711 > 33554432). You can change this value on the server by setting the max_allowed_packet' variable.

Solução: Envie um ticket para solicitar ao Suporte Técnico da alibaba cloud que atualize seu cluster AnalyticDB for MySQL para a versão mais recente.

DTS para AnalyticDB for MySQL: Erro de espaço em disco insuficiente

Mensagem de erro:

disk is over flow

Solução: Exclua dados desnecessários para liberar espaço em disco ou entre em contato com o Suporte Técnico da alibaba cloud para aumentar a escala do cluster AnalyticDB for MySQL. Assim que houver espaço em disco suficiente, reinicie a tarefa do DTS.

Resolver erros do DTS: Tabelas ou colunas ausentes

Mensagem de erro:

table not exist => t1

Solução: Na configuração do DTS, certifique-se de que a opção para sincronizar todas as instruções DDL esteja selecionada.

Valores ausentes na mesclagem de várias tabelas

Erro:

No value present

Causa: Em uma mesclagem de várias tabelas, este erro ocorre se uma alteração de esquema for feita em uma tabela de source, como adicionar um novo campo. Essa alteração cria uma incompatibilidade de esquema entre as tabelas de source, o que impede o DTS de gravar dados na tabela de destino.

Solução: Envie um ticket para o suporte técnico do DTS.

Hífens em nomes de banco de dados, tabelas ou colunas

O AnalyticDB for MySQL não permite hífens (-) em nomes de bancos de dados, tabelas ou colunas. Para garantir uma sincronização de dados bem-sucedida, o DTS substitui automaticamente os hífens (-) por sublinhados (_).

Se a sincronização de dados falhar devido a outros problemas com nomes de bancos de dados, tabelas ou colunas, como aqueles contendo espaços ou caracteres chineses, entre em contato com o suporte técnico da alibaba cloud.

Nota

Para mais informações sobre os limites de uso do AnalyticDB for MySQL, consulte limites de uso.

Solucionar latência de dados durante a sincronização do DTS

  • O link de sincronização do DTS usa a especificação medium por padrão. Se o banco de dados de source estiver sob uma carga pesada de gravação, talvez seja necessário atualizar a configuração da instância para obter o máximo desempenho.

  • Para uma tabela sem chave primária, a coluna selecionada para atuar como tal pode causar atualizações de hot row, que são muito lentas. Para resolver esse problema, envie um ticket para o AnalyticDB for MySQL.

  • Quando o desempenho de gravação de um cluster AnalyticDB for MySQL atinge um gargalo, é necessário atualizar as especificações do AnalyticDB for MySQL.

Baixo TPS de gravação durante a importação de dados do dataworks

Uma carga insuficiente no cliente pode levar a baixa utilização de cpu, utilização de E/S de disco e tempo de resposta de gravação no cluster. Embora o servidor de banco de dados possa consumir rapidamente os dados recebidos, o baixo volume de dados resulta em um TPS de gravação menor que o esperado. Para melhorar o desempenho, aumente o batch size e a Maximum Concurrency da tarefa de importação. O desempenho da importação de dados geralmente escala linearmente com a carga do lado do cliente.

Skew de dados no AnalyticDB for MySQL proveniente de importação do dataworks

Quando ocorre skew de dados em uma tabela de destino, alguns nós do cluster ficam sobrecarregados, o que degrada o desempenho da importação. Nessa situação, a utilização de cpu e a E/S de disco do cluster são baixas, mas o tempo de resposta de gravação é alto. Identifique a tabela com skew na página Diagnostics and Optimization > Data Modeling Diagnostics. Para resolver esse problema, redesenhe a estrutura da tabela e reimporte os dados. Para mais informações, consulte Design de estrutura de tabela.

Identificar gargalos no cliente para adb-import.sh

Um gargalo no lado do cliente impede que você maximize a carga do banco de dados. Use os seguintes métodos para identificar gargalos no cliente ou em seu servidor host:

  • Acesse o console do AnalyticDB for MySQL. No painel de navegação à esquerda, clique em Monitoring Information e Diagnostics and Optimization para revisar as métricas de desempenho em busca de possíveis gargalos.

  • Execute os seguintes comandos no cliente ou em seu servidor host para identificar gargalos.

Comando

Descrição

top

Visualiza o uso de cpu.

free

Visualiza o uso de memória.

vmstat 1 1000

Visualiza a carga geral.

dstat -all --disk-util ou iostat 1 1000

Visualiza a largura de banda de leitura e utilização do disco.

jstat -gc <pid> 1000

Visualiza detalhes de coleta de lixo (GC) para o processo Java da ferramenta de importação. Se o GC for frequente, aumente o tamanho da memória heap no parâmetro jvmopts. Por exemplo: -Xmx16G -Xms16G.

Parametrizar o script adb-import.sh

Se seus arquivos de importação usam delimitadores de linha e coluna consistentes, modifique o script para aceitar tableName e dataPath como parâmetros. Isso permite usar um único script para importar dados em várias tabelas, passando diferentes nomes de tabelas e caminhos de arquivos como argumentos.

tableName=$1
dataPath=$2

Execute a importação com parâmetros:

# sh adb-import.sh table_name001 /path/table_001
# sh adb-import.sh table_name002 /path/table_002
# sh adb-import.sh table_name003 /path/table_003

Executar adb-import.sh em segundo plano

Para executar o programa de importação em segundo plano, use o seguinte comando:

# nohup sh adb-import.sh &

Após o início do programa, verifique o log executando o seguinte comando. Se o log contiver uma pilha de exceções, isso indica um erro que precisa ser solucionado.

# tail -f nohup.out

Para verificar se o processo de importação ainda está em execução, use o seguinte comando:

# ps -ef|grep import

Ignorar linhas com erro com adb-import.sh

As linhas com erro da ferramenta de importação se enquadram nas duas categorias a seguir:

  • Erros de execução de SQL.

    Para este tipo de erro, ignore a linha de erro definindo o parâmetro ignoreErrors=true. Nesse caso, o resultado da execução imprimirá o arquivo de erro detalhado, o número da linha inicial (como batchSize está definido, a linha de erro estará dentro de batchSize linhas após o número da linha inicial) e o SQL que falhou ao executar.

  • Incompatibilidade na contagem de colunas.

    Se um arquivo contiver um número inesperado de colunas, a ferramenta de importação interrompe imediatamente o processamento e imprime uma mensagem de erro. Como esse erro indica um arquivo malformado, ele não pode ser ignorado. Inspecione e corrija o arquivo manualmente. A ferramenta imprime uma mensagem de erro semelhante à seguinte:

    [ERROR] 2021-03-22 00:46:40,444 [producer- /test2/data/lineitem.csv.split00.100-41] analyticdb.tool.ImportTool
    (ImportTool.java:591) -bad line found and stop import! 16, file = /test2/data/tpch100g/lineitem.csv.split00.100, rowCount = 7, current row = 3|123|179698|145|73200.15|0.06|0.00|R|F|1994-02-02|1994-01-04|1994-02-
    23|NONE|AIR|ongside of the furiously brave acco|

**Solução de problemas de falhas na importação com adb-import.sh**

Para identificar rapidamente a causa de uma falha na importação, use os seguintes métodos para restringir o escopo da solução de problemas:

  • Quando uma importação falha, a ferramenta de importação do AnalyticDB for MySQL imprime um log de erros detalhando a causa da falha. Por padrão, a instrução SQL no log é truncada para 1.000 caracteres. Para visualizar a instrução completa, aumente o parâmetro failureSqlPrintLengthLimit. Por exemplo, você pode defini-lo como 1.500:

    printErrorSql=true
    failureSqlPrintLengthLimit=1500;
  • A ferramenta de importação processa instruções SQL em lotes, e um único lote, controlado pelo parâmetro batchSize, pode conter milhares de linhas. Isso dificulta a identificação da linha que causa o erro. Para isolar a linha problemática, reduza o parâmetro batchSize. Por exemplo, você pode defini-lo como 10:

    batchSize=10;
  • Se você identificou qual divisão de arquivo contém um erro, reproduza o erro importando apenas esse arquivo. Para fazer isso, modifique o parâmetro dataPath para apontar diretamente para o arquivo problemático:

    dataPath=/u01/this/is/the/directory/where/product_info/stores/file007;

Executar a ferramenta de importação no Windows

Ainda não há um script em lote disponível para Windows. Para executar a ferramenta de importação, chame o arquivo JAR diretamente:

usage: java -jar adb-import-tool.jar [-a <arg>] [-b <arg>] [-B <arg>] [-c <arg>] 
      [-D <arg>] [-d <arg>] [-E <arg>] [-f <arg>] [-h <arg>] [-I <arg>] 
      [-k <arg>] [-l <arg>] [-m <arg>] [-n <arg>] [-N <arg>] [-O <arg>]
      [-o <arg>] [-p <arg>] [-P <arg>] [-Q <arg>] [-s <arg>] [-S <arg>]
      [-t <arg>] [-T <arg>] [-u <arg>] [-w <arg>][-x <arg>] [-y <arg>] [-z <arg>]

Parâmetro

Obrigatório

Descrição

-h,--ip <arg>

Sim

O endereço de conexão do cluster AnalyticDB for MySQL.

-u,--username <arg>

A conta de banco de dados do cluster AnalyticDB for MySQL.

-p,--password <arg>

A senha da conta de banco de dados do AnalyticDB for MySQL.

-P,--port <arg>

O número da porta do cluster AnalyticDB for MySQL.

-D,--databaseName <arg>

Nome do banco de dados do cluster AnalyticDB for MySQL.

-f,--dataFile <arg>

O caminho absoluto do arquivo ou pasta de source. Os seguintes cenários são suportados:

  • Importar um único arquivo ou uma pasta.

  • Para importar vários arquivos, separe seus caminhos com uma vírgula (,).

-t,--tableName <arg>

O nome da tabela de destino.

-a,--createEmptyFinishFilePath <arg>

Não

Gera um arquivo de sinalização após a conclusão da importação. O valor padrão é uma string vazia, o que significa que nenhum arquivo é gerado. Para gerar um arquivo de sinalização, especifique seu nome. Por exemplo, -a file_a cria um arquivo de sinalização chamado file_a.

-b,--batchSize <arg>

O número de tuplas de valores por instrução de gravação em lote, como INSERT INTO tablename VALUES (..),(..). Padrão: 1.

Nota

Para um desempenho ideal de gravação em lote, defina este valor entre 1024 e 4096.

-B,--encryptPassword <arg>

Ativa a criptografia de senha. Padrão: false.

-c,--printRowCount <arg>

Imprime a contagem real de linhas da tabela de destino após a importação de cada arquivo. Padrão: false.

-d,--skipHeader <arg>

Ignora a linha de cabeçalho de um arquivo. Padrão: false.

-E,--escapeSlashAndSingleQuote <arg>

Escapa caracteres de barra invertida (\) e aspas simples (') nas colunas. Padrão: true.

Nota

O escape de caracteres afeta o desempenho de análise no lado do cliente. Se seus arquivos de source não contiverem esses caracteres, defina este parâmetro como false.

-I,--ignoreErrors <arg>

Ignora lotes com falha durante a importação de dados. Padrão: false.

-k,--skipLineNum <arg>

O número de linhas a serem ignoradas desde o início do arquivo. Isso é semelhante a IGNORE number {LINES | ROWS}. Padrão: 0.

-l,--delimiter <arg>

Delimitador de coluna. O AnalyticDB for MySQL usa o caractere visível \\| como delimitador de coluna por padrão. Você também pode usar caracteres invisíveis como delimitadores, que devem ser especificados em formato hexadecimal. Por exemplo, \x07\x07 deve ser especificado em formato hexadecimal como hex0707.

-m,--maxConcurrentNumOfFilesToImport <arg>

O número máximo de arquivos a serem lidos em paralelo ao importar de uma pasta. Padrão: Integer.MAX_VALUE, que lê todos os arquivos.

-n,--nullAsQuotes <arg>

Especifica se deve definir || como '' quando presente no arquivo a ser importado. O valor padrão é false, o que indica que || não é definido como '', mas sim como null.

-N,--printErrorSql <arg>

Imprime a instrução SQL que causou um erro. Padrão: true.

-O,--connectionPoolSize <arg>

O tamanho do pool de conexões do banco de dados AnalyticDB for MySQL. Padrão: 2.

-o,--encoding <arg>

A codificação do arquivo. Valores válidos: GBK, UTF-8. Padrão: UTF-8.

-Q,--disableInsertOnlyPrintSql <arg>

Imprime instruções INSERT sem executá-las. Padrão: false (as instruções são executadas).

-s,--lineSeparator <arg>

Separador de linha. O AnalyticDB for MySQL usa o caractere visível \\n como separador de linha por padrão. Você também pode usar caracteres invisíveis como separadores. Para fazer isso, você deve especificá-los em formato hexadecimal. Por exemplo, \x0d\x06\x08\x0a deve ser especificado como hex0d06080a.

-S,--printErrorStackTrace <arg>

Imprime o rastreamento de pilha quando ocorre um erro e printErrorSql=true. Padrão: false.

-w,--windowSize <arg>

O número de buffers para comandos INSERT SQL. Isso permite pipeline e a separação de E/S e computação quando comandos INSERT SQL são enviados para o AnalyticDB for MySQL, o que melhora o desempenho do cliente. Valor padrão: 128.

-x,--insertWithColumnNames <arg>

Inclui nomes de colunas na instrução INSERT INTO, como INSERT INTO tb(column1, column2). Padrão: true.

-y,--failureSqlPrintLengthLimit <arg>

O comprimento máximo de uma instrução SQL com falha a ser impressa. Padrão: 1000.

-z,--connectionUrlParam <arg>

Parâmetros adicionais de conexão com o banco de dados. Padrão: ?characterEncoding=utf-8.

Exemplo: ?characterEncoding=utf-8&autoReconnect=true.

Exemplos:

  • Exemplo 1: Importar um único arquivo usando parâmetros padrão:

    java -Xmx8G -Xms8G -jar adb-import-tool.jar -hyourhost.ads.aliyuncs.com -uadbuser -ppassword -P3306 -Dtest --dataFile /data/lineitem.sample --tableName LINEITEM
  • Exemplo 2: Importar todos os arquivos em uma pasta, otimizado para throughput máximo:

    java -Xmx16G -Xms16G -jar adb-import-tool.jar -hyourhost.ads.aliyuncs.com -uadbuser -ppassword -P3306 -Dtest --dataFile /data/tpch100g --tableName LINEITEM --concurrency 64 --batchSize 2048

Se minha instância rds de source foi liberada, como importo seu arquivo de backup SQL para o AnalyticDB for MySQL?

O AnalyticDB for MySQL não suporta a execução direta de arquivos de dump SQL usando o cliente de linha de comando mysql, pois as instruções DDL no dump podem ser sintaticamente incompatíveis. Se sua instância rds de source foi liberada e apenas o arquivo de backup SQL permanece, conclua a importação de dados seguindo estes dois documentos em sequência:

  1. Etapa 1: Restaurar o arquivo SQL para um banco de dados MySQL autogerenciado. Em uma instância ECS ou em um ambiente local, configure uma instância MySQL e use o cliente de linha de comando mysql para importar o arquivo SQL para o banco de dados MySQL autogerenciado. Para mais informações, consulte Restaurar dados do rds para um banco de dados autogerenciado a partir de um arquivo CSV ou SQL.

  2. Etapa 2: Importar dados do MySQL autogerenciado para o AnalyticDB for MySQL. Após os dados serem restaurados para o banco de dados MySQL autogerenciado, use tabelas externas para importar os dados para o cluster AnalyticDB for MySQL. Para mais informações, consulte Importar dados de um banco de dados MySQL autogerenciado.