Todos os produtos
Search
Central de documentação

Elasticsearch:Migrar dados com elasticsearch-dump

Última atualização: Jun 27, 2026

Use a ferramenta de código aberto elasticsearch-dump para migrar configurações de índice, mapeamentos e dados entre clusters do Alibaba Cloud Elasticsearch ou entre ambientes on-premises e nuvem.

Visão geral

O elasticsearch-dump é uma ferramenta de linha de comando que exporta dados de um índice do Elasticsearch para outro índice ou para um arquivo local.

Mais indicado para:

  • Migrar pequenos volumes de dados.

  • Transferir índices específicos.

  • Fazer backup de mapeamentos ou configurações em arquivos JSON locais.

Documentação oficial: elasticdump.

Pré-requisitos

  • Clusters de origem/destino: Crie os clusters do Alibaba Cloud Elasticsearch. Consulte Criar um cluster do Alibaba Cloud Elasticsearch.

  • Indexação automática: Ative a indexação automática (Auto Indexing) no cluster de destino ou crie o índice alvo manualmente com antecedência. Consulte Configure o arquivo YML.

  • Nó de migração: Utilize uma instância do Elastic Compute Service (ECS) para executar a ferramenta.

    • Se a instância ECS e o cluster Elasticsearch estiverem na mesma Virtual Private Cloud (VPC), use endpoints internos para obter transferência de dados mais rápida e gratuita.

    • Caso estejam em regiões ou VPCs diferentes, use endpoints públicos e adicione o IP da ECS à lista de permissões do cluster. Consulte Gerencie listas de permissões de endereços IP.

Instale o elasticsearch-dump

  1. Conecte-se à instância ECS.

  2. Instale o Node.js.

    1. Baixe o pacote:

      wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz
    2. Descompacte e mova os arquivos:

      tar -xf node-v16.18.0-linux-x64.tar.xz
    3. Configure as variáveis de ambiente:

      • Temporário (apenas para a sessão atual):

        export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/
      • Permanente (adicione ao perfil do shell):

        vim ~/.bash_profile
        export PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/
        source ~/.bash_profile
  3. Instale o elasticsearch-dump:

    npm install elasticdump -g

Exemplos

Importante

Se sua senha contiver caracteres especiais (por exemplo, #, $, @), as strings de URL padrão podem falhar. Consulte a seção Perguntas frequentes e solução de problemas para conhecer a solução com --httpAuthFile.

Migrar dados entre clusters (nuvem para nuvem)

Para migrar completamente um índice, execute os comandos para configurações (settings), mapeamentos (mappings) e dados (data), nessa ordem.

  1. Migre as configurações do índice:

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=settings
  2. Migre os mapeamentos:

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mapping
  3. Migre os documentos (dados):

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=data

Exportar para arquivo local (backup)

  1. Exporte as configurações:

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=settings
  2. Exporte os mapeamentos:

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mapping
  3. Exporte os documentos (dados):

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=data
  4. Exporte dados com base em uma consulta:

    elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> ----searchBody="<YourQuery>"

Importar de arquivo local (restauração)

Restaure os documentos:

elasticdump --input=<YourLocalFile> --output=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --type=data

Referência de parâmetros

Parâmetro

Descrição

--input / --output

Origem e destino. Pode ser a URL de um cluster ou o caminho de um arquivo local.

Importante

Ao exportar para um arquivo local, o elasticsearch-dump cria o arquivo no caminho especificado. Certifique-se de que o nome do arquivo de destino seja único no diretório alvo.

<YourEsHost>/<OtherEsHost>

Endpoint (interno ou público) do cluster Elasticsearch (ex.: es-cn-abc.public.elasticsearch.aliyuncs.com:9200). Consulte Visualizar as informações básicas de um cluster.

<UserName>/<OtherName>

Nome de usuário do cluster (o padrão é elastic).

<YourPassword>/<OtherPassword>

Senha do cluster.

--type

Tipo de migração: settings, mapping ou data.

--searchBody

Filtra dados usando Query DSL. Exemplo: {"query":{"term":{"user":"admin"}}}

Perguntas frequentes e solução de problemas

P: Error: getaddrinfo ENOTFOUND elastic

image.png

Causa: Geralmente ocorre quando a senha contém caracteres especiais (como #, ! ou @) que quebram a estrutura da URL.

Solução: Use um arquivo de autenticação

  1. Crie um arquivo chamado auth.ini:

    user=elastic
    password="Your#Complex$Password"
    Nota

    A senha deve estar entre aspas duplas (").

  2. Execute o elasticdump com a flag --httpAuthFile:

    elasticdump --input=http://es-*****.public.elasticsearch.aliyuncs.com:9200/customers --output=/root/customers.json --httpAuthFile=/root/auth.ini --type=settings

P: URIError: URI malformed

Causa: O elasticsearch-dump não consegue analisar nomes de usuário e senhas que contenham caracteres especiais.

Soluções:

  • Método 1: Remova os caracteres especiais do nome de usuário ou da senha.

  • Método 2: Faça login no console do Kibana, crie um usuário com as permissões necessárias e use-o para a migração.