O Data Integration do DataWorks sincroniza dados entre MySQL, MaxCompute, Hologres, Kafka e outras fontes. Ele suporta a sincronização em lote, em tempo real e de banco de dados completo, atendendo a cenários que variam de ETL T+1 à replicação em tempo real em nível de segundos.
Soluções de sincronização
|
Tipo |
Granularidade da origem |
Granularidade do destino |
Tempestividade |
Cenário de sincronização |
|
Lote de tabela única |
Uma única tabela |
Uma única tabela ou partição |
T+1 ou periódico |
Carga completa periódica, incremental periódico |
|
Lote de banco de dados e tabelas fragmentadas |
Várias tabelas com estruturas idênticas |
Uma única tabela ou partição |
T+1 ou periódico |
Carga completa periódica, incremental periódico |
|
Tempo real de tabela única |
Uma única tabela |
Uma única tabela ou partição |
Segundos a minutos |
Incremental em tempo real (CDC) |
|
Lote de banco de dados completo |
Um banco de dados inteiro ou várias tabelas |
Várias tabelas correspondentes e suas partições |
Execução única ou periódica |
Carga completa única/periódica, incremental único/periódico, completo único + incremental periódico |
|
Tempo real de banco de dados completo |
Um banco de dados inteiro ou várias tabelas |
Várias tabelas correspondentes e suas partições |
Segundos a minutos |
Carga completa + incremental em tempo real (CDC) |
|
Completo e incremental de banco de dados completo |
Um banco de dados inteiro ou várias tabelas |
Várias tabelas correspondentes e suas partições |
Carga completa inicial: Processamento em lote Incremental subsequente: T+1 |
Carga completa + incremental em tempo real (CDC) |
Soluções de sincronização recomendadas
Ao selecionar uma solução de sincronização de dados, considere duas questões principais:
Requisitos de tempestividade: Com que frequência a sua empresa precisa sincronizar dados — uma vez por dia (em lote) ou com atualizações em tempo real em nível de segundos ou minutos (em tempo real)?
Escala e complexidade da sincronização: Quantas tabelas precisam ser sincronizadas e se a lógica de processamento é uniforme entre elas (tabela única versus banco de dados completo)?
Com base nessas considerações, o Data Integration oferece duas categorias de soluções de sincronização: em lote e em tempo real.
1. Como escolher uma solução de sincronização em lote (T+1/periódico)
As soluções em lote são adequadas para cenários com menor exigência de tempestividade, como o processamento periódico T+1.
Pré-requisito principal: Para implementar a sincronização incremental em lote, as tabelas de origem devem conter colunas que permitam identificar dados incrementais, como carimbos de data/hora, como gmt_modified, ou IDs de incremento automático. Se essas colunas não estiverem disponíveis, a única alternativa é recorrer à sincronização completa periódica.
1. Escolha a sincronização em lote de tabela única
Utilize esta solução quando precisar de processamento de granularidade fina para um pequeno número de fontes de dados essenciais e heterogêneas.
-
Principais vantagens: Lógica de processamento flexível.
Transformação detalhada: Suporta mapeamentos complexos de colunas, filtragem de dados, atribuição de constantes, transformações baseadas em funções e até processamento assistido por IA.
Integração de fontes heterogêneas: A escolha ideal para fontes de dados não padronizadas, como APIs e arquivos de log.
-
Principais limitações: Alto custo em escala.
Alta sobrecarga de configuração: Ao sincronizar um grande número de tabelas, configurar e manter tarefas uma a uma demanda muito esforço.
Alto consumo de recursos: Cada tarefa é agendada independentemente. O consumo de recursos de 100 tarefas de tabela única excede em muito o de uma tarefa de banco de dados completo.
Solução em lote de tabela única : Configure a single-table batch synchronization task
2. Escolha a sincronização em lote de banco de dados completo
Utilize esta solução quando precisar migrar de forma eficiente um grande número de tabelas homogêneas de um local para outro.
-
Principais vantagens: Alta eficiência de O&M e baixo custo.
Alta eficiência: Configure centenas de tabelas de uma só vez com associação automática de objetos, melhorando significativamente a eficiência do desenvolvimento.
Custo-efetividade: Os recursos são agendados e otimizados globalmente a um custo muito baixo. Por exemplo, uma tarefa de banco de dados completo em comparação com 100 tarefas de tabela única pode consumir 2 CUs em vez de 100 CUs.
Cenários típicos: Construção da camada ODS de um data warehouse, backup periódico de banco de dados e migração de dados para a cloud.
-
Principais limitações: Lógica de processamento limitada.
Projetada principalmente para replicação de dados, e não suporta lógicas de transformação complexas para tabelas individuais.
Solução em lote de banco de dados completo : Configure a whole-database batch synchronization task .
2. Como escolher uma solução de sincronização em tempo real (segundos a minutos)
As soluções em tempo real capturam alterações de dados (inserções, atualizações e exclusões) na origem para permitir análises em tempo real e decisões de negócios.
Pré-requisito principal: A origem deve suportar a captura de dados de alteração (CDC) ou ser uma fila de mensagens. Por exemplo, o MySQL exige a ativação do Binlog, ou a origem deve ser uma instância do Kafka.
Escolha a sincronização em tempo real de tabela única ou de banco de dados completo
A lógica de seleção é semelhante à das soluções em lote:
Tempo real de tabela única: Indicado para cenários que exigem processamento complexo de fluxos de mudança em tempo real de uma única tabela principal.
Tempo real de banco de dados completo: A escolha ideal para a construção de data warehouses em tempo real, recuperação de desastres de banco de dados em tempo real e ingestão em data lake em tempo real. Também oferece vantagens significativas de eficiência e custo.
Soluções em tempo real: Configure a single-table real-time synchronization task , Configure a whole-database real-time synchronization task
3. Cenário especial: Gravação de dados CDC em tempo real em tabelas de destino de somente anexação
Contexto: Os dados CDC capturados pela sincronização em tempo real incluem três tipos de operações: Insert, Update e Delete. Para sistemas de armazenamento de somente anexação que não suportam nativamente as operações de Update/Delete em nível físico, como tipos que não são Delta Table no MaxCompute, a gravação direta do fluxo CDC causa inconsistências no estado dos dados (por exemplo, as operações de exclusão não são refletidas).
-
Solução do DataWorks: Modo Base + Log
Esta solução usa a tarefa completa e incremental de banco de dados completo e resolve esse problema ao criar uma
Base table(snapshot completo) e umaLog table(log incremental) no destino.Como funciona: O fluxo de dados CDC é gravado em tempo real na
Log table. Em seguida, diariamente (T+1), o sistema agenda automaticamente uma tarefa para mesclar as alterações daLog tablenaBase tablee gerar o snapshot completo mais recente. A tempestividade desta solução é de "dados incrementais gravados na tabela de log em poucos minutos, com o estado final mesclado e visível em T+1". Essa abordagem equilibra a captura de dados em tempo real com a consistência eventual para data warehouses offline.
Solução recomendada : Configure a whole-database full-plus-incremental synchronization task .
Capacidades de leitura e gravação de fontes de dados
Fonte de dados | Lote de tabela única | Tempo real de tabela única | Lote de banco de dados completo | Tempo real de banco de dados completo | Completo e incremental de banco de dados completo |
Leitura | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | Gravação | Leitura | Gravação | - | |
Leitura/Gravação | - | Leitura | - | - | |
Leitura/Gravação | Gravação | Leitura | Leitura/Gravação | Leitura | |
Leitura/Gravação | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Gravação | - | Leitura | - | - | |
Leitura | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Gravação | Leitura/Gravação | - | Gravação | - | |
Leitura/Gravação | Gravação | Gravação | Gravação | - | |
Leitura/Gravação | - | Leitura | - | - | |
Leitura/Gravação | Gravação | Leitura | - | - | |
Leitura/Gravação | - | Leitura | - | - | |
Leitura/Gravação | - | Leitura | - | - | |
Elasticsearch | Leitura/Gravação | Gravação | Gravação | Gravação | - |
Leitura/Gravação | - | - | - | - | |
GBase8a | Leitura/Gravação | - | - | - | - |
HBase | hbase Leitura/Gravação HBase 20xsql Leitura HBase 11xsql Gravação | - | - | - | - |
Leitura/Gravação | - | - | - | - | |
Hive | Leitura/Gravação | - | Leitura/Gravação | - | - |
Leitura/Gravação | Leitura/Gravação | Leitura/Gravação | Gravação | - | |
Leitura | - | - | - | - | |
Leitura/Gravação | Leitura/Gravação | - | Gravação | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | Gravação | - | Gravação | - | |
Leitura/Gravação | Leitura | - | - | - | |
Leitura/Gravação | Gravação | Gravação | Gravação | Gravação | |
Leitura/Gravação | - | - | - | - | |
Gravação | - | - | - | - | |
Gravação | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | Leitura | - | |
Leitura/Gravação | - | Leitura | Leitura | Leitura | |
Gravação | - | - | - | - | |
Leitura/Gravação | Leitura | Leitura | Leitura | Leitura | |
Leitura/Gravação | - | Gravação | Gravação | - | |
Leitura/Gravação | - | Gravação | Gravação | - | |
- | - | Gravação | - | - | |
Leitura/Gravação | - | Leitura | Leitura | Leitura | |
Leitura/Gravação | - | Leitura | Leitura | - | |
Leitura/Gravação | - | Leitura | Leitura | - | |
Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | - | - | - | - | |
Leitura/Gravação | Gravação | Gravação | Gravação | - | |
Leitura/Gravação | - | Leitura | - | - | |
Leitura/Gravação | Gravação | - | - | - | |
Leitura | - | - | - | - | |
Gravação | - | - | - | - | |
Vertica | Leitura/Gravação | - | - | - | - |
Leitura | - | - | - | - |
Referências
Use os seguintes documentos do Data Integration como ponto de partida.
Para configurar fontes de dados, consulte Configure a data source.
-
Para configurar tarefas de sincronização, consulte:
-
Para conhecer mais cenários práticos:
Em caso de problemas comuns de sincronização de dados, consulte FAQ about data synchronization.