Todos os produtos
Search
Central de documentação

DataWorks:Sincronização em tempo real do MySQL para o Elasticsearch

Última atualização: Sep 23, 2026

O Data Integration suporta a sincronização em tempo real de um banco de dados completo de uma origem, como o MySQL, para o Elasticsearch. Este tópico utiliza o cenário de MySQL para Elasticsearch para descrever como executar a sincronização completa e incremental em tempo real.

Pré-requisitos

  • Preparação da origem de dados

    • Crie uma origem de dados MySQL e uma origem de dados Elasticsearch. Para mais informações, consulte Data source configuration.

    • O Binlog deve estar ativado para a origem de dados MySQL. Para mais informações, consulte Prerequisites.

  • Grupo de recursos: Adquira um serverless resource group.

  • Conectividade de rede: Estabeleça a conectividade de rede entre o grupo de recursos e a origem de dados. Para mais informações, consulte Network Connectivity Solution Overview.

Configure a tarefa

Etapa 1: Criar uma tarefa de sincronização

  1. Acesse o DataWorks console. Na região de destino, clique em Data Integration > Data Integration no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Integration.

  2. No painel de navegação à esquerda, clique em Synchronization Task. Na página exibida, clique em Create Synchronization Task e configure as informações da tarefa.

    • Source Type: MySQL.

    • Destination Type: Elasticsearch.

    • Specific Type: real-time synchronization of entire database.

    • Synchronization Mode:

      • Schema Migration: Cria automaticamente uma estrutura de índice correspondente, como índices e mapeamentos de campos, no destino. Esta etapa não migra dados.

      • Full Synchronization (Opcional): Copia todos os dados históricos dos objetos de origem especificados, como tabelas, para o destino de uma só vez. Geralmente usado para migração ou inicialização de dados.

      • Incremental Sync (Opcional): Após a conclusão da sincronização completa, captura continuamente as alterações de dados (inserções, atualizações e exclusões) da origem e as sincroniza com o destino.

Etapa 2: Configurar origens de dados e recursos de computação

  1. Para Source, selecione a origem de dados MySQL. Para Destination, selecione a origem de dados Elasticsearch.

  2. Na seção Running Resources, selecione o Resource Group para a tarefa de sincronização e aloque Resource Group CU para a tarefa.

    Nota

    Quando uma mensagem como Please confirm whether there are enough resources... aparecer nos logs da tarefa, as unidades de computação (CUs) disponíveis do grupo de recursos atual são insuficientes para iniciar ou executar a tarefa. No painel Configure Resource Group, aumente o número de CUs alocadas para a tarefa a fim de atribuir mais recursos de computação.

    Para valores recomendados de tamanho de recurso, consulte Recommended CUs for Data Integration. Ajuste os valores conforme seus requisitos reais.

  3. Certifique-se de que as origens de dados de origem e de destino sejam aprovadas no Connectivity Check.

Etapa 3: Configurar o plano de sincronização

1. Configurar a origem de dados

  • Nesta etapa, selecione as tabelas a serem sincronizadas da origem de dados na área Source Tables e clique no ícone image para movê-las para a área Selected Tables à direita. Se houver muitas tabelas, use Database Filtering ou Table filtering para selecionar as tabelas a serem sincronizadas por meio da configuração de expressões regulares.

  • Para gravar várias tabelas fragmentadas (com o mesmo esquema) em uma única tabela de destino, use Select Tables by Regex. Insira uma expressão regular na configuração da tabela de origem. O DataWorks identifica e coleta automaticamente todas as tabelas de origem correspondentes e grava os dados na tabela de destino mapeada pela expressão.

    Nota

    Este método é adequado para cenários em que tabelas fragmentadas são mescladas durante a sincronização (semelhante à sincronização de fragmentação de banco de dados e tabelas). Ele melhora a eficiência da configuração e evita a necessidade de adicionar repetidamente regras de sincronização de muitos para um.

2. Configurar o mapeamento de índice de destino

Ações

Descrição

Refresh

O sistema lista automaticamente as tabelas de origem selecionadas. No entanto, as propriedades do índice de destino são aplicadas somente após a atualização e a confirmação.

  • Selecione várias tabelas para sincronização e clique em Batch Refresh Mapping Results.

  • Nome do índice de destino: O nome do índice de destino é gerado automaticamente com base na regra Customize Mapping Rules for Destination Table Names. O nome padrão é ${source_database_name}_${table_name}. Se um índice com esse nome não existir no destino, o sistema o cria automaticamente.

Custom Mapping Rule for Destination Index Name (Opcional)

O sistema usa uma regra padrão para gerar nomes de índice: ${source_database_name}_${table_name}. Clique no botão Edit na coluna Customize Mapping Rules for Destination Table Names para adicionar uma regra personalizada.

  • Nome da regra: Defina um nome para a regra. Recomendamos especificar um nome descritivo que reflita o propósito de negócios.

  • Nome do índice de destino: Construa o nome do índice de destino clicando no botão image e combinando valores de Manual Input e Built-in Variable. As variáveis compatíveis incluem o nome da origem de dados, o nome do banco de dados de origem e o nome da tabela de origem.

  • Editar variáveis integradas: Aplique transformações de string às variáveis integradas.

Este recurso é compatível com os seguintes cenários:

  1. Adicionar prefixos ou sufixos aos nomes: Adicione um prefixo ou sufixo ao nome da tabela de origem definindo uma constante.

    Configuração da regra

    Resultado

    No campo Rule name, insira pre_table_post. O Destination index name é composto por três partes: o texto pre_, a variável integrada source table name e o texto _post.

    Após aplicar a regra pre_table_post, a tabela de origem userinfo é mapeada para o índice de destino pre_userinfo_post (a ser criado) e a tabela de origem userinfo1 é mapeada para o índice de destino pre_userinfo1_post (a ser criado).

  2. Executar substituição global de strings: Substitua a string dev_ em todos os nomes de tabelas de origem por prd_.

    Configuração da regra

    Resultado

    Na lista suspensa Destination index name, selecione a variável integrada Source table name e acesse a página Edit built-in variables. Na aba Source table name, configure uma regra de substituição de strings para substituir a string de origem dev_ pela string de destino prd_. As regras são executadas de cima para baixo. Use Move Up, Move Down e Delete para ajustar a ordem das regras ou removê-las.

    O resultado mostra que as tabelas de origem dev_table1 e dev_table2 são mapeadas para os índices de destino prd_table1 e prd_table2 (a serem criados) por meio da regra replace. O prefixo dev_ é substituído por prd_.

  3. Gravar dados de várias tabelas em uma única tabela: Defina o nome do índice de destino como um valor constante.

    Configuração da regra

    Resultado

    No campo Destination index name, insira um valor fixo como my_table para mapear todas as tabelas de origem para a mesma tabela de destino.

    Resultado: As tabelas de origem table_01 e table_02 do banco de dados de origem mysql_test2 são mapeadas para o mesmo índice de destino my_table (a ser criado). Isso permite a mesclagem de dados de várias tabelas em um único índice.

Edit Field Type Mapping (Opcional)

O sistema fornece um mapeamento padrão entre Source Type e Destination Type. Clique em Edit Mapping of Field Data Types no canto superior direito da tabela para personalizar o mapeamento de tipos de dados de campo entre as tabelas de origem e os índices de destino. Após concluir a configuração, clique em Apply and Refresh Mapping.

Ao editar mapeamentos de tipos de campos, certifique-se de que as regras de conversão de tipos sejam válidas. Caso contrário, podem ocorrer falhas na conversão, gerando dados incorretos e interrompendo a tarefa.

Edit Destination Index (Opcional)

Com base nas regras personalizadas de mapeamento de nome de índice, o sistema cria automaticamente novos índices de destino ou reutiliza os existentes com nomes correspondentes.

O DataWorks gera automaticamente a estrutura do índice de destino com base na estrutura da tabela de origem. Na maioria dos casos, não é necessária intervenção manual.

Quando o status do índice de destino for To be created, adicione novos campos ao índice de destino com base em sua estrutura de tabela original. Execute as seguintes operações:

  1. Adicione campos ao índice de destino.

    • Adicionar campos a um único índice: Clique no ícone image.png na coluna Destination Index Name e adicione campos editando o Statement Used to Create Index.

      • Dynamic Mapping Status: Especifica se novos campos da tabela de origem devem ser adicionados ao índice de destino durante a sincronização de dados. Valores válidos:

        • true: Se o sistema detectar novos campos na tabela de origem, ele os adiciona ao índice de destino. Esses campos poderão ser pesquisados. Este é o valor padrão.

        • false: Se o sistema detectar novos campos na tabela de origem, ele os adiciona ao índice de destino, mas esses campos não poderão ser pesquisados.

        • strict: Se o sistema detectar novos campos na tabela de origem, ele recusa a adição dos campos ao índice de destino e lança uma exceção. Visualize os detalhes do erro nos logs.

        • runtime: Se o sistema detectar novos campos na tabela de origem, os novos campos não são adicionados ao mapeamento do índice. Em vez disso, são tratados como campos de tempo de execução no momento da consulta. Isso permite o uso dos campos em cálculos de script e pesquisas.

        Para mais informações sobre mapeamento dinâmico, consulte Mapeamento dinâmico.

      • Shards e Replica Shards: O número de shards primários e de réplica para um índice. Um índice completo é dividido em vários shards e distribuído por diferentes nós do Elasticsearch para permitir pesquisas distribuídas e melhorar o desempenho das consultas. Para mais informações, consulte Basic concepts.

        Nota

        Os valores dos parâmetros Shards e Replica Shards não podem ser alterados após o início da execução da tarefa. O valor padrão para ambos os parâmetros é 1.

    • Adicionar campos em lote: Selecione todas as tabelas a serem sincronizadas e, na parte inferior da tabela, selecione Batch Modify > Destination Index Structure - Batch Add Fields.

Value assignment

Os campos nativos são mapeados automaticamente com base na correspondência de nomes de campos entre a origem e o destino. Atribua valores manualmente aos novos campos e propriedades do índice de destino adicionados. Execute as seguintes operações:

  • Atribuir valores a uma única tabela: Clique no botão Configuration na coluna Value assignment para atribuir valores aos campos do índice de destino.

  • Atribuir valores em lote: Na parte inferior da lista, selecione Batch Modify > Value assignment para atribuir valores a campos idênticos em vários índices de destino simultaneamente.

Atribua constantes e variáveis alterando o Value Type. Há suporte para as seguintes opções:

  • Destination index field:

    • Manual assignment: Insira um valor constante, como abc.

    • Source field: Atribui um valor de um campo da tabela de origem. Selecione o valor do campo ou um valor de tempo.

      • Field value: Grava o valor do campo de origem diretamente no destino.

      • Time value: Se o campo de origem contiver um valor de tempo, processe-o usando diferentes formatos e especifique um Destination Format para formatar o valor extraído.

        • Time string: Uma string que representa uma hora ou data, como "2018-10-23 02:13:56" ou "2021/05/18". A string é analisada em um valor de data ou hora por meio da especificação de um formato de tempo. Por exemplo, as strings nos exemplos anteriores podem ser reconhecidas com os formatos yyyy-MM-dd HH:mm:ss e yyyy/MM/dd.

        • Time object: Se o valor de origem for de um tipo de dados de tempo, como Date ou Datetime, selecione diretamente esse tipo.

        • Unix timestamp (seconds): Um timestamp de 10 dígitos em segundos, que pode ser fornecido como um número ou string. Exemplos: 1610529203 e "1610529203".

        • Unix timestamp (milliseconds): Um timestamp de 13 dígitos em milissegundos, que pode ser fornecido como um número ou string. Exemplos: 1610529203002 e "1610529203002".

    • Select variable: Selecione uma variável fornecida pelo sistema como origem do valor.

    • Function: Use funções para aplicar transformações simples ao campo de origem antes de atribuí-lo como valor. Para mais informações, consulte Use function expressions to assign values to destination table fields.

  • Atribuição de propriedade do índice de destino: Atribua um valor à chave primária do índice de destino. Concatene vários campos de origem para criar uma chave primária composta. Certifique-se de que o valor resultante seja único.

Source split column

Selecione um campo da tabela de origem na lista suspensa Source split column ou selecione Not Split. Durante a execução da tarefa de sincronização, ela é dividida em várias subtarefas com base nessa coluna para ler dados em lotes e em paralelo.

Recomendamos usar a chave primária da tabela como coluna de divisão de origem. Não há suporte para tipos string, float e date.

A coluna de divisão de origem é compatível apenas quando a origem é o MySQL.

Skip full synchronization

Se você configurou a sincronização completa na Etapa 3, pule a sincronização completa para tabelas individuais. Isso é útil caso você já tenha sincronizado os dados completos para o destino por meio de outros métodos.

Full condition

Aplica um filtro aos dados de origem durante a fase de sincronização completa. Insira apenas as condições de filtro de uma cláusula WHERE. Não inclua a palavra-chave WHERE.

Configure DML Rule

O processamento de mensagens DML aplica filtragem e controle refinados aos dados de alteração (Insert, Update e Delete) capturados da origem antes da gravação dos dados no destino. Esta regra se aplica apenas durante a fase de sincronização incremental.

Etapa 4: Configurações avançadas

Configuração de parâmetros avançados

Para personalizar a tarefa, modifique os parâmetros na aba Advanced Parameters.

  1. Clique em Advanced Settings no canto superior direito para acessar a página de configuração de parâmetros avançados.

  2. Modifique os valores dos parâmetros conforme as descrições fornecidas.

  3. Use a configuração com inteligência artificial. Insira um comando em linguagem natural, como um comando para ajustar a simultaneidade da tarefa, e o modelo de IA gerará valores de parâmetros recomendados. Escolha se deseja aceitar os parâmetros gerados pela IA.

    Além de aceitar ou rejeitar as sugestões, clique em Regenerate para que o Copilot forneça novas recomendações de parâmetros.

Importante

Modifique esses parâmetros apenas se compreender totalmente o propósito deles. Isso ajuda a evitar problemas inesperados, como latência da tarefa, consumo excessivo de recursos que bloqueia outras tarefas e perda de dados.

Configuração de capacidade DDL

Alguns canais de sincronização em tempo real detectam alterações de metadados no esquema da tabela de origem, notificam o destino e sincronizam as atualizações com ele. Outras políticas de tratamento, como alertar, ignorar ou encerrar a tarefa, também estão disponíveis.

Clique em Configure DDL Capability no canto superior direito da página para definir a política de tratamento para cada tipo de alteração DDL. As políticas de tratamento disponíveis variam de acordo com o canal.

  • Processar normalmente: O destino processa as informações de alteração DDL da origem.

  • Ignorar: A mensagem de alteração é ignorada e o destino não é modificado.

  • Erro: A tarefa de sincronização de banco de dados completo em tempo real é encerrada e o status é definido como Error.

  • Alerta: Um alerta é enviado a você quando esse tipo de alteração ocorre na origem. Configure as regras de notificação DDL em Configure Alert Rule.

Nota

Após a adição de uma coluna à tabela de origem e a respectiva criação na tabela de destino por meio da sincronização DDL, o sistema não preenche os dados existentes na tabela de destino.

Nota

Não há suporte para exclusão de colunas na sincronização automática em origens MySQL. Ao excluir uma coluna de uma tabela MySQL de origem, o esquema da tabela fica inconsistente com o log binário, o que pode causar erros na tarefa de sincronização.

Para remover uma coluna que já foi sincronizada com a tabela de destino, use a seguinte solução alternativa:

  1. Exclua a tabela de destino correspondente (por exemplo, a tabela de destino Hologres).

  2. Edite a tarefa de sincronização e remova a tabela da tarefa.

  3. Adicione a tabela novamente à tarefa.

  4. Atualize os mapeamentos de coluna.

  5. Salve e implante a tarefa.

  6. Se a tarefa estiver em execução, clique em Apply Updates para que as alterações entrem em vigor.

Etapa 5: Implantar e executar a tarefa

  1. Após concluir todas as configurações, clique em Save na parte inferior da página para salvar a configuração da tarefa.

  2. Não há suporte para depuração direta em tarefas de sincronização de banco de dados completo, e elas devem ser implantadas no Operation Center para execução. Portanto, tarefas novas e editadas requerem a operação Deploy para entrar em vigor.

  3. Durante a implantação, se você selecionar Start immediately after deployment, a tarefa será iniciada simultaneamente à implantação. Caso contrário, após a conclusão da implantação, acesse a página Data Integration > Synchronization Task e inicie manualmente a tarefa na coluna Actions da tarefa de destino.

  4. Clique no Name/ID da tarefa correspondente em Tasks para visualizar o processo de execução detalhado da tarefa.

Etapa 6: Configuração de alertas

1. Adicionar um alerta

Na lista Data Integration > Synchronization Task, localize a tarefa de sincronização de banco de dados completo em tempo real de destino e clique em More > Alerts na coluna Actions para configurar políticas de alerta para a tarefa.

(1) Clique em Create Rule para configurar uma regra de alerta.

Defina Alert Reason para monitorar métricas como Business delay, Failover, Task status, DDL Notification e Task Resource Utilization para a tarefa, e configure níveis de alerta CRITICAL ou WARNING com base nos limiares especificados.

  • Ao configurar Configure Advanced Parameters, controle o intervalo entre as mensagens de alerta para evitar o envio excessivo de mensagens de uma só vez, o que pode causar desperdício e acúmulo de mensagens.

  • Se você selecionar Business delay, Task status ou Task Resource Utilization como motivo do alerta, ative as notificações de recuperação para notificar os destinatários quando a tarefa voltar ao normal.

(2) Gerenciar regras de alerta.

Para regras de alerta já criadas, use a alternância de alerta para ativar ou desativar uma regra. Envie alertas para diferentes destinatários com base nos níveis de alerta.

2. Visualizar alertas

Clique em More > Configure Alert Rule na lista de tarefas expandida para acessar a página de eventos de alerta, onde é possível visualizar os alertas acionados.

Gerenciar tarefa

Editar tarefa

  1. Na página Data Integration > Synchronization Task, localize a tarefa de sincronização criada. Na coluna Operation, escolha More > Edit para modificar as informações da tarefa. As etapas são as mesmas da configuração de uma nova tarefa.

  2. Para tarefas que não estão em execução, modifique e salve diretamente a configuração e, em seguida, implante a tarefa no Operation Center para aplicar as alterações.

  3. Para tarefas que estão Running, se você editar e implantar a tarefa sem selecionar Start immediately after deployment, o botão de ação original mudará para Apply Updates. Clique nesse botão para que as alterações entrem em vigor no Operation Center.

  4. Após clicar em Apply Updates, o sistema para, implanta e reinicia a tarefa para aplicar as alterações.

    • Se você adicionar novas tabelas ou alternar tabelas existentes:

      Não é possível selecionar uma posição ao aplicar a atualização. Após confirmar a atualização, o sistema executa a migração de esquema e a sincronização completa para as novas tabelas. Após a conclusão da inicialização, a sincronização incremental começa para essas tabelas junto com as originais.

    • Se modificar outras informações:

      Selecione uma posição ao aplicar atualizações. Após a confirmação, a tarefa será retomada a partir da posição especificada. Se você não especificar uma posição, ela será retomada a partir da posição em que parou pela última vez (o último ponto de verificação).

    As tabelas não modificadas não são afetadas. Após a atualização e a reinicialização, elas são retomadas a partir do último ponto de verificação.

Visualizar tarefa

Após criar uma tarefa de sincronização, visualize a lista de tarefas criadas e as respectivas informações básicas na página Synchronization Task.

  • Na coluna Operation, inicie (Start) ou pare (Stop) uma tarefa de sincronização. No menu More, execute outras operações, como Edit e View.

  • Para tarefas em execução, visualize seu status na seção Execution Overview. Clique em uma área específica da visão geral para visualizar os detalhes da execução. Clique em View para acessar a página de detalhes da tarefa de sincronização. A seção Basic Information na parte superior exibe o ID da tarefa, as origens de dados (por exemplo, MySQL_Source → Elasticsearch_Source), o horário de criação, o grupo de recursos de sincronização, o status (Running), o plano de sincronização (sincronização em tempo real de banco de dados completo) e as CUs que a tarefa ocupa. A seção Execution Status no meio usa barras de progresso para mostrar a porcentagem de conclusão e o status de execução das três etapas: migração de esquema, sincronização completa e sincronização de dados em tempo real.

    Uma tarefa de sincronização em tempo real do MySQL para o Elasticsearch consiste em três etapas:

    • Migração de esquema: Mostra como o índice de destino foi criado (a partir de um índice existente ou automaticamente). Se o índice foi criado automaticamente, a instrução DDL é exibida.

    • Sincronização completa: Exibe informações sobre as tabelas sincronizadas usando sincronização offline, o progresso e o número de registros gravados.

    • Sincronização de dados em tempo real: Exibe estatísticas em tempo real, incluindo progresso, registros DDL e DML e informações de alerta.

Executar novamente uma tarefa

Em determinados cenários, como quando você precisa adicionar ou remover tabelas, ou modificar o esquema da tabela de destino ou informações de nome de tabela, clique em Rerun na coluna Operations da tarefa de sincronização. O sistema sincroniza apenas as tabelas recém-adicionadas ou modificadas. Tabelas sincronizadas anteriormente ou não modificadas não são sincronizadas novamente.

  • Clique em Rerun para executar novamente a inicialização completa e a sincronização em tempo real.

  • Edite a tarefa para adicionar ou remover tabelas, salve a tarefa e, em seguida, implante-a. Após a implantação, o botão Apply Updates aparece na coluna Operations. Clique em Apply Updates para acionar uma nova execução da tarefa modificada. Apenas as tabelas recém-adicionadas ou modificadas são sincronizadas. Tabelas sincronizadas anteriormente não são sincronizadas novamente.

Retomar a partir do ponto de verificação

Casos de uso

Redefinir a posição inicial da tarefa é útil para os seguintes cenários:

  • Recuperação de tarefa e retomada de dados: Se uma tarefa for interrompida, especifique manualmente o horário da interrupção como a nova posição inicial para retomar a sincronização de dados a partir do ponto correto.

  • Solução de problemas de dados e rollback: Se você encontrar dados ausentes ou anormais após a sincronização, reverta a posição para um horário anterior à ocorrência do problema para reproduzir e corrigir os dados.

  • Alterações significativas na configuração da tarefa: Após fazer ajustes significativos na configuração da tarefa, como a estrutura do índice de destino ou mapeamentos de campos, redefina a posição para iniciar a sincronização a partir de um ponto específico. Isso garante a precisão dos dados sob a nova configuração.

Procedimento

Clique em Start. Na caixa de diálogo exibida, selecione a opção Whether to reset the site.

  • Se você não marcar a caixa de seleção, a tarefa será retomada a partir do último ponto de parada (o último ponto de verificação).

  • Se você marcar a caixa de seleção e especificar um horário, a tarefa começará a partir do horário especificado. Certifique-se de que o horário selecionado não seja anterior à posição disponível mais antiga no Binlog de origem.

Importante

Se você encontrar um erro sobre uma posição inválida ou inexistente, use as seguintes soluções:

  • Redefinir a posição: Ao iniciar a tarefa de sincronização em tempo real, redefina a posição e selecione a posição disponível mais antiga no banco de dados de origem.

  • Ajustar o período de retenção de logs: Se a posição do banco de dados tiver expirado, aumente o período de retenção de logs no banco de dados, por exemplo, para 7 dias.

  • Ressincronizar dados: Se os dados tiverem sido perdidos, execute uma sincronização completa novamente ou configure uma tarefa de sincronização offline para sincronizar manualmente os dados ausentes.

Perguntas frequentes

Para perguntas frequentes sobre a sincronização de banco de dados em tempo real, consulte Data Integration FAQ e Data Integration errors.