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
-
Conecte-se à instância ECS.
-
Instale o Node.js.
-
Baixe o pacote:
wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz -
Descompacte e mova os arquivos:
tar -xf node-v16.18.0-linux-x64.tar.xz -
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
-
-
-
Instale o elasticsearch-dump:
npm install elasticdump -g
Exemplos
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.
-
Migre as configurações do índice:
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=settings -
Migre os mapeamentos:
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=mapping -
Migre os documentos (dados):
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=http://"<OtherName>:<OtherPassword>"@<OtherEsHost>/<OtherEsIndex> --type=data
Exportar para arquivo local (backup)
-
Exporte as configurações:
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=settings -
Exporte os mapeamentos:
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=mapping -
Exporte os documentos (dados):
elasticdump --input=http://"<UserName>:<YourPassword>"@<YourEsHost>/<YourEsIndex> --output=<YourLocalFile> --type=data -
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 |
|
|
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.: |
|
<UserName>/<OtherName> |
Nome de usuário do cluster (o padrão é |
|
<YourPassword>/<OtherPassword> |
Senha do cluster. |
|
|
Tipo de migração: |
|
|
Filtra dados usando Query DSL. Exemplo: |
