Todos os produtos
Search
Central de documentação

PolarDB:CCI

Última atualização: Jun 28, 2026

Este tópico descreve o recurso Clustered Columnar Index (CCI).

As soluções de Online Transaction Processing (OLTP) e Online Analytical Processing (OLAP) baseiam-se na separação de leitura e escrita ou no modelo extract, transform, load (ETL). Elas extraem dados de bancos de dados online e os carregam em um data warehouse para análise via T+1. No entanto, apresentam desvantagens como alto custo de armazenamento, baixa capacidade de tempo real e elevados custos de manutenção e conectividade.

Para lidar com o crescimento explosivo de dados, o PolarDB-X oferece o recurso CCI baseado no Object Storage Service (OSS). Esse recurso sincroniza dados orientados a linhas com dados orientados a colunas em tempo real e suporta as seguintes capacidades:

  • Suporte a OLTP integrado e análise de dados em tempo real para atender aos requisitos de cenários que envolvem OLTP e OLAP.

  • Suporte a roteamento inteligente e massively parallel processing (MPP) no PolarDB-X. A camada de computação identifica com precisão o tráfego de processamento transacional (TP) e analítico (AP), direcionando-os para diferentes mídias de armazenamento. Por padrão, essa camada também garante a ativação do MPP nas trilhas de AP para consultar CCIs, melhorando significativamente as capacidades de análise.

  • Uso do modelo Delta+Main para implementar atualizações em tempo real na ordem de segundos. A integração ao Multi-Version Concurrency Control (MVCC) garante a leitura consistente de dados de snapshot a qualquer momento.

Observações de uso

Arquitetura

Armazenamento híbrido linha-coluna

image

Componentes principais

  • Os nós de computação (CNs) funcionam como porta de entrada do sistema. Com design stateless, incluem componentes como parser SQL, otimizador e executor. Os CNs realizam o roteamento distribuído de dados, computação, agendamento dinâmico, coordenação de transações distribuídas baseada no protocolo Two-Phase Commit (2PC) e manutenção de índices secundários globais. Além disso, fornecem recursos empresariais, como limitação de SQL e modo de três funções.

  • Os nós de dados (DNs) cuidam da persistência de dados orientados a linhas. Garantem a durabilidade dos dados e oferecem fortes garantias de consistência com base no protocolo Paxos multi-majority. Os DNs usam MVCC para manter a visibilidade das transações distribuídas e atendem aos requisitos de operações que exigem pushdown de tarefas de computação em arquiteturas distribuídas, como Project, Filter, Join e Aggregation.

  • O Global Meta Service (GMS) mantém metadados de sistema globalmente consistentes, incluindo metadados de tabela, esquema e estatísticas. Gerencia informações de segurança, como contas de usuário e permissões, e fornece o serviço Timestamp Oracle (TSO).

  • O Change Data Capture (CDC) oferece capacidades de assinatura incremental totalmente compatíveis com os formatos e protocolos de logs binários do MySQL. Também fornece recursos de replicação primária/secundária compatíveis com os protocolos de replicação do MySQL.

  • O Columnar fornece CCIs persistentes, consome logs binários de transações distribuídas em tempo real e cria CCIs baseados no OSS para atender aos requisitos de atualizações em tempo real. Combinado com CNs, o Columnar oferece capacidades de consulta com consistência de snapshot para CCIs.

Armazenamento orientado a colunas

image

Conceito de arquitetura

Com a crescente popularidade das tecnologias cloud-native, data warehouses de nova geração, como o Snowflake, e a arquitetura HTAP impulsionam continuamente a inovação. É evidente que, em breve, o armazenamento híbrido linha-coluna com capacidades HTAP se tornará um requisito padrão para bancos de dados. Portanto, é fundamental focar em aspectos futuros, como custo-benefício, facilidade de uso e alto desempenho nos projetos atuais de armazenamento orientado a colunas.

O PolarDB-X oferece o recurso CCI. Por padrão, uma tabela orientada a linhas no PolarDB-X possui índices de chave primária e secundários. Um CCI é um índice secundário construído sobre uma estrutura orientada a colunas e válido para todas as colunas de uma tabela orientada a linhas. Uma tabela pode conter tanto dados orientados a linhas quanto a colunas.

Recursos de arquitetura

  • Arquitetura cloud-native (armazenamento e computação desacoplados e custo-benefício)

    O recurso CCI do PolarDB-X utiliza o OSS como armazenamento principal de dados, gerando custos equivalentes a um sexto ou até um décimo dos custos de armazenamento em disco local. O recurso também implementa alta taxa de compressão para dados orientados a colunas, de três a cinco vezes superior à de outros tipos de dados. Isso confere ao CCI vantagem competitiva em termos de custos reduzidos. Em cenários HTAP com armazenamento híbrido linha-coluna, os custos adicionais de armazenamento orientado a colunas ficam entre 5% e 10% dos custos de armazenamento orientado a linhas.

    O recurso CCI do PolarDB-X aproveita o modelo de duas camadas Delta+Main, semelhante à estrutura LSM e às tecnologias de exclusão por tag em sua camada de armazenamento, para garantir altas capacidades de atualização simultânea ao usar o OSS. Múltiplas camadas de cache de dados locais e mecanismos de estatísticas multinível também são empregados nas trilhas em que o CCI lê dados do OSS, minimizando acessos remotos desnecessários aos dados armazenados.

  • Sistema de banco de dados distribuído (dimensionamento linear)

    Em bancos de dados distribuídos tradicionais, os CCIs geralmente usam mecanismos de múltiplas réplicas baseados nos protocolos Paxos ou Raft. No entanto, OLTP e OLAP possuem requisitos de consulta diferentes e variados graus de dependência de recursos. Políticas de particionamento de forte consistência e mecanismos de dimensionamento entre réplicas podem limitar o dimensionamento linear de TP e AP, degradando o desempenho do banco de dados.

    O recurso CCI do PolarDB-X implementa transformação heterogênea de dados orientados a linhas para orientados a colunas (M:N) com base na sincronização em tempo real dos logs binários de transações distribuídas. O recurso define chaves de partição distribuídas e chaves de ordenação para CCIs. O PolarDB-X utiliza técnicas de processamento paralelo distribuído para oferecer escalabilidade linear em consultas baseadas em CCI. As mídias de armazenamento orientadas a linhas e a colunas são isoladas entre si, permitindo dimensionar recursos de armazenamento e computação com facilidade. Em ambiente distribuído, consultas baseadas em CCI beneficiam-se de extrema escalabilidade linear.

  • Separação de leitura e escrita (arquitetura serverless com precificação pagamento conforme o uso para leituras)

    O recurso CCI do PolarDB-X adota arquitetura de separação de leitura e escrita baseada em componentes, formada por nós de column store e nós de computação. Os nós de column store são stateless e não lidam diretamente com solicitações de escrita de clientes externos; em vez disso, utilizam a tecnologia Group Commit para atualizar dados CCI em lote. Os nós de computação, também stateless, recuperam metadados columnar dos nós GMS e acessam diretamente os dados CCI armazenados no OSS.

    Ao criar uma instância PolarDB-X, o sistema fornece automaticamente nós de column store. Esses nós executam continuamente e sincronizam CCIs. Execute uma instrução DDL para criar facilmente um CCI. Após a criação, os dados são gerados automaticamente e atualizados em tempo real. Utilize uma instância primária ou adquira uma instância somente leitura adicional para acessar índices de row store e CCIs. O modo serverless também é adequado para CNs stateless, com cobrança apenas pelo uso desses nós.

  • Combinação de armazenamento orientado a linhas e colunas (facilidade de uso, mecanismo SQL vetorizado integrado)

    O PolarDB-X reutiliza o mecanismo SQL dos CNs para fornecer suas capacidades completas. Um otimizador de custos desenvolvido para cenários híbridos linha-coluna identifica rotas inteligentemente com base nos custos de execução, encaminhando consultas OLTP para trilhas de consulta de row store e consultas OLAP para trilhas baseadas em CCI. Ele permite acessar diferentes dados orientados a linhas e colunas no nível do operador SQL, implementando totalmente as capacidades híbridas linha-coluna do HTAP e permitindo acesso unificado a um conjunto de mecanismos SQL.

    O PolarDB-X é totalmente compatível com vetorização. O operador TableScan utiliza a estrutura de dados de chunk columnar para ler dados orientados a colunas. Computações subsequentes dos operadores também herdam totalmente a estrutura columnar em memória dos chunks, melhorando o desempenho das consultas com base na vetorização ponta a ponta. O operador TableScan para armazenamento orientado a linhas também é convertido dinamicamente em chunks columnares para implementar consultas híbridas linha-coluna com base em uma estrutura de dados unificada.

  • Warehouse unificado (Zero-ETL)

    Data warehouses tradicionais usam ETL para sincronizar dados e aproveitam arquiteturas de computação paralela, como MPP e Bulk Synchronous Parallel (BSP), para lidar com consultas OLAP complexas. Contudo, em consultas online de alta concorrência (cenários Serving), esses warehouses enfrentam gargalos na concorrência de recursos. Nesses casos, retornam dados aos bancos de dados OLTP para fornecer consultas online.

    O PolarDB-X integra-se ao AnalyticDB for MySQL para fornecer um warehouse unificado. Esse warehouse aproveita dados CCI compartilhados com base no conceito zero-ETL. Permite que múltiplas partes realizem agregação de dados e consultas de correlação, oferecendo análises tradicionais de warehouse e data lake com base nas capacidades de warehousing do AnalyticDB for MySQL. A arquitetura híbrida linha-coluna com capacidades HTAP do PolarDB-X também pode ser usada para consultas concorrentes em dados online, eliminando a necessidade de ETL tradicional.

Como os CCIs funcionam

Construção de CCIs

image.png

Nota
  • Os nós de column store constroem os CCIs. Os dados relacionados aos CCIs construídos são armazenados em objetos shard nos formatos CSV e ORC. O formato CSV armazena dados incrementais em tempo real. Dados incrementais excessivos são compactados oportunamente e despejados no formato ORC. O PolarDB-X otimizou os formatos CSV e ORC. Esses formatos otimizados herdam os recursos open source dos formatos nativos e garantem que ambos expressem completamente os protocolos de dados do MySQL.

  • Do ponto de vista da sincronização de dados, o processo de construção de CCIs envolve duas trilhas paralelas: leitura completa de snapshot e sincronização de dados incrementais. Em cenários onde os CCIs são construídos antes da importação de dados, apenas dados incrementais são sincronizados, e os nós de column store consomem simultaneamente logs binários para construir os CCIs. Quando os dados são parcialmente importados antes da construção dos CCIs e da importação dos dados restantes, dados incrementais são sincronizados, e os nós de column store consomem simultaneamente dados incrementais existentes e dados completos para melhorar a eficiência da criação de CCIs.

  • Hierarquicamente, os nós de column store usam o modelo de duas camadas Delta+Main, semelhante à estrutura LSM e às tecnologias de exclusão por tag, para garantir sincronização de dados de baixa latência entre armazenamento orientado a linhas e colunas, além de atualizações de dados em tempo real na ordem de segundos. Os dados são gravados na MemTable em tempo real, armazenados em um arquivo CSV local e anexados ao arquivo CSV correspondente no OSS dentro de um ciclo de group commit. O arquivo local é denominado arquivo delta. O arquivo CSV no OSS não é armazenado permanentemente, sendo convertido periodicamente em um arquivo ORC por meio de compactação.

MPP

image
Nota
  • No PolarDB-X, os CNs lidam com o tráfego de consultas e análises. A figura anterior mostra que toda a cadeia de aceleração de consultas consiste em três níveis: otimizador, executor e mecanismo de armazenamento.

  • O PolarDB-X oferece um otimizador de custos adequado para cenários híbridos linha-coluna. Esse otimizador identifica rotas inteligentemente com base nos custos de execução, encaminhando consultas TP para trilhas de consulta de row store e consultas AP para trilhas baseadas em CCI.

  • O PolarDB-X fornece um executor integrado adequado para cenários híbridos linha-coluna. Um conjunto de executores está disponível em cenários HTAP. A camada de operadores também é vetorizada e suporta MPP. Em cenários de consultas complexas, recursos de múltiplos nós podem ser usados para computação paralela, atendendo aos requisitos de consultas complexas com alto throughput. Para eliminar a latência de rede causada pela arquitetura com recursos de computação e armazenamento desacoplados, a camada do executor também introduz tecnologia de cache local para carregar dados quentes em discos locais em tempo real, garantindo o atendimento aos requisitos de consultas de baixa latência.

  • No nível do mecanismo de armazenamento, a construção de CCIs possibilita a atomicidade das transações confirmadas e garante a consulta de dados consistentes no nível de transação.

Tipos de serviço

image
Nota
  • Com a introdução do Columnar, o PolarDB-X oferece um tipo de serviço adicional além das instâncias primárias e somente leitura, conhecido como instâncias de column store somente leitura.

  • Instância primária: Por padrão, permite consultar apenas dados orientados a linhas. No entanto, quando combinada com instâncias somente leitura, o endpoint da instância primária habilita separação de leitura e escrita transparente e fortemente consistente. A instância primária mantém a capacidade de consultar diretamente dados orientados a colunas. As capacidades de roteamento inteligente e consulta híbrida linha-coluna estarão disponíveis futuramente.

  • Instância somente leitura: Permite consultar dados orientados a linhas (somente leitura) e dados CCI. Possui endpoints dedicados somente leitura. Aplicações podem estabelecer conexões separadas a esses endpoints para realizar operações de leitura, gerenciando independentemente as operações de leitura e escrita.

  • Instância de column store somente leitura: Permite consultar apenas dados CCI. Possui endpoints dedicados somente leitura. Aplicações podem estabelecer conexões separadas a esses endpoints para realizar operações de leitura. Essas instâncias consistem apenas em CNs e oferecem maior custo-benefício.

Cenário

O recurso CCI do PolarDB-X fornece uma solução HTAP unificada e pode ser utilizado em diversos cenários de negócios.

  • Cenários que exigem análise em tempo real de dados online na ordem de segundos, como negócios de relatórios em tempo real.

  • Cenários de data warehousing que dependem da grande capacidade de armazenamento de dados do PolarDB-X para agregar múltiplas fontes de dados upstream e utilizar o PolarDB-X como data warehouse dedicado.

  • Cenários de computação voltados para ETL que dependem das poderosas e flexíveis capacidades de computação dos CCIs do PolarDB-X.

O recurso CCI do PolarDB-X atende aos requisitos de cenários que envolvem TP e AP, fornecendo uma solução HTAP transparente e econômica baseada no OSS e em tecnologia de roteamento inteligente.

Testes de desempenho

Para obter informações sobre o teste TPC Benchmark-H (TPC-H) do PolarDB-X para Clustered Columnar Indexes (CCIs), consulte Teste TPC-H para clustered columnar index (100 GB).