O Data Integration do DataWorks sincroniza dados entre MySQL, MaxCompute, Hologres, Kafka e outras fontes. Ele oferece suporte a sincronização em lote, em tempo real e de banco de dados completo para cenários que variam desde ETL T+1 até replicação em tempo real com granularidade 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ódica |
Completa periódica, incremental periódica |
|
Lote de banco de dados e tabelas fragmentados |
Várias tabelas com estruturas idênticas |
Uma única tabela ou partição |
T+1 ou periódica |
Completa periódica, incremental periódica |
|
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 |
Múltiplas tabelas correspondentes e suas partições |
Única vez ou periódica |
Completa única/periódica, incremental única/periódica, completa única + incremental periódica |
|
Tempo real de banco de dados completo |
Um banco de dados inteiro ou várias tabelas |
Múltiplas tabelas correspondentes e suas partições |
Segundos a minutos |
Completa + incremental em tempo real (CDC) |
|
Completa mais incremental de banco de dados completo |
Um banco de dados inteiro ou várias tabelas |
Múltiplas tabelas correspondentes e suas partições |
Carga completa inicial: Processamento em lote Incremental subsequente: T+1 |
Completa + incremental em tempo real (CDC) |
Soluções de sincronização recomendadas
Ao escolher uma solução de sincronização de dados, considere duas questões fundamentais:
Requisitos de tempestividade: Com que frequência seu negócio precisa de dados sincronizados — uma vez por dia (lote) ou com atualizações em tempo real no nível de segundos ou minutos (tempo real)?
Escala e complexidade da sincronização: Quantas tabelas exigem sincronização 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 fornece duas categorias de soluções de sincronização: lote e tempo real.
1. Escolha de solução de sincronização em lote (T+1/periódica)
As soluções em lote são adequadas para cenários com menores requisitos de tempestividade, como processamento periódico T+1.
Pré-requisito essencial: Para implementar a sincronização incremental em lote, as tabelas de origem devem conter colunas que permitam identificar dados incrementais, como timestamps (por exemplo, gmt_modified) ou IDs autoincrementais. Se tais colunas não estiverem disponíveis, a única alternativa será a sincronização completa periódica.
1. Escolha lote de tabela única
Utilize esta opção quando for necessário um processamento refinado de um pequeno número de fontes de dados principais e heterogêneas.
-
Principais vantagens: Lógica de processamento flexível.
Transformação refinada: Oferece suporte a mapeamento complexo de colunas, filtragem de dados, atribuição de constantes, transformações baseadas em funções e até mesmo processamento assistido por IA.
Integração de origens heterogêneas: A melhor escolha 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 volume de tabelas, configurar e manter tarefas individualmente exige um esforço significativo.
Alto consumo de recursos: Cada tarefa é agendada de forma independente. O consumo de recursos de 100 tarefas de tabela única supera em muito o de uma única tarefa de banco de dados completo.
Solução de lote de tabela única : Configure a single-table batch synchronization task
2. Escolha lote de banco de dados completo
Indicado quando você precisa migrar eficientemente 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 correspondência automática de objetos, aumentando significativamente a produtividade do desenvolvimento.
Custo-benefício: Os recursos são agendados e otimizados de forma holística a um custo muito baixo. Por exemplo, uma tarefa de banco de dados completo pode consumir 2 CUs, enquanto 100 tarefas de tabela única consumiriam 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.
Projetado principalmente para replicação de dados, não oferecendo suporte a lógicas complexas de transformação para tabelas individuais.
Solução de lote de banco de dados completo : Configure a whole-database batch synchronization task .
2. Escolha de 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 dar suporte a análises em tempo real e decisões de negócios.
Pré-requisito essencial: A origem deve oferecer suporte à captura de dados de alteração (CDC) ou ser uma fila de mensagens. Por exemplo, o MySQL requer que o Binlog esteja ativado, ou a origem deve ser uma instância do Kafka.
Escolha tempo real de tabela única ou tempo real de banco de dados completo
A lógica de seleção é semelhante à das soluções em lote:
Tempo real de tabela única: Adequado para cenários que exigem processamento complexo de fluxos de alterações em tempo real de uma única tabela principal.
Tempo real de banco de dados completo: A escolha preferencial para construir data warehouses em tempo real, recuperação de desastres de banco de dados em tempo real e ingestão de 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 apenas de anexação
Contexto: Os dados CDC capturados pela sincronização em tempo real incluem três tipos de operações: Insert, Update e Delete. Em sistemas de armazenamento apenas de anexação que não suportam nativamente operações de Update/Delete no nível físico, como tipos não-Delta Table no MaxCompute, a gravação direta do fluxo CDC causa inconsistências no estado dos dados (por exemplo, operações de exclusão não podem ser refletidas).
-
Solução do DataWorks: Modo Base + Log
Esta solução utiliza a tarefa completa mais incremental de banco de dados completo e resolve esse problema criando uma
Base table(snapshot completo) e umaLog table(log incremental) no destino.Funcionamento: O fluxo de dados CDC é gravado em tempo real na
Log table. Em seguida, numa base T+1, o sistema agenda automaticamente uma tarefa para mesclar as alterações daLog tablenaBase tablepara gerar o snapshot completo mais recente. A tempestividade desta solução é "dados incrementais gravados na tabela de log em minutos, com o estado final mesclado e visível em T+1". Ela 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 | Completa mais 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 | - | - | - | - | |
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 | - | - | - | - | |
Gravação | - | - | - | - | |
Vertica | Leitura/Gravação | - | - | - | - |
Leitura | - | - | - | - |
Referências
Consulte os seguintes documentos do Data Integration para começar.
Para configuração de fonte de dados, consulte Configure a data source.
-
Para configuração de tarefa de sincronização, consulte:
-
Para mais cenários práticos:
Para problemas comuns de sincronização de dados, consulte FAQ about data synchronization.