Todos os produtos
Search
Central de documentação

PolarDB:O que é uma tabela colunar

Última atualização: Sep 10, 2026

Com o aumento expressivo do volume de dados corporativos, muitas empresas enfrentam desafios centrais para gerenciar custos de armazenamento massivo e manter a eficiência analítica. Para resolver essa questão, o PolarDB for MySQL oferece o recurso de tabela colunar X-Engine. Esse recurso utiliza armazenamento colunar, compressão eficiente e computação paralela para reduzir seus custos de armazenamento de dados a 10% do tamanho original, além de melhorar o desempenho de consultas analíticas em uma ordem de grandeza. Ele possibilita o arquivamento de dados em larga escala com baixo custo e análises em tempo real de alto desempenho, mantendo total compatibilidade com o ecossistema MySQL.

Visão geral

As tabelas colunares X-Engine utilizam uma arquitetura baseada na separação entre computação e armazenamento. Isso permite que os recursos de computação e armazenamento escalem de forma independente e elástica, oferecendo capacidade de processamento de dados no nível de petabytes. A camada de armazenamento é construída sobre um sistema de arquivos distribuído e OSS. Já a camada de computação entrega análises de alto desempenho por meio de otimizações profundas no otimizador de consultas, nos operadores de execução e no mecanismo de armazenamento.

Arquitetura técnica

Arquitetura geral do PolarDB

O PolarDB adota uma arquitetura com separação entre computação e armazenamento, fundamentada em uma camada de armazenamento distribuído. O sistema usa o protocolo ParallelRaft para garantir a consistência de múltiplas réplicas e suporta OSS de forma transparente. Os nós de computação consistem em um nó de leitura e gravação (RW) e um ou mais nós somente leitura (RO), com suporte aos mecanismos InnoDB e X-Engine. Um proxy de banco de dados atua como ponte entre as aplicações e os nós de computação, fornecendo divisão de leitura/gravação e balanceamento de carga.

image

Arquitetura da tabela colunarimage

Seus principais componentes técnicos incluem:

  • Otimizador de consultas: Um otimizador baseado em custo (CBO) integrado para armazenamento misto de linhas e colunas. Ele estima o custo da consulta e seleciona automaticamente o plano de execução ideal, escolhendo entre o armazenamento por linha ou por coluna.

  • Operador de execução: Utiliza técnicas de vetorização orientada a colunas e execução paralela. O processamento em lote acelera significativamente as consultas analíticas, tanto em tabelas únicas quanto em junções de múltiplas tabelas.

  • Mecanismo de armazenamento: Suporta atualizações transacionais em tempo real. A tabela principal usa armazenamento colunar e aproveita um componente de Índice Não Clusterizado (NCI) para oferecer capacidades rápidas de atualização. Um mecanismo de máscara de exclusão sinaliza dados para remoção, permitindo consultas paralelas eficientes sem impactar as gravações em tempo real. Além disso, seus índices secundários de armazenamento por linha filtram rapidamente dados irrelevantes, aumentando ainda mais a eficiência das consultas.

Comparação de tipos de tabela

A tabela a seguir compara as principais diferenças entre tabelas tradicionais orientadas a linhas (como InnoDB) e tabelas colunares do PolarDB para ajudar você a escolher o tipo adequado:

Aspecto

Tabela orientada a linhas (X-Engine)

Tabela colunar

Organização de dados

Os dados são armazenados contiguamente por linha. Todas as colunas de uma única linha ficam armazenadas juntas.

Os dados são armazenados contiguamente por coluna. Todos os valores de uma única coluna ficam armazenados juntos.

Taxa de compressão de dados

Média. Em comparação ao InnoDB, os dados podem ser comprimidos a 3/10 do tamanho original.

Alta. Com armazenamento colunar e codificação especializada (como codificação por dicionário), os dados podem ser comprimidos a 1/10 do tamanho original em relação ao InnoDB.

Desempenho de consulta

Excelente para buscas pontuais. Adequado para cenários de Processamento Transacional Online (OLTP) que envolvem leitura rápida de uma ou poucas linhas com base em uma chave primária ou índice.

Forte para análises. As consultas leem apenas as colunas relevantes, o que reduz significativamente a E/S. Combinado com computação paralela vetorizada, o desempenho analítico é uma ordem de grandeza superior ao das tabelas orientadas a linhas.

Desempenho de atualização e exclusão

Alto. Localiza e modifica linhas diretamente.

Relativamente menor, mas suporta atualizações em tempo real. O componente NCI ajuda a localizar rapidamente os registros a serem modificados.

Casos de uso

Processamento Transacional Online (OLTP), como operações de inserção, exclusão, atualização e consulta de alta concorrência.

Processamento Analítico Online (OLAP), como arquivamento de dados, geração de relatórios, consultas ad-hoc e análise de dados agregados em larga escala.

Benefícios

  • Custo-benefício: Reduz os custos de armazenamento e processamento de grandes conjuntos de dados em até 90% através da combinação de armazenamento colunar, codificação eficiente, algoritmos de alta compressão e mídias de armazenamento de baixo custo, como OSS.

  • Análise em tempo real de alto desempenho: Os dados ficam disponíveis para consultas analíticas imediatamente após a gravação. Ao aproveitar o paralelismo multinúcleo, a vetorização e a tecnologia de Processamento Massivamente Paralelo (MPP), o desempenho das consultas é comparável ao de bancos de dados analíticos dedicados, atendendo a demandas rigorosas de análise em tempo real.

  • 100% compatível com MySQL: Oferece um sistema de tipos de dados e protocolos consistentes com o MySQL, além de suportar conversões flexíveis de tipos. Conecte suas aplicações e ferramentas existentes sem necessidade de modificações.

  • Dimensionamento elástico independente: A separação entre computação e armazenamento permite o dimensionamento independente e sob demanda de nós de computação e espaço de armazenamento para lidar com picos de negócios e crescimento de dados.

  • Suporte robusto a tabelas largas: Uma única tabela pode suportar até 10.000 colunas, atendendo aos requisitos de negócios para armazenamento de tabelas largas e gravações de alta concorrência.

  • Excelente usabilidade: Simplifica sua pilha tecnológica e o gerenciamento operacional ao suportar armazenamento de alta compressão e análises de alto desempenho dentro de um único mecanismo de banco de dados, com suporte completo a operações DDL e DML.

Casos de uso

Arquivamento de dados de baixo custo

  • Problema: À medida que os negócios crescem, dados históricos como pedidos antigos, logs e registros de transações podem se acumular rapidamente nos bancos de dados principais, consumindo espaço de armazenamento caro. Embora soluções tradicionais de migração de dados possam reduzir custos, elas frequentemente tiram os dados do ar, tornando o acesso online complexo.

  • Solução: Utilize tabelas colunares para arquivamento de dados online. Migre dados frios de tabelas orientadas a linhas (InnoDB) ou tabelas históricas inteiras para tabelas colunares dentro do mesmo cluster PolarDB.

  • Valor principal:

    • Redução drástica de custos: Com uma taxa de compressão de até 10:1 e o uso de mídias de armazenamento de baixo custo como OSS, os custos de armazenamento podem ser reduzidos em até 90%.

    • Disponibilidade de dados online: Os dados arquivados permanecem online e acessíveis. Consulte e analise-os a qualquer momento usando SQL padrão, sem processos complexos de migração de dados.

    • Integração perfeita com aplicações: Do ponto de vista da aplicação, uma tabela colunar funciona exatamente como uma tabela MySQL comum, sem exigir alterações no código.

Data warehouse dedicado

  • Problema: Ao construir um data warehouse dedicado, as empresas frequentemente enfrentam altos custos de hardware, pipelines complexos de sincronização de dados (ETL) e uma curva de aprendizado operacional íngreme, especialmente ao introduzir novas tecnologias como ClickHouse.

  • Solução: Aproveite a enorme capacidade de armazenamento do PolarStore para agregar dados de múltiplas fontes upstream e armazená-los uniformemente em tabelas colunares X-Engine. Isso permite beneficiar-se de armazenamento massivo e de baixo custo, além de desempenho de análise agregada em tempo real.

  • Valor principal:

    • Menor custo e complexidade: Construa um data warehouse dentro do ecossistema MySQL familiar, sem adquirir hardware dedicado caro ou introduzir sistemas analíticos heterogêneos. Essa abordagem simplifica sua pilha tecnológica e reduz a sobrecarga operacional.

    • Análise de dados em tempo real: Suporta consolidação em tempo real de dados upstream em tabelas colunares para análise, evitando a latência de dados T+1 comum em soluções ETL tradicionais.

    • Capacidade massiva de processamento de dados: A arquitetura de armazenamento X-Engine e a compressão eficiente permitem o armazenamento e processamento de dados na escala de petabytes com baixo custo.

Análise de consulta federada

  • Problema: Os dados empresariais costumam estar divididos entre diferentes sistemas. Alguns residem em bancos de dados online como o PolarDB, enquanto outros estão armazenados em formatos abertos como Parquet ou ORC no OSS. Analisar esses conjuntos de dados díspares juntos geralmente exige um processo complexo de ETL para importar os dados do OSS para o banco de dados.

  • Solução: Use o recurso de tabela externa do PolarDB para consultar dados diretamente no OSS.

  • Valor principal:

    • Análise no local: Consulte os dados onde eles estão. Crie uma tabela externa no PolarDB que aponte para seus arquivos no OSS e use SQL padrão para consultá-los diretamente, sem mover ou importar os dados.

    • Consulta federada: Execute facilmente operações JOIN entre tabelas locais no PolarDB (orientadas a linhas ou colunares) e tabelas externas do OSS para realizar análises unificadas em dados online e offline.

Desempenho

Os dados de desempenho a seguir foram obtidos em um ambiente de teste específico e servem como referência para avaliar os benefícios das tabelas colunares.

Nota

A implementação do TPC-H neste tópico baseia-se nos benchmarks do TPC-H. Estes resultados de teste não podem ser comparados com os resultados oficiais publicados pelo TPC-H, pois os testes não atendem totalmente a todos os requisitos do TPC-H.

Desempenho de carregamento de dados

Os dados abaixo baseiam-se em um ambiente de teste com 32 núcleos e 256 GB de memória. Eles comparam o desempenho de carregamento e armazenamento de tabelas colunares com ClickHouse e Doris, utilizando os conjuntos de dados TPC-H e Airline.

Velocidade de carregamento

  • Conjunto de dados TPC-H: A velocidade de carregamento das tabelas colunares atingiu 5,71 milhões de linhas/segundo, com throughput de gravação de 50 GB/min, aproximadamente 2,7 vezes superior ao do ClickHouse.

  • Conjunto de dados Airline: A velocidade de carregamento das tabelas colunares atingiu 4,3 milhões de linhas/segundo, com throughput de gravação de 27 GB/min, aproximadamente 2 vezes superior ao do ClickHouse.

Conjunto de dados

ClickHouse (milhões de linhas/s)

Doris (milhões de linhas/s)

Tabela colunar (milhões de linhas/s)

TPC-H

2,10

4,54

5,71

Airline

1,40

2,15

4,30

Espaço de armazenamento

  • Conjunto de dados TPC-H: Com 100 GB de dados brutos, as tabelas colunares alcançaram uma taxa de compressão de 4x.

  • Conjunto de dados Airline: Com 75 GB de dados brutos, as tabelas colunares alcançaram uma taxa de compressão de 18x.

A tabela a seguir compara o espaço de armazenamento para o conjunto de dados Airline de 75 GB:

Tipo/Product

ClickHouse

Doris

Tabela colunar

Espaço de armazenamento (GB)

9,29

4,49

3,97

Taxa de compressão

Aprox. 8x

Aprox. 16x

Aprox. 18x

Desempenho de consulta TPC-H

  • Em um teste de desempenho usando o conjunto de dados TPC-H de 100 GB, o tempo total para uma tabela colunar executar todas as 22 consultas foi de 17.994 segundos, contra 76,9 segundos do ClickHouse. O desempenho geral da tabela colunar foi aproximadamente 4,3 vezes superior ao do ClickHouse.

    Consulta

    Tabela colunar (segundos)

    ClickHouse (segundos)

    Q1

    1.175

    2,2

    Q2

    0,178

    0,9

    Q3

    0,577

    1,6

    Q4

    0,433

    1,3

    Q5

    0,522

    3,3

    Q6

    0,366

    0,32

    Q7

    0,633

    1,7

    Q8

    0,528

    1,8

    Q9

    2.817

    12

    Q10

    0,935

    2,3

    Q11

    0,218

    0,66

    Q12

    0,535

    1,4

    Q13

    1.255

    4,4

    Q14

    0,442

    0,3

    Q15

    0,889

    0,42

    Q16

    0,553

    0,6

    Q17

    0,738

    4,2

    Q18

    2.381

    4,3

    Q19

    0,759

    2

    Q20

    0,453

    0,6

    Q21

    1.308

    29,6

    Q22

    0,299

    1

    Total

    17.994

    76,9

  • Análise paralela multinó: Em um teste de desempenho com o conjunto de dados TPC-H de 1 TB, as tabelas colunares usaram aceleração paralela multinó, reduzindo o tempo total de consulta de 1.420.551 segundos em um único nó para 167.948 segundos em seis nós.

    Consulta

    1 nó (segundos)

    2 nós (segundos)

    4 nós (segundos)

    6 nós (segundos)

    Q1

    76.849

    36.831

    23.031

    20.022

    Q2

    5.841

    2.805

    1.527

    1,09

    Q3

    133,69

    26.131

    15.833

    4,75

    Q4

    51.466

    19,02

    3.353

    2.362

    Q5

    52.965

    26.844

    13.715

    4.269

    Q6

    34.577

    21.831

    35,17

    11.274

    Q7

    75.996

    29.659

    17.279

    5.717

    Q8

    54.989

    28.922

    15.651

    3.375

    Q9

    155,33

    78.216

    40,38

    25.983

    Q10

    72.222

    31.659

    17.177

    4.594

    Q11

    4.149

    2.049

    1.351

    1.069

    Q12

    50.997

    27,79

    16.207

    2.977

    Q13

    73.009

    31.742

    17.605

    16.255

    Q14

    36.887

    22.093

    4.475

    3.778

    Q15

    66.217

    38.628

    7.583

    6.451

    Q16

    11.493

    4,49

    2.528

    1.758

    Q17

    59.225

    37.101

    11.434

    8.767

    Q18

    132.604

    53.578

    17.164

    10.797

    Q19

    72.794

    38.416

    23.759

    16.651

    Q20

    42.621

    22.432

    5,62

    4.768

    Q21

    149.245

    54.803

    12.758

    8.793

    Q22

    7.385

    5.684

    2.972

    2.448

    Total

    1.420.551

    640.724

    306.572

    167.948