Todos os produtos
Search
Central de documentação

E-MapReduce:Doris

Última atualização: Aug 14, 2026

O Apache Doris é um banco de dados analítico em tempo real e de alto desempenho, ideal para análise de relatórios, consultas ad hoc e aceleração de consultas federadas em data lakes.

Informações básicas

Para obter mais informações sobre o Apache Doris, consulte Introdução ao Apache Doris.

Cenários

Após a integração e o processamento de dados de diversas origens, eles são normalmente carregados em um data warehouse em tempo real, como o Doris, e em um data lakehouse offline, como Hive, Iceberg e Hudi. A figura a seguir ilustra esse processo.Apache Doris

O Apache Doris é amplamente utilizado nos seguintes cenários:

  • Análise de relatórios

    • Painéis em tempo real.

    • Relatórios para analistas internos e gestores.

    • Análise de relatórios com alta concorrência (Customer Facing Analytics), como análises de site para proprietários de websites e relatórios de anúncios para anunciantes. Esse cenário geralmente exige milhares de consultas por segundo (QPS) com latência na casa dos milissegundos.

  • Consultas ad hoc: Análises self-service para analistas, com padrões de consulta variáveis que demandam alto throughput.

  • Construção de data warehouse unificado: O Doris funciona como uma plataforma única para criar um data warehouse unificado. Ele substitui arquiteturas legadas compostas por Spark, Hive, Kudu, Hbase e Phoenix, simplificando significativamente a stack de software de big data.

  • Consultas federadas em data lake: Tabelas externas permitem análises federadas de dados no Hive, Iceberg e Hudi sem cópia de dados, o que melhora consideravelmente o desempenho das consultas.

Visão técnica

A figura a seguir apresenta a arquitetura do Doris, composta por apenas dois tipos de processos.Doris架构

  • Frontend (FE): Atende solicitações de clientes, analisa e planeja consultas, gerencia metadados e administra nós.

  • Backend (BE): Gerencia o armazenamento de dados e executa os planos de consulta.

Ambos os tipos de processo escalam horizontalmente e suportam centenas de máquinas e dezenas de petabytes de armazenamento por cluster. Um protocolo de consistência garante alta disponibilidade (HA) para os serviços e alta confiabilidade para os dados. Além disso, a arquitetura integrada reduz os custos de operação e manutenção (O&M) de um sistema distribuído.

A tecnologia do Doris baseia-se em cinco aspectos principais:

  • O Doris utiliza o protocolo MySQL, possui alta compatibilidade com a sintaxe MySQL e suporta SQL padrão. Isso permite acessar o Doris com várias ferramentas cliente e integrá-lo perfeitamente a ferramentas de Business Intelligence (BI).

  • O mecanismo de armazenamento colunar do Doris codifica, compacta e lê dados por coluna. Essa abordagem atinge uma taxa de compressão muito elevada e reduz varreduras de dados irrelevantes, tornando o uso de I/O e CPU mais eficiente.

    Além disso, o Doris oferece um conjunto abrangente de estruturas de índice para minimizar a varredura de dados:

    • Índice de Chave Composta Ordenada: Suporta até três colunas como chave de ordenação composta, permitindo recorte eficaz de dados em cenários de relatórios com alta concorrência.

    • Índice Z-order: Executa consultas de intervalo de forma eficiente em qualquer combinação de campos do modelo de dados.

    • Min/Max: Filtra eficazmente consultas de igualdade e de intervalo em tipos numéricos.

    • Bloom Filter: Altamente eficaz para recorte de filtros de igualdade em colunas de alta cardinalidade.

    • Índice Invertido: Possibilita recuperação rápida em qualquer campo.

  • O Doris suporta múltiplos modelos de armazenamento otimizados para diferentes cenários:

    • Modelo Aggregate Key: Mescla colunas de valor com a mesma chave. Este modelo aumenta drasticamente o desempenho por meio de pré-agregação.

    • Modelo Unique Key: As chaves são únicas. Dados com a mesma chave são sobrescritos, viabilizando atualizações de dados no nível de linha.

    • Modelo Duplicate Key: Modelo de dados detalhado que armazena os detalhes de uma tabela de fatos.

    O Doris também suporta visualizações materializadas fortemente consistentes, atualizadas e selecionadas automaticamente sem intervenção manual, reduzindo significativamente os custos de manutenção.

  • O Doris adota um modelo de Processamento Massivamente Paralelo (MPP). A execução ocorre em paralelo entre nós e dentro de cada nó. Ele também suporta joins com shuffle distribuído para múltiplas tabelas grandes, lidando melhor com consultas complexas. A figura a seguir ilustra o mecanismo de consulta.Query

    O mecanismo de consulta do Doris é vetorizado. Todas as estruturas de memória são organizadas em layout colunar. Esse design reduz drasticamente as invocações de funções virtuais, aumenta a taxa de acerto de cache e utiliza instruções SIMD de forma eficiente. Em cenários de agregação de tabelas largas, seu desempenho é de 5 a 10 vezes superior ao de um mecanismo não vetorizado.

  • Uma estratégia híbrida de otimização combina o Otimizador Baseado em Regras (RBO) e o Otimizador Baseado em Custo (CBO). O RBO suporta dobragem de constantes, reescrita de subconsultas e pushdown de predicados. Já o CBO permite reordenação de joins e passa por otimizações contínuas, focando em coleta e derivação de estatísticas mais precisas, além de estimativas mais exatas do modelo de custo.

Com a tecnologia de Execução Adaptativa de Consultas, o Doris ajusta dinamicamente os planos de execução com base em estatísticas de tempo de execução. Por exemplo, o Runtime Filter gera um filtro durante a execução e o envia para o lado da sondagem (probe side). Esse filtro também pode ser automaticamente aplicado ao nó de varredura de nível mais baixo no lado da sondagem, reduzindo drasticamente o volume de dados e acelerando o desempenho de joins, conforme mostra o fluxograma a seguir.AQE O Runtime Filter do Doris suporta filtros In, Min, Max e Bloom.

Nota

O conteúdo e as imagens deste tópico foram obtidos em Introdução ao Apache Doris.