Todos os produtos
Search
Central de documentação

DataHub:Criar uma tarefa de sincronização do Elasticsearch

Última atualização: Aug 25, 2026

Antes de começar

  1. Criar um índice do Elasticsearch

    O DataHub permite sincronizar dados para um índice em uma instância do Elasticsearch. Esse recurso é compatível com as versões 5, 6 e 7 do Elasticsearch.

    Atualmente, o DataHub sincroniza apenas dados de tópicos do tipo TUPLE para o Elasticsearch. Antes de iniciar a tarefa de sincronização, certifique-se de ter criado um índice no Elasticsearch ou de que a criação automática de índices esteja ativada. Caso contrário, a tarefa de sincronização falhará.

  2. Preparar e autorizar uma conta para a tarefa de sincronização

    Para criar uma tarefa de sincronização do Elasticsearch, forneça o endpoint do Elasticsearch, os detalhes do índice e as credenciais da conta. Verifique se as informações da conta são válidas para evitar falhas na criação da tarefa.

Criar uma tarefa de sincronização

  1. Acesse a página Project List > Project Details > Topic Details.

  2. No canto superior direito, clique em + Sync.

  3. Selecione Elasticsearch como o tipo de conector.

Parâmetros

Endpoint

O endereço do service Elasticsearch requer um endereço interno e uma porta interna no formato endereço interno:porta interna.

Por exemplo, se o endereço interno for es-cn-xxx.elasticsearch.aliyuncs.com e a porta interna for 9200, insira es-cn-xxx.elasticsearch.aliyuncs.com:9200.

Index

É possível especificar o índice de destino de duas formas: estática ou dinâmica.

Índice estático

Todos os dados são gravados em um único índice predefinido. Crie esse índice antecipadamente ou ative a criação automática de índices no Elasticsearch.

Índice dinâmico

Os dados são gravados em índices diferentes com base em um período de tempo ou nos valores de uma coluna de dados específica. Para que a indexação dinâmica funcione, ative a criação automática de índices no Elasticsearch. Selecione até uma coluna para gerar o nome do índice.

Formatos de hora suportados:

Ano

Mês

Dia

Semana

%Y

%m

%d

%U

  • Exemplo 1: Gerar um novo índice todos os dias à meia-noite Configure o índice como test_${%Y-%m-%d}. Se a data atual for 31 de março de 2021, o índice final será test_2021-03-31.

  • Exemplo 2: Gerar um novo índice a partir de uma coluna de dados Os dados contêm uma coluna chamada col1, e o índice está configurado como test_${col1}. Se dois registros de dados tiverem AAA e BBB como valores para a coluna col1, os registros serão gravados nos índices test_AAA e test_BBB, respectivamente.

À medida que o número de índices no Elasticsearch aumenta, o desempenho de gravação pode diminuir. Um número excessivo de índices pode causar tempos limite de gravação no DataHub. Ao usar um índice dinâmico, planeje seu padrão de nomenclatura para evitar a criação de uma quantidade excessiva de índices.

User/Password

Nome de usuário e senha para acessar o Elasticsearch.

Type column

O DataHub gera o tipo de documento de maneira diferente dependendo da versão do Elasticsearch. No Elasticsearch 5, é possível criar vários tipos dentro de um único índice. No Elasticsearch 6, apenas um tipo por índice é permitido. Esta configuração não pode estar vazia.

  • No Elasticsearch 5, o DataHub usa o valor da coluna Type selecionada como o tipo de documento. Se você selecionar várias colunas, seus valores serão concatenados com um separador "|" para formar o tipo. Os campos selecionados para a coluna Type não podem conter valores nulos.

  • No Elasticsearch 6, o DataHub usa o nome da coluna selecionada como o tipo de documento. Se você selecionar várias colunas, seus nomes serão concatenados com um separador "|". O Elasticsearch 6 aceita qualquer string como nome de tipo.

  • Não é possível especificar um nome de tipo personalizado no console ao criar uma tarefa de sincronização para o Elasticsearch 6. Para usar um nome de tipo personalizado, crie a tarefa usando o SDK.

  • No Elasticsearch 7, todos os documentos usam um tipo padrão, portanto, não é necessário selecionar uma coluna Type.

Exemplo:

DataHub Schema : f1 string, f2 string, f3 string, f4 string
Data record : ["test1","test2","test3",null]

Coluna Type

Tipo no Elasticsearch 5

Tipo no Elasticsearch 6

f1

test1

f1

f1,f3

test1

test3

f1

f3

ff

Falha na criação

ff

f1,ff

Falha na criação

f1

ff

f4

Criação bem-sucedida, mas falha na sincronização (dados incorretos)

Criação e sincronização bem-sucedidas

ID column

É possível gerar um ID de documento para o Elasticsearch a partir dos dados de registro do DataHub. Se nenhuma coluna for selecionada, o Elasticsearch gerará um ID exclusivo para cada documento. Ao selecionar uma ou mais colunas, seus valores são concatenados com um separador "|" para criar o ID do documento. Os campos selecionados para a coluna ID não podem conter valores nulos.

Exemplo:

DataHub Schema : f1 string, f2 string, f3 string, f4 string
Data record : ["test1","test2","test3",null]

Coluna Id

Id do documento

O Elasticsearch gera automaticamente um ID exclusivo

f1

test1

f1,f3

test1

test3

ff

Falha na criação

f4

Criação bem-sucedida, mas falha na sincronização (dados incorretos)

Router column

Você pode gerar um valor de roteamento para o Elasticsearch a partir dos dados de registro do DataHub. Se nenhuma coluna for selecionada, o recurso de roteamento do Elasticsearch não será utilizado. Ao selecionar uma ou mais colunas, seus valores serão usados como valor de roteamento. Se várias colunas forem selecionadas, seus valores serão concatenados com um separador "|". Os campos selecionados para a coluna Router não podem conter valores nulos.

Para ver um exemplo, consulte a ID column.

Imported fields

Selecione os campos do tópico do DataHub para sincronizar com o Elasticsearch. O DataHub não sincroniza campos não selecionados. No Elasticsearch 5, os dados finais do documento não incluem os campos usados para a coluna ID e a coluna Type. Para obter mais informações sobre como os dados são transformados, consulte os exemplos nas seções a seguir.

Network type

Selecione o tipo de rede com base na implantação da sua instância do Elasticsearch. As instâncias do Alibaba Cloud Elasticsearch na cloud pública executam dentro de uma VPC. Portanto, selecione VPC como o tipo de rede para essas tarefas de sincronização. Ao usar o tipo de rede VPC, forneça o ID da VPC e o ID da instância.

Ao inserir o ID da instância, adicione o sufixo -worker. Por exemplo, se o ID da sua instância for es-cn-xxx, insira es-cn-xxx-worker.

Exemplos de gravação de dados

Os exemplos a seguir pressupõem que a tarefa de sincronização do Elasticsearch foi criada com êxito. Se a criação da tarefa falhar, revise e corrija sua configuração.

Schema do DataHub:

Nome do campo

Tipo do campo

f1

BIGINT

f2

STRING

f3

BOOLEAN

f4

DOUBLE

f5

TIMESTAMP

f6

DECIMAL

  • Exemplo 1

    • Coluna Type = f1 (Não aplicável ao Elasticsearch 7)

    • Coluna ID = f2

    • Campos importados = f1,f2,f3,f4,f5,f6

      • Registro de dados = v1,v2,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        v1

        v2

        {f3:v3,f4:v4,f5:v5,f6:v6}

        ES6

        f1

        v2

        {f1:v1,f3:v3,f4:v4,f5:v5,f6:v6}

        ES7

        -

        v2

        {f1:v1,f3:v3,f4:v4,f5:v5,f6:v6}

      • Registro de dados = null,v2,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna Type resulta em dados incorretos.

        ES6

        f1

        v2

        {f1:v1,f3:v3,f4:v4,f5:v5,f6:v6}

        ES7

        -

        v2

        {f1:v1,f3:v3,f4:v4,f5:v5,f6:v6}

      • Registro de dados = v1,null,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES6

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES7

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

  • Exemplo 2

    • Coluna Type = f1,f2 (Não aplicável ao Elasticsearch 7)

    • Coluna ID = f3,f4

    • Campos importados = f1,f2,f3,f4,f5,f6

      • Registro de dados = v1,v2,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        v1

        v2

        v3

        v4

        {f5:v5,f6:v6}

        ES6

        f1

        f2

        v3

        v4

        {f1:v1,f2:v2,f5:v5,f6:v6}

        ES7

        -

        v3

        v4

        {f1:v1,f2:v2,f5:v5,f6:v6}

      • Registro de dados = v1,null,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna Type resulta em dados incorretos.

        ES6

        f1

        f2

        v3

        v4

        {f1:v1,f2:v2,f5:v5,f6:v6}

        ES7

        -

        v3

        v4

        {f1:v1,f2:v2,f5:v5,f6:v6}

      • Registro de dados = v1,v2,null,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES6

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES7

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

  • Exemplo 3

    • Coluna Type = f1 (Não aplicável ao Elasticsearch 7)

    • Coluna ID = f2

    • Coluna Router = f3

    • Campos importados = f1,f2,f3,f4,f5,f6

      • Registro de dados = v1,v2,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Router

        Dados

        ES5

        v1

        v2

        v3

        {f4:v4,f5:v5,f6:v6}

        ES6

        f1

        v2

        v3

        {f1:v1,f4:v4,f5:v5,f6:v6}

        ES7

        -

        v2

        v3

        {f1:v1,f4:v4,f5:v5,f6:v6}

      • Registro de dados = null,v2,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna Type resulta em dados incorretos.

        ES6

        f1

        v2

        {f1:v1,f4:v4,f5:v5,f6:v6}

        ES7

        -

        v2

        {f1:v1,f4:v4,f5:v5,f6:v6}

      • Registro de dados = v1,null,v3,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES6

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

        ES7

        -

        -

        Um valor nulo na coluna ID resulta em dados incorretos.

      • Registro de dados = v1,v2,null,v4,v5,v6

        Versão do ES

        Tipo

        Id

        Dados

        ES5

        -

        -

        Um valor nulo na coluna Router resulta em dados incorretos.

        ES6

        -

        -

        Um valor nulo na coluna Router resulta em dados incorretos.

        ES7

        -

        -

        Um valor nulo na coluna Router resulta em dados incorretos.

  • Gerenciar a tarefa de sincronização

    Na página de detalhes do conector, visualize o status de execução da tarefa, o checkpoint e outras informações. Também é possível reiniciar e parar a tarefa. Pare a tarefa antes de redefinir o checkpoint.

    Exemplo de ponta a ponta

    Este exemplo usa o Alibaba Cloud Elasticsearch 6.7 para demonstrar o processo completo de sincronização de dados do DataHub para o Elasticsearch. As operações relacionadas ao Elasticsearch são executadas usando o Kibana Dev Tools. Para outros métodos, consulte official Elasticsearch documentation.

    1. Criar um índice do Elasticsearch

      Por padrão, o Elasticsearch cria automaticamente um índice, então geralmente você pode pular esta etapa. Se a criação automática de índices estiver desativada, crie o índice manualmente. Para comandos específicos, consulte official Elasticsearch documentation.

    2. Criar um tópico do DataHub

      Apenas tópicos do tipo TUPLE suportam sincronização com o Elasticsearch. Para obter instruções sobre como criar um tópico do DataHub, consulte Topic Operations.

    3. Criar a tarefa de sincronização do Elasticsearch

      Neste exemplo, ao criar a tarefa de sincronização, usamos f1 e f2 como coluna Type, f3 e f4 como coluna ID e selecionamos todos os campos para importação.

    4. Gravar dados no tópico do DataHub

      Use o SDK do DataHub ou um plugin para gravar dados. Após gravar um registro, faça uma amostragem dos dados no console para verificar o que foi gravado.

    5. Verificar a sincronização de dados

      Primeiro, verifique o checkpoint da tarefa de sincronização do Elasticsearch. Uma alteração no checkpoint e no tempo de sincronização indica que os dados foram sincronizados. O tempo de sincronização reflete quando os dados foram gravados no DataHub, e um valor de checkpoint igual a 1 significa que o primeiro registro de dados (no índice 0) foi gravado.

      Em seguida, verifique os dados no Elasticsearch. Use o Kibana para confirmar que os dados foram sincronizados com êxito.