Este tópico descreve os desafios de negócios que a solução de data warehouse em tempo quase real resolve e suas principais características arquiteturais.
Informações gerais
As empresas dependem de plataformas de big data para obter insights rápidos a partir de grandes volumes de dados, permitindo decisões ágeis e eficazes. Além disso, as exigências quanto à atualidade dos dados e ao processamento em tempo real tornam-se cada vez maiores. Para atender aos requisitos de desempenho em tempo real e custo-benefício, as plataformas de big data geralmente combinam mecanismos de processamento offline, em tempo real e de streaming. No entanto, muitos cenários de negócios não demandam atualizações no nível de linha ou visibilidade dos dados poucos segundos após uma modificação. Em vez disso, exigem processamento de dados em tempo quase real, na escala de minutos ou horas, aliado ao processamento em lote de grandes volumes de informações. O MaxCompute evoluiu sua arquitetura original de processamento em lote offline e lançou uma solução de data warehouse em tempo quase real.
Essa solução implementa o armazenamento e a gestão integrados de dados incrementais e completos com base em Delta tables. Ela também oferece recursos avançados de computação incremental e aprimorou o recurso MaxCompute Query Accelerator 2.0 (MaxQA, anteriormente MCQA2.0) para permitir respostas a consultas em questão de segundos.
Análise da situação atual
-
Cenários típicos de processamento de dados:
Em casos de processamento em lote de grandes volumes de dados completos com baixa exigência de atualidade, o MaxCompute atende plenamente às necessidades do negócio.
Para processamento de dados em tempo real na escala de segundos ou streaming com alta exigência de atualidade, são necessários sistemas dedicados a tempo real ou streaming.
Cenários abrangentes: Quando se trata de processamento em tempo quase real com requisitos de atualidade na escala de minutos ou horas, combinado com processamento em lote de grandes volumes, o uso de um único mecanismo ou de múltiplos mecanismos em consulta federada apresenta limitações.
A figura a seguir ilustra essa arquitetura.

Ao utilizar apenas o pipeline de processamento em lote do MaxCompute, alguns cenários exigem a mesclagem contínua e o armazenamento de dados incrementais na escala de minutos junto aos dados completos, gerando custos redundantes de computação e armazenamento. Outros cenários demandam a conversão de pipelines complexos e lógicas de processamento diversas para um modelo de batch T+1, o que aumenta significativamente a complexidade do pipeline e compromete a atualidade dos dados.
O uso exclusivo de um sistema em tempo real implica alto consumo de recursos, baixo custo-benefício e estabilidade insuficiente para processamento em lote de grandes volumes. Por isso, a arquitetura Lambda é uma solução comum: nela, o pipeline do MaxCompute cuida do processamento completo em lote, enquanto o pipeline do sistema em tempo real trata do processamento incremental com maior exigência de atualidade. Contudo, essa abordagem também traz falhas inerentes, como inconsistência de dados devido à multiplicidade de motores de processamento e armazenamento, custos adicionais por redundância no armazenamento e computação de várias cópias dos dados, além de uma arquitetura complexa e ciclos longos de desenvolvimento.
Para enfrentar esses desafios, o ecossistema open source de big data lançou diversas soluções nos últimos anos. Spark, Flink e Presto estão entre os motores de processamento de dados open source mais adotados. Esses motores integram-se profundamente aos formatos de data lake open source Hudi, Delta Lake e Iceberg, formando uma solução completa com motor de computação unificado e armazenamento de dados unificado. Tal abordagem resolve vários problemas associados à arquitetura Lambda tradicional.
O MaxCompute desenvolveu uma arquitetura própria de armazenamento e processamento de dados incrementais, baseada em sua infraestrutura de processamento em lote offline. Essa arquitetura oferece uma solução integrada para processamento offline e incremental em tempo quase real. Ao preservar a eficiência econômica do processamento em lote, ela também atende aos requisitos de leitura, escrita e processamento de dados incrementais na escala de minutos. Adicionalmente, disponibiliza funcionalidades práticas como Upsert e Time Travel, ampliando os cenários de uso e reduzindo efetivamente os custos de computação, armazenamento e migração de dados, melhorando assim a experiência do usuário.
Arquitetura em tempo quase real do MaxCompute

A figura anterior apresenta a nova arquitetura com a qual o MaxCompute suporta eficientemente os cenários abrangentes mencionados. Nela, o MaxCompute aceita diversas fontes de dados, facilitando a ingestão de dados incrementais e completos em um sistema de armazenamento unificado por meio de ferramentas de acesso personalizadas. Um serviço de gestão de dados em segundo plano otimiza automaticamente a estrutura de armazenamento. Um motor de computação unificado dá suporte tanto ao processamento incremental em tempo quase real quanto ao processamento em lote de grandes volumes de dados offline. Já um serviço de metadados unificado gerencia transações e metadados de arquivos.
Os benefícios dessa arquitetura são expressivos. Ela elimina problemas como computação e armazenamento redundantes e baixa atualidade, comuns quando sistemas puramente offline processam dados incrementais. Também evita os altos custos de consumo de recursos típicos de sistemas em tempo real ou de streaming. Além disso, resolve as inconsistências entre múltiplos sistemas da arquitetura Lambda, reduzindo tanto os custos de armazenamento redundante de várias cópias quanto os custos de migração de dados entre sistemas.
O otimizador SQL recebeu aprimoramentos específicos para consultas incrementais, especialmente no contexto de atualizações incrementais de visualizações materializadas. Com base na estimativa de custo, o otimizador escolhe entre um algoritmo incremental baseado em estado ou um algoritmo incremental baseado em snapshot para a operação de atualização. A camada de aceleração de consultas (MaxQA) opera sobre uma base de recursos fortemente isolados, estruturada em virtual warehouses, garantindo não apenas melhor desempenho nas consultas, mas também alta estabilidade e consistência entre execuções. Apoiada no FDC desenvolvido internamente, a camada de aceleração otimizou o cache de ponta a ponta; o otimizador incorporou um modo voltado à redução de latência; e o runtime aprimorou ainda mais a execução vetorizada, evitando sobrecargas relacionadas ao Codegen durante a fase de execução.
Essa arquitetura integrada de ponta a ponta atende aos requisitos de otimização de computação e armazenamento no processamento de dados incrementais com atualidade na escala de minutos, mantém a eficiência global do processamento em lote e reduz eficazmente os custos de recursos.
Recursos principais
O data warehouse em tempo quase real do MaxCompute oferece três recursos essenciais: Delta table, computação incremental e MaxQA. O recurso Delta table permite a ingestão de dados na escala de minutos; a computação incremental equilibra melhor latência e throughput; e o MaxQA, recentemente atualizado, viabiliza respostas a consultas em segundos.

Confira abaixo os detalhes desses três recursos:
Delta table: Formato de tabela para dados incrementais. Permite ingestão de dados na escala de minutos, utiliza AliORC como formato subjacente de arquivo, suporta semântica UPSERT e oferece métodos padrão de change data capture (CDC) para leitura e escrita de dados incrementais. Depende dos serviços de armazenamento e metadados do MaxCompute para gestão automática dos dados.
Computação incremental: A partir do recurso Delta table, o MaxCompute adicionou capacidades de computação incremental, incluindo visualizações materializadas incrementais, Time Travel e stream tables. Visualizações materializadas incrementais e tarefas agendadas periodicamente oferecem diferentes frequências de acionamento, proporcionando mais opções para equilibrar latência e throughput.
MaxQA: Representa uma evolução completa da aceleração de consultas do MaxCompute. Garante maior estabilidade de desempenho por meio de um ambiente fortemente isolado e amplia o suporte SQL — antes restrito a consultas DQL SELECT (MCQA 1.0) — para abranger consultas SQL completas, incluindo instruções DDL e DML. Adicionalmente, melhora o desempenho com otimizações como cache de ponta a ponta e assincronia em várias etapas do pipeline de submissão de jobs.
Todas essas novas capacidades foram construídas sobre o motor SQL original do MaxCompute. Assim, os usuários podem analisar grandes volumes de dados com maior custo-benefício sem precisar alterar seus hábitos de desenvolvimento.
Vantagens
A nova arquitetura foi projetada para suportar integralmente os recursos comuns de formatos de data lake open source, como Hudi e Iceberg, facilitando a migração suave dos pipelines de negócios associados. Por ser uma arquitetura totalmente desenvolvida internamente, oferece vantagens exclusivas em funcionalidade, desempenho, estabilidade e integração:
Oferece design unificado para armazenamento, metadados e motores de computação, promovendo integração profunda e eficiente entre eles. Os benefícios incluem: baixos custos de armazenamento, gestão eficiente de arquivos de dados e alta eficiência nas consultas. Muitas regras de otimização das consultas em lote do MaxCompute também são reutilizadas pelo Time Travel e pelas consultas incrementais.
Disponibiliza conjunto completo e unificado de sintaxe SQL que cobre todos os recursos da nova arquitetura, simplificando a operação pelos usuários.
Inclui ferramentas de ingestão de dados personalizadas e otimizadas para atender a diversos cenários de negócios complexos.
Integra-se perfeitamente com os cenários de negócios existentes no MaxCompute, reduzindo custos de migração, armazenamento e computação.
Gerencia automaticamente arquivos de dados para garantir maior estabilidade e desempenho nas operações de leitura e escrita, além de otimizar a eficiência e os custos de armazenamento.
É totalmente gerenciado no MaxCompute. Utilize a nova arquitetura imediatamente, sem custos adicionais de configuração. Basta crie uma Delta table para acessar todos os recursos.
Permite controle total sobre prazos e requisitos de desenvolvimento, graças à arquitetura inteiramente desenvolvida internamente.