As instâncias analíticas somente leitura do ApsaraDB RDS for MySQL usam o mecanismo DuckDB integrado, com armazenamento colunar e execução vetorizada, para processar consultas analíticas complexas até 100 vezes mais rápido que o InnoDB. Execute suas consultas MySQL existentes diretamente em dados em tempo real, sem alterar o esquema nem configurar pipelines externos de OLAP (processamento analítico online).
Principais recursos
Análise de alto desempenho
O mecanismo DuckDB combina armazenamento colunar, execução vetorizada, compilação just-in-time (JIT), gerenciamento eficiente de memória e processamento paralelo para acelerar consultas analíticas complexas. Nos benchmarks TPC-H sf-100, uma instância analítica somente leitura baseada em DuckDB concluiu as 22 consultas em 15,31 segundos no total, enquanto o InnoDB levou 25.234,31 segundos e o ClickHouse Community Edition, 80,01 segundos.
Compatibilidade com MySQL
A instância analítica somente leitura é totalmente compatível com o protocolo e os tipos de dados do MySQL e suporta mais de 99,9% da sintaxe SQL, incluindo Data Definition Language (DDL). Envie suas consultas existentes sem modificações; a instância cuida do restante.
Sincronização de dados em tempo real
Os dados fluem da instância primária para a instância analítica somente leitura em duas fases:
Dados históricos: Ao criar a instância analítica somente leitura, o sistema copia todos os dados existentes da instância primária e os converte automaticamente para o formato do mecanismo DuckDB.
Dados incrementais: Após a criação, um canal nativo de replicação por binary logging sincroniza novas gravações em tempo real. Os dados permanecem no RDS, o que elimina a necessidade de ferramentas externas de sincronização, como o DTS, e evita custos adicionais com transferência de dados.
Isolamento de recursos
As consultas analíticas são executadas na instância analítica somente leitura dedicada, mantendo a instância primária e as instâncias somente leitura padrão livres para processamento transacional. Consultas pesadas em um lado não afetam o outro.
Casos de uso
Agregação e análise: Execute consultas agregadas em grandes conjuntos de dados, como logs, com latência significativamente menor que a do armazenamento baseado em linhas.
Consultas JOIN com múltiplas tabelas: Processe consultas complexas de
JOINentre várias tabelas que seriam impraticáveis em uma instância MySQL padrão.
Comparativo
Use uma instância analítica somente leitura baseada em DuckDB quando precisar de alto desempenho em consultas analíticas sem alterar sua configuração MySQL existente. A tabela a seguir resume as principais diferenças entre os tipos de instância.
|
Instância analítica somente leitura baseada em DuckDB |
Instância somente leitura padrão |
Banco de dados OLAP |
|
|
Mais indicado para |
Consultas analíticas complexas |
Processamento transacional |
Consultas analíticas complexas |
|
Desempenho de consulta |
Alto |
Baixo |
Alto |
|
Método de sincronização de dados |
Replicação nativa por binary logging |
Replicação nativa por binary logging |
Link de sincronização de dados via DTS |
|
Protocolo MySQL |
Totalmente compatível |
Totalmente compatível |
Incompatível |
|
Sintaxe SQL |
Altamente compatível (mais de 99,9%) |
Totalmente compatível |
Incompatível (requer reescrita de SQL) |
|
DDL |
Altamente compatível |
Totalmente compatível |
Parcialmente compatível |
|
Tipos de dados |
Totalmente compatível |
Totalmente compatível |
Incompatível (requer mapeamento de campos) |
|
Custos de O&M |
Baixos (instância integrada) |
Baixos (instância integrada) |
Altos (requer manutenção extra do banco de dados e do link de sincronização) |
Apêndice: benchmark de desempenho
Os resultados abaixo usam o benchmark padrão TPC-H para demonstrar o desempenho de consultas analíticas de uma instância analítica somente leitura baseada em DuckDB.
Ambiente de teste
|
Item |
Detalhes |
|
Conjunto de dados |
TPC-H sf-100, 100 GB, obtido no site oficial do DuckDB |
|
Especificações do host |
CPU de 32 núcleos, 128 GB de memória, armazenamento SSD empresarial (mesmo host ECS para todas as instâncias) |
|
Instâncias comparadas |
ApsaraDB RDS for MySQL 8.0.36 (mecanismo InnoDB), ClickHouse Community Edition 25.3 |
|
Método de teste |
3 rodadas de aquecimento (não contabilizadas) + 3 rodadas oficiais; o resultado final é a média das rodadas oficiais |
Resultados dos testes
A tabela a seguir mostra o tempo de execução (em segundos) para cada consulta TPC-H sf-100.
|
ID da consulta |
Instância analítica somente leitura baseada em DuckDB |
Instância padrão ApsaraDB RDS for MySQL (mecanismo InnoDB) |
ClickHouse |
|
q1 |
0,92 |
1.134,25 |
3,47 |
|
q2 |
0,15 |
1.800 |
1,52 |
|
q3 |
0,53 |
802,94 |
3,65 |
|
q4 |
0,46 |
1.000,45 |
2,77 |
|
q5 |
0,5 |
1.800 |
5,38 |
|
q6 |
0,22 |
566,73 |
0,73 |
|
q7 |
0,59 |
1.800 |
6,06 |
|
q8 |
0,68 |
1.800 |
6,99 |
|
q9 |
1,44 |
1.800 |
13,29 |
|
q10 |
0,91 |
894,35 |
3,22 |
|
q11 |
0,11 |
79,63 |
1,1 |
|
q12 |
0,44 |
734,35 |
1,69 |
|
q13 |
1,59 |
454,15 |
5,85 |
|
q14 |
0,38 |
574,07 |
0,83 |
|
q15 |
0,31 |
568,43 |
1,53 |
|
q16 |
0,32 |
63,56 |
0,52 |
|
q17 |
0,89 |
1.800 |
7,96 |
|
q18 |
1,59 |
1.800 |
3,11 |
|
q19 |
0,8 |
1.800 |
2,96 |
|
q20 |
0,51 |
1.800 |
3,38 |
|
q21 |
1,64 |
1.800 |
Out of memory |
|
q22 |
0,33 |
361,4 |
4 |
|
Total |
15,31 |
25.234,31 |
80,01 |
Conclusões dos testes
Instância analítica somente leitura baseada em DuckDB vs. Instância ApsaraDB RDS for MySQL (mecanismo InnoDB)


A instância analítica somente leitura baseada em DuckDB concluiu as 22 consultas em 15,31 segundos. A instância InnoDB levou 25.234,31 segundos — uma diferença de desempenho superior a 1.000x. Nove consultas (q5, q7, q8, q9, q17, q18, q19, q20, q21) atingiram o tempo limite de 1.800 segundos no InnoDB e não foram concluídas.
Instância analítica somente leitura baseada em DuckDB vs. ClickHouse


O ClickHouse completou o benchmark em 80,01 segundos. A instância analítica somente leitura baseada em DuckDB finalizou em 15,31 segundos e superou o ClickHouse em todas as consultas concluídas por ambas as instâncias. O ClickHouse falhou na consulta q21 com o erro Memory limit exceeded.