Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Overview of DuckDB-based analytical read-only instances

Última atualização: Jul 02, 2026

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 JOIN entre 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)

image

image

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

image

image

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.

Próximos passos