As instâncias analíticas baseadas em DuckDB do ApsaraDB RDS for MySQL utilizam armazenamento colunar e vetorização como tecnologias principais para aumentar o desempenho de consultas analíticas complexas em até cem vezes. A tecnologia de compactação de armazenamento colunar reduz significativamente os custos de armazenamento. Essas instâncias oferecem às empresas análises em tempo real com custo-benefício para cenários de dados em grande escala, aprimorando a tomada de decisões orientada por dados.
Recursos
As instâncias analíticas baseadas em DuckDB incluem os seguintes tipos:
-
DuckDB-based analytical primary instance
Definição: Uma instância de banco de dados independente, semelhante a uma instância primária padrão do RDS for MySQL. Este tipo está disponível para a Cluster Edition e é implantado com vários nós em espera capazes de lidar com solicitações de leitura.
-
Principais recursos:
Mantém todos os recursos básicos de uma instância padrão do RDS for MySQL e é compatível com ferramentas e ecossistemas relacionados. Para obter mais informações, consulte Overview of a DuckDB-based analytical primary instance.
Integra profundamente o mecanismo analítico DuckDB ao kernel do MySQL. Utiliza armazenamento colunar e vetorização como tecnologias centrais para oferecer tanto suporte robusto a transações quanto capacidades de processamento analítico complexo de alto desempenho.
-
DuckDB-based analytical read-only instance
Definição: Um tipo de instância somente leitura anexada a uma instância padrão do RDS for MySQL que executa a High-availability Edition.
-
Principais recursos:
Fluxo de dados contínuo: Usa replicação nativa baseada em binary logging (binlog) para sincronizar dados e transformar esquemas de tabelas automaticamente. Isso elimina a necessidade de manter um link separado de sincronização de dados.
HTAP integrado: Suporta solicitações analíticas por meio de conexões diretas à instância analítica somente leitura baseada em DuckDB ou pelo roteamento automático de solicitações para a instância via proxy de banco de dados. Essa arquitetura fornece capacidades integradas de processamento híbrido transacional e analítico (HTAP), garantindo o desempenho de processamento transacional (TP) da instância primária e melhorando a eficiência das análises de dados.
|
Item de comparação |
Instância primária analítica baseada em DuckDB |
Instância analítica somente leitura baseada em DuckDB |
Instância somente leitura do RDS for MySQL |
Banco de dados OLAP |
|
|
Cenário |
Consultas analíticas complexas |
Consultas analíticas complexas |
Processamento de transações |
Consultas analíticas complexas |
|
|
Desempenho de consulta analítica |
Alto |
Alto |
Baixo |
Alto |
|
|
Método de sincronização de dados |
Link de sincronização de dados DTS |
Replicação nativa baseada em binary logging |
Replicação nativa baseada em binary logging |
Link de sincronização de dados DTS |
|
|
Compatibilidade com MySQL |
Tipo de dados |
Totalmente compatível |
Totalmente compatível |
Totalmente compatível |
Incompatível (requer mapeamento de campos) |
|
Sintaxe SQL |
Altamente compatível (> 99,9%) |
Altamente compatível (>99,9%) |
Totalmente compatível |
Incompatível (requer reescrita de SQL) |
|
|
DDL |
Altamente compatível |
Altamente compatível (suporta reconstrução automática) |
Totalmente compatível |
Parcialmente compatível |
|
|
Custos de O&M |
Baixos |
Baixos |
Baixos |
Altos |
|
|
Modelo de implantação |
Implantação independente |
Anexada a uma instância padrão do RDS for MySQL |
Anexada a uma instância padrão do RDS for MySQL |
Implantação independente |
|
|
Edição suportada |
Cluster Edition |
High-availability Edition |
Basic Edition, High-availability Edition |
- |
|
Cenários
Análise agregada: As instâncias analíticas baseadas em DuckDB fornecem consultas agregadas eficientes para análise agregada em tempo real, como a análise de dados de log.
Consultas com junção de múltiplas tabelas: Para serviços de consulta que envolvem operações
JOINentre várias tabelas, essas instâncias melhoram significativamente o desempenho analítico do MySQL.
Princípios técnicos
O que é DuckDB?
DuckDB é um banco de dados independente de processamento analítico online (OLAP) projetado para cenários incorporados. Sua arquitetura central equilibra análises de alto desempenho com processamento de transações:
Análises de alto desempenho: O armazenamento colunar acelera significativamente as consultas de análise agregada, e o mecanismo de execução vetorizada processa dados em lotes de forma eficiente.
Suporte robusto a transações: Oferece capacidades completas de transação com atomicidade, consistência, isolamento e durabilidade (ACID). Utiliza um mecanismo de Controle de Concorrência Multiversão (MVCC) para permitir operações eficientes de leitura e escrita simultâneas em um ambiente independente.
Otimizações técnicas
O ApsaraDB RDS integra profundamente o mecanismo DuckDB para combinar as análises de alto desempenho do DuckDB com o ecossistema MySQL. Essa abordagem equilibra análises de alto desempenho com processamento de transações, atendendo às necessidades analíticas eficientes das empresas para dados em grande escala e, ao mesmo tempo, garantindo confiabilidade e consistência de dados de nível empresarial.
Otimizações técnicas gerais (para instâncias analíticas primárias e somente leitura)
-
Otimização do mecanismo de armazenamento
Encapsula o armazenamento colunar do DuckDB como um mecanismo de armazenamento transacional dentro do MySQL e usa o dicionário de dados padrão do MySQL para gerenciar metadados. Isso garante total compatibilidade com a semântica transacional da instância primária.
Aprimora a capacidade de sincronização nativa baseada em binary logging e usa o write-ahead logging (WAL) do DuckDB para persistência de transações. Isso assegura a consistência dos dados entre a instância do ApsaraDB RDS for MySQL e a instância analítica baseada em DuckDB.
-
Aprimoramento do mecanismo de computação
Integra componentes essenciais do DuckDB. O otimizador, o mecanismo de execução vetorizada e o compilador são profundamente integrados para suportar compilação just-in-time (JIT) e vetorização. Isso melhora o desempenho de consultas complexas em duas ordens de magnitude em comparação com o InnoDB.
Adapta o analisador SQL para suportar 99,9% da sintaxe e funções do MySQL. Isso garante que as instruções de consulta existentes possam ser executadas diretamente sem modificações.
O componente Result Translator converte automaticamente os resultados de computação do DuckDB em um formato compatível com o protocolo MySQL. Isso permite uma integração perfeita com o cliente, sem exigir ajustes na lógica existente da aplicação.
-
Aceleração de consultas
Armazenamento colunar: Os dados são armazenados localmente no formato colunar nativo do DuckDB. Isso melhora o desempenho de consultas agregadas em mais de 100 vezes. Por exemplo, o tempo de resposta para uma consulta SUM sobre a mesma quantidade de dados é reduzido a 1/100 do tempo exigido pelo InnoDB.
Cache automático de dados quentes: O sistema usa o mecanismo Buffer Pool do DuckDB para armazenar em cache automaticamente os dados consultados frequentemente. Isso fornece suporte estável para cenários de negócios de alta concorrência.
Otimizações técnicas adicionais para instâncias analíticas somente leitura baseadas em DuckDB
-
Melhoria no desempenho de sincronização de dados
Introduz um mecanismo de agrupamento que combina pequenas transações de alta frequência em grandes transações. Isso reduz significativamente a latência de gravação.
Replay idempotente: O sistema realiza verificações de idempotência em eventos de binary log para garantir forte consistência na sincronização de dados.
-
Otimização de sincronização DDL
Identifica automaticamente operações de Data Definition Language (DDL) suportadas nativamente pelo DuckDB, como criação de tabelas e adição ou remoção de campos. Essas operações são roteadas diretamente para o mecanismo DuckDB para execução, sem conversão, garantindo o desempenho da sincronização de dados.
Para operações DDL não suportadas pelo DuckDB, o sistema aciona automaticamente uma reconstrução de tabela antes da execução. Isso evita que erros de execução interrompam a replicação e garante a estabilidade do link de sincronização.
Isolamento de recursos: A instância analítica somente leitura baseada em DuckDB é isolada da instância primária do ApsaraDB RDS for MySQL. Portanto, as consultas analíticas não afetam o processamento de transações online, garantindo a estabilidade das operações comerciais essenciais.
Fluxo de trabalho de uma instância analítica baseada em DuckDB
Análise de SQL: O analisador SQL padrão processa a consulta SQL do usuário.
Execução de SQL: A consulta analisada é roteada para o mecanismo de computação DuckDB para execução.
Recuperação de dados: Os dados colunares são recuperados do mecanismo de armazenamento DuckDB.
Conversão de formato: O componente
Result Translatorconverte o resultado da computação para o formato de protocolo MySQL e o envia ao cliente.