Todos os produtos
Search
Central de documentação

ApsaraDB for SelectDB:Migrar dados do Elasticsearch

Última atualização: Sep 24, 2026

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

Pré-requisitos

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

Como funciona

Criar um catalog estabelece uma conexão somente leitura do SelectDB com o seu cluster do Elasticsearch. Após criar o 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, consulte o catalog e execute INSERT INTO ... SELECT para copiar os dados para uma tabela do SelectDB.

Nota

O SelectDB lê apenas dados de um catalog externo. O SelectDB não suporta escrita no cluster do Elasticsearch.

Ambiente de exemplo

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

Item

Valor

Índice do Elasticsearch (origem)

product_info

Banco de dados do SelectDB (destino)

es_db

Tabela do SelectDB (destino)

test_es2SelectDB

Preparar os dados de origem de exemplo

Para mais informações, consulte Getting started.

Migrar dados offline

Etapa 1: Conecte-se à instância do SelectDB

Para instruções de conexão, consulte Connect to an instance.

Etapa 2: Crie um catalog do Elasticsearch

Execute a instrução a seguir para criar um catalog que aponte para o seu cluster do 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

—

O nome do catalog. Altere o nome conforme as necessidades do seu negócio.

type

Sim

—

Defina como es.

hosts

Sim

—

A URL de acesso do cluster do Elasticsearch. Formato: http://<IP address>:<port>. Para usar um endpoint do Server Load Balancer (SLB), defina este parâmetro como a URL do SLB.

user

Não

—

O nome de usuário para acessar o cluster do Elasticsearch.

password

Não

—

A senha para acessar o cluster do Elasticsearch.

doc_value_scan

Não

true

Ativa o armazenamento orientado a colunas (doc_values) para consultar valores de campos. Quando ativado, o SelectDB consulta automaticamente campos com doc_values habilitado, melhorando 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 true, o SelectDB faz a correspondência com o valor completo do campo antes da tokenização. Quando false, o SelectDB faz a correspondência com termos individuais após a tokenização.

nodes_discovery

Não

true

Ativa 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 através da URL especificada em hosts. Defina como false para clusters do Elasticsearch da Alibaba Cloud, acessíveis apenas 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 estará acessível nas consultas.

like_push_down

Não

true

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

include_hidden_index

Não

false

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

Etapa 3: Verifique o catalog

Execute SHOW CATALOGS e confirme a criação do catalog:

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) Consulte o catalog do Elasticsearch

Alterne para o catalog externo para navegar pelas tabelas mapeadas:

SWITCH es_catalog;

Consulte e acesse os dados no es_catalog como faria no catalog interno. Para exemplos de consulta, consulte a seção "Query data from an Elasticsearch data source" do tópico Elasticsearch data source.

Retorne ao catalog interno ao terminar:

SWITCH internal;

Etapa 5: Crie 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: Crie a tabela de destino

Antes de criar a tabela, revise os mapeamentos de tipos de coluna entre o Elasticsearch e o SelectDB. Para a referência completa de mapeamentos de tipos, consulte a seção "Column type mappings" do tópico Elasticsearch data source.

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: Migre 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: Verifique a migração

Consulte a tabela de destino e confirme a importação dos dados:

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. Use as seguintes estratégias de acordo com o tipo de dado.

Dados de log

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

Dados transacionais ou de eventos

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

Compatibilidade com o ecossistema ELK

Para a coleta de logs, o SelectDB oferece plug-ins personalizados e aprimorados do Filebeat e do Logstash, a fim de coletar e processar dados de log de forma eficiente. Também é possível coletar logs por meio da importação de dados. Para mais informações, consulte os seguintes tópicos:

Próximos passos