Todos os produtos
Search
Central de documentação

ApsaraDB for SelectDB:Migrar\ dados\ do\ Elasticsearch

Última atualização: Jun 29, 2026

Utilize um catalog para migrar dados offline de um cluster Elasticsearch para uma instância ApsaraDB for SelectDB. O catalog mapeia os índices do Elasticsearch para tabelas do SelectDB, permitindo que você execute uma única instrução INSERT INTO ... SELECT para concluir a migração.

Pré-requisitos

Antes de começar, certifique-se de que:

Como funciona

A criação de um catalog estabelece uma conexão somente leitura do SelectDB com seu cluster Elasticsearch. Após a criação do catalog, o SelectDB cria automaticamente um banco de dados chamado default_db dentro dele e mapeia cada índice do Elasticsearch para uma tabela nesse banco de dados. Em seguida, você pode consultar o catalog e executar INSERT INTO ... SELECT para copiar dados para uma tabela do SelectDB.

Nota

O SelectDB só consegue ler dados de um catalog externo. Não há suporte para escrita de volta no cluster Elasticsearch.

Ambiente de exemplo

As etapas a seguir utilizam estes valores de exemplo. Substitua-os pelos seus próprios valores conforme necessário.

Item

Valor

Índice do Elasticsearch (source)

product_info

Banco de dados do SelectDB (destino)

es_db

Tabela do SelectDB (destino)

test_es2SelectDB

Preparar os dados de source de exemplo

Para mais informações, consulte Introdução.

Migrar dados offline

Etapa 1: Conectar-se à instância SelectDB

Para instruções de conexão, consulte Conectar-se a uma instância.

Etapa 2: Criar um catalog do Elasticsearch

Execute a seguinte instrução para criar um catalog que aponte para o seu cluster Elasticsearch:

CREATE CATALOG es_catalog PROPERTIES (
    "type"="es",
    "hosts"="http://127.0.0.1:9200",
    "user"="test_user",
    "password"="test_passwd",
    "nodes_discovery"="false"
);

A tabela a seguir descreve as propriedades do catalog:

Parâmetro

Obrigatório

Padrão

Descrição

es_catalog

Sim

Nome do catalog. Altere o nome conforme os requisitos do seu negócio.

type

Sim

Defina como es.

hosts

Sim

URL de acesso do cluster Elasticsearch. Formato: http://<endereço IP>:<porta>. Para usar um endpoint do Server Load Balancer (SLB), defina este valor como a URL do SLB.

user

Não

Nome de usuário para acessar o cluster Elasticsearch.

password

Não

Senha para acessar o cluster Elasticsearch.

doc_value_scan

Não

true

Habilita o armazenamento orientado a colunas (doc_values) para consulta de valores de campo. Quando ativado, o SelectDB consulta automaticamente campos com doc_values habilitado, o que melhora significativamente o desempenho de consultas em um pequeno número de colunas.

keyword_sniff

Não

true

Detecta campos TEXT no Elasticsearch e os consulta usando os campos KEYWORD correspondentes. Quando definido como true, o SelectDB corresponde ao valor completo do campo antes da tokenização. Quando false, o SelectDB corresponde a termos individuais após a tokenização.

nodes_discovery

Não

true

Habilita a descoberta de nós do Elasticsearch. Quando true, o SelectDB descobre e se conecta a todos os nós de dados disponíveis. Quando false, o SelectDB acessa os nós apenas pela URL especificada em hosts. Defina como false para clusters Elasticsearch da Alibaba Cloud, pois eles só podem ser acessados via URL.

mapping_es_id

Não

false

Mapeia o campo _id do Elasticsearch para uma coluna do SelectDB. Defina como true se precisar consultar o valor da chave primária. Quando false, o campo _id não fica acessível nas consultas.

like_push_down

Não

true

Converte consultas LIKE em consultas wildcard do Elasticsearch e as envia (push down) para o cluster. Isso pode aumentar o consumo de CPU no cluster Elasticsearch em alguns cenários. Defina como false para desativar o pushdown de LIKE e melhorar a precisão, às custas da taxa de recall.

include_hidden_index

Não

false

Inclui índices ocultos nas condições de consulta.

Etapa 3: Verificar o catalog

Execute SHOW CATALOGS para confirmar que o catalog foi criado:

SHOW CATALOGS;

Saída esperada:

+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 436009309195 | es_catalog   | es       |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
|            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

Etapa 4: (Opcional) Consultar o catalog do Elasticsearch

Mude para o catalog externo para navegar pelas tabelas mapeadas:

SWITCH es_catalog;

Consulte e acesse dados no es_catalog da mesma forma que faria no catalog interno. Para exemplos de consulta, consulte a seção "Consultar dados de uma fonte de dados Elasticsearch" do tópico Fonte de dados Elasticsearch.

Retorne ao catalog interno quando terminar:

SWITCH internal;

Etapa 5: Criar o banco de dados de destino

Ignore esta etapa se o banco de dados já existir.

CREATE DATABASE es_db;

Mude para o banco de dados de destino:

USE es_db;

Etapa 6: Criar a tabela de destino

Antes de criar a tabela, revise os mapeamentos de tipos de colunas entre o Elasticsearch e o SelectDB. Para a referência completa de mapeamento de tipos, consulte a seção "Mapeamentos de tipos de colunas" do tópico Fonte de dados Elasticsearch.

Crie a tabela usando tipos de colunas que correspondam ao esquema do índice do Elasticsearch:

CREATE TABLE test_Es2SelectDB
(
    `annual_rate` VARCHAR(200),
    `describe`    TEXT,
    `productName` VARCHAR(200)
)
DISTRIBUTED BY HASH(productName) BUCKETS 4
PROPERTIES("replication_num" = "1");

Etapa 7: Migrar dados

Execute INSERT INTO ... SELECT para copiar todas as linhas do índice do Elasticsearch para a tabela do SelectDB:

INSERT INTO test_Es2SelectDB SELECT * FROM es_catalog.default_db.product_info;

Etapa 8: Verificar a migração

Consulte a tabela de destino para confirmar que os dados foram importados:

SELECT * FROM test_Es2SelectDB;

Migrar dados incrementais

Em ambientes de produção, os dados do Elasticsearch geralmente incluem tanto dados históricos (offline) quanto dados incrementais contínuos. Utilize as estratégias a seguir com base no seu tipo de dado.

Dados de log

Grave novas entradas de log simultaneamente no cluster Elasticsearch e na instância SelectDB. Assim que houver dados suficientes acumulados no SelectDB, execute suas consultas de análise diretamente nele.

Dados transacionais ou de eventos

Utilize o modelo de chave única (Unique key model) do SelectDB para lidar com a deduplicação automaticamente. Grave dados incrementais tanto no cluster Elasticsearch quanto no SelectDB em paralelo. Migre os dados históricos usando as etapas de migração offline acima. Se houver sobreposição entre registros históricos e incrementais, o modelo de chave única deduplica com base na chave primária, eliminando a necessidade de resolução manual de conflitos.

Compatibilidade com o ecossistema ELK

Para coleta de logs, o SelectDB oferece plug-ins personalizados e aprimorados para Filebeat e Logstash, permitindo coletar e processar dados de log com eficiência. Você também pode coletar logs importando dados. Para mais informações, consulte os seguintes tópicos:

Próximos passos