O Data Integration do DataWorks sincroniza dados entre MySQL, MaxCompute, Hologres, Kafka e outras fontes. O serviço oferece suporte a sincronização em lote, em tempo real e de banco de dados completo para cenários que variam de ETL T+1 a replicação em tempo real no 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ó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 uma 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 identifiquem dados incrementais, como timestamps (por exemplo, gmt_modified) ou IDs de incremento automático. 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: Suporta 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 excede em muito o de uma única tarefa de banco de dados completo.
Solução de lote de tabela única : Configure uma tarefa de sincronização em lote de tabela única
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 suporta lógicas complexas de transformação para tabelas individuais.
Solução de lote de banco de dados completo : Configure uma tarefa de sincronização em lote de banco de dados completo .
2. Escolha de 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 dar suporte a análises em tempo real e decisões de negócios.
Pré-requisito essencial: A origem deve suportar captura de dados alterados (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 entre 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 bancos de dados em tempo real e ingestão de data lakes em tempo real. Também oferece vantagens significativas de eficiência e custo.
Soluções em tempo real: Configure uma tarefa de sincronização em tempo real de tabela única , Configure uma tarefa de sincronização em tempo real de banco de dados completo
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. Para sistemas de armazenamento apenas de anexação que não suportam nativamente operações de Update/Delete no nível físico, como tipos que não são Delta Table no MaxCompute, gravar diretamente o 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 uma tarefa de sincronização completa mais incremental de banco de dados completo .
Capacidades de leitura e escrita 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/Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | Escrita | Leitura | Escrita | - | |
Leitura/Escrita | - | Leitura | - | - | |
Leitura/Escrita | Escrita | Leitura | Leitura/Escrita | Leitura | |
Leitura | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Escrita | - | Leitura | - | - | |
Leitura | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Escrita | Leitura/Escrita | - | Escrita | - | |
Leitura/Escrita | Escrita | Escrita | Escrita | - | |
Leitura/Escrita | - | Leitura | - | - | |
Leitura/Escrita | Escrita | Leitura | - | - | |
Leitura/Escrita | - | Leitura | - | - | |
Leitura/Escrita | - | Leitura | - | - | |
Elasticsearch | Leitura/Escrita | Escrita | Escrita | Escrita | - |
Leitura/Escrita | - | - | - | - | |
GBase8a | Leitura/Escrita | - | - | - | - |
HBase | hbase Leitura/Escrita HBase 20xsql Leitura HBase 11xsql Escrita | - | - | - | - |
Leitura/Escrita | - | - | - | - | |
Hive | Leitura/Escrita | - | Leitura/Escrita | - | - |
Leitura/Escrita | Leitura/Escrita | Leitura/Escrita | Escrita | - | |
Leitura | - | - | - | - | |
Leitura/Escrita | Leitura/Escrita | - | Escrita | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | Escrita | - | Escrita | - | |
Leitura/Escrita | Leitura | - | - | - | |
Leitura/Escrita | Escrita | Escrita | Escrita | Escrita | |
Leitura/Escrita | - | - | - | - | |
Escrita | - | - | - | - | |
Escrita | - | - | - | - | |
Leitura | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | - | - | Leitura | - | |
Leitura/Escrita | - | Leitura | Leitura | Leitura | |
Escrita | - | - | - | - | |
Leitura/Escrita | Leitura | Leitura | Leitura | Leitura | |
Leitura/Escrita | - | Escrita | Escrita | - | |
Leitura/Escrita | - | Escrita | Escrita | - | |
- | - | Escrita | - | - | |
Leitura/Escrita | - | Leitura | Leitura | Leitura | |
Leitura/Escrita | - | Leitura | Leitura | - | |
Leitura/Escrita | - | Leitura | Leitura | - | |
Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Escrita | - | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Leitura/Escrita | Escrita | Escrita | Escrita | - | |
Leitura/Escrita | - | Leitura | - | - | |
Leitura/Escrita | Escrita | - | - | - | |
Leitura/Escrita | - | - | - | - | |
Escrita | - | - | - | - | |
Vertica | Leitura/Escrita | - | - | - | - |
Leitura | - | - | - | - |
Referências
Consulte os seguintes documentos do Data Integration para começar.
Para configuração de fonte de dados, consulte Configure uma fonte de dados.
-
Para configuração de tarefas de sincronização, consulte:
-
Para mais cenários práticos:
Para problemas comuns de sincronização de dados, consulte FAQ sobre sincronização de dados.