Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 27, 2026

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

Pré-requisitos

Configurar a tarefa

Etapa 1: Criar uma tarefa de sincronização

  1. Faça login no console do DataWorks. 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 no destino, incluindo índices e mapeamentos de campos. 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 inicial de dados.

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

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

  1. Em Source, selecione a fonte de dados MySQL. Em Destination, selecione a fonte de dados Elasticsearch.

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

    Nota

    Se os logs da tarefa exibirem uma mensagem como Please confirm whether there are enough resources..., isso indica que as unidades de computação (CUs) disponíveis no grupo de recursos atual são insuficientes para iniciar ou executar a tarefa. Aumente o número de CUs alocadas à tarefa no painel Configure Resource Group para alocar mais recursos de computação.

    Para valores recomendados de tamanho de recurso, consulte CUs recomendadas para Data Integration. Ajuste os valores conforme suas necessidades reais.

  3. Garanta que tanto a fonte de dados de origem quanto a de destino passem na Connectivity Check.

Etapa 3: Configurar o plano de sincronização

1. Configurar a fonte de dados

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

    image

  • Para gravar dados de várias tabelas fragmentadas (com o mesmo esquema) em uma única tabela de destino, use a opção Select Tables by Regex.

    image 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 seus dados na tabela de destino mapeada pela expressão.

    Nota

    Este método aplica-se a cenários de sincronização de mesclagem de tabelas fragmentadas (semelhante à sincronização baseada em sharding), melhorando a eficiência da configuração e evitando a necessidade de adicionar repetidamente regras de sincronização muitos-para-um.

2. Configurar 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ó são aplicadas após você atualizá-las e confirmá-las.

  • Selecione várias tabelas para sincronizar e clique em Batch Refresh Mapping Results.

  • Nome do índice de destino: O nome é 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 criará 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 também 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 sua finalidade comercial.

  • Nome do índice de destino: Construa o nome clicando no botão image e combinando valores de Manual Input e Built-in Variable. As variáveis suportadas incluem o nome da fonte de dados de origem, 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 suporta 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 nome da tabela de origem 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 string: Substitua a string dev_ em todos os nomes de tabela de origem por prd_.

    Configuração da regra

    Resultado

    Na lista suspensa Destination index name, selecione a variável integrada Source table name e vá para a página Edit built-in variables. Na aba Source table name, configure uma regra de substituição de string para trocar 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) usando a 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 ambas mapeadas para o mesmo índice de destino my_table (a ser criado). Isso permite mesclar 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 tipo de campo, certifique-se de que as regras de conversão de tipo 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 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, a intervenção manual não é necessária.

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 a 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 adicionará ao índice de destino. Esses campos poderão então ser pesquisados. Este é o valor padrão.

        • false: Se o sistema detectar novos campos na tabela de origem, ele os adicionará ao índice de destino, mas esses campos não serão pesquisáveis.

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

        • runtime: Se o sistema detectar novos campos na tabela de origem, eles não serão adicionados ao mapeamento do índice. Em vez disso, serão tratados como campos de runtime no momento da consulta. Isso permite que os campos sejam usados em cálculos de script e pesquisas.

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

      • 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 pesquisa distribuída e melhorar o desempenho da consulta. Para mais informações, consulte Basic concepts.

        Nota

        Os valores dos parâmetros Shards e Replica Shards não podem ser alterados após a 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

Campos nativos são mapeados automaticamente com base na correspondência de nomes de campo entre origem e destino. Atribua valores manualmente para os novos campos e propriedades do índice de destino que você adicionou. Execute as seguintes operações:

  • Atribuir valores para 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. As seguintes opções são suportadas:

  • Campo do índice de destino:

    • Atribuição manual: Insira um valor constante, como abc.

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

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

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

        • String de tempo: 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 especificando um formato de tempo. Por exemplo, as strings nos exemplos anteriores podem ser reconhecidas usando os formatos yyyy-MM-dd HH:mm:ss e yyyy/MM/dd.

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

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

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

    • Selecionar variável: Selecione uma variável fornecida pelo sistema como fonte de valor.

    • Função: Use funções para aplicar transformações simples ao campo de origem antes de atribuí-lo como valor. Para mais informações, consulte Usar expressões de função para atribuir valores a campos da tabela de destino.

  • 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 escolha Not Split. Quando a tarefa de sincronização é executada, ela é dividida em várias subtarefas com base nesta coluna para ler dados em lotes e em paralelo.

Recomendamos usar a chave primária da tabela como coluna de divisão de origem. Tipos string, float e date não são suportados.

A coluna de divisão de origem é suportada apenas quando a origem é MySQL.

Skip full synchronization

Se você configurou a sincronização completa na Etapa 3, opte por pular a sincronização completa para tabelas individuais. Isso é útil se você já sincronizou os dados completos com o destino usando 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 que os dados sejam gravados no destino. Esta regra aplica-se 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. Utilize também a configuração assistida por IA. Insira um comando em linguagem natural, como um comando para ajustar a concorrência da tarefa, e o modelo de IA gera valores de parâmetro 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 sua finalidade. Isso ajuda a evitar problemas inesperados, como latência de 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 e notificam o destino para sincronizar as atualizações, ou executam outras ações, como alertar, ignorar ou encerrar a tarefa.

Clique em Configure DDL Capability no canto superior direito para definir a política de processamento para cada tipo de alteração. As políticas de processamento suportadas variam conforme o canal.

  • Processamento normal: 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 uma regra de notificação DDL em Configure Alert Rule.

Nota

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

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. Tarefas de sincronização de banco de dados completo não suportam depuração direta. Implante-as no Operation Center para execução. Portanto, execute a operação Deploy para que qualquer tarefa nova ou editada entre em vigor.

  3. Durante a implantação, se você selecionar Start immediately after deployment, a tarefa iniciará simultaneamente à implantação. Caso contrário, após a implantação, acesse Data Integration > Synchronization Task e inicie manualmente a tarefa na coluna Operation da tarefa alvo.

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

Etapa 6: Configuração de alertas

1. Criar um alerta

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

image

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

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

  • Ao configurar Configure Advanced Parameters, controle o intervalo de tempo entre 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 o motivo do alerta estiver definido como Business delay, Task status ou Task Resource Utilization, ative também notificações de recuperação para informar os destinatários quando a tarefa retornar ao normal.

(2) Gerenciar regras de alerta.

Para regras de alerta existentes, use o interruptor de alerta para ativar ou desativar regras. Envie também alertas para pessoas diferentes com base no nível de alerta.

2. Visualizar alertas

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

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. Os passos são os mesmos 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 neste 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 migração de esquema e sincronização completa para as novas tabelas. Após a conclusão da inicialização, a sincronização incremental começa para essas tabelas juntamente com as originais.

    • Se você modificar outras informações:

      Selecione uma posição ao aplicar atualizações. Após a confirmação, a tarefa retoma da posição especificada. Se nenhuma posição for especificada, ela retoma da posição em que parou pela última vez (o último checkpoint).

    Tabelas não modificadas não são afetadas. Após a atualização e reinício, elas retomam do último checkpoint.

Visualizar tarefa

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

  • Na coluna Operation, Start ou 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 também em uma área específica da visão geral para ver detalhes de 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, fontes de dados (por exemplo, MySQL_Source → Elasticsearch_Source), horário de criação, grupo de recursos de sincronização, status (Running), plano de sincronização (sincronização em tempo real de banco de dados inteiro) e as CUs ocupadas pela tarefa. 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 criado 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, seu 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.

Reexecutar uma tarefa

Em certos cenários, como quando é necessário adicionar ou remover tabelas, ou modificar o esquema da tabela de destino ou informações de nome da 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 reexecutar 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 reexecuçã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 do checkpoint

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 do ponto correto.

  • Solução de problemas de dados e rollback: Se 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 importantes na configuração da tarefa: Após fazer ajustes significativos na configuração da tarefa, como 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 se deseja Whether to reset the site.

  • Se você não marcar a caixa de seleção, a tarefa retoma do último ponto de parada (o último checkpoint).

  • 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 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 log: Se a posição do banco de dados tiver expirado, aumente o período de retenção de log no banco de dados, por exemplo, para 7 dias.

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

FAQ

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