Ir para o conteúdo principal

Visualizações materializadas

O que é uma visualização materializada?

Uma visualização materializada é um objeto de banco de dados que armazena os resultados de uma query como tabela física. Ao contrário das visualizações de banco de dados regulares, que são virtuais e derivam seus dados das tabelas subjacentes, as visualizações materializadas contêm dados pré-computados que são atualizados de forma incremental em um agendamento ou sob demanda. Esse pré-cálculo de dados permite tempos de resposta de query mais rápidos e melhor desempenho em determinados cenários.

Essas visualizações são especialmente úteis em cenários onde queries ou agregações complexas são executadas com frequência, mas os dados subjacentes sofrem poucas alterações. Como os resultados já estão armazenados, o banco de dados evita a necessidade de processar queries repetidamente, garantindo respostas mais rápidas e maior eficiência.

Continue explorando

A materialização de dados é o mesmo que uma visualização materializada?

Embora os termos "materialização de dados" e "visualização materializada" sejam relacionados, eles se referem a conceitos distintos. Mas o que significa "materializado" neste contexto?

A materialização de dados é o processo de armazenar dados computados em um meio físico, como um disco rígido. Geralmente, esses dados são derivados de uma visão virtual ou lógica, com o objetivo principal de melhorar o desempenho.

Em alguns aspectos, a materialização de dados se assemelha ao cache, pois ambos armazenam informações para otimizar a recuperação. No entanto, há uma diferença fundamental: o cache armazena dados temporariamente próximos ao ponto de uso, enquanto os dados materializados costumam ter um ciclo de vida mais longo e um cronograma de atualização bem definido.

Com essa definição de materialização de dados, agora podemos explorar como ela está relacionada ao conceito de visualizações materializadas.

Uma visualização materializada é um tipo específico de materialização de dados usada em bancos de dados relacionais para armazenar os resultados de uma query e facilitar sua recuperação.

No contexto de data warehouses, a materialização de dados é, acima de tudo, uma questão de conveniência. A forma como os dados são armazenados geralmente depende do formato original dos dados. No entanto, quando se trata de leitura e recuperação, esse formato pode não ser o mais eficiente.

Por exemplo, imagine que você trabalha com um grande conjunto de dados e precisa consultar regularmente apenas um subconjunto específico. Recuperar os dados do zero a cada query pode ser um processo relativamente demorado, pois exigiria a execução da query em todo o conjunto de dados sempre, mesmo quando o objetivo fosse acessar apenas uma pequena parte dele.

Nesse cenário, criar uma visualização materializada é uma solução eficaz. Ela pode ser pré-preenchida com os dados relevantes e atualizada automaticamente, seja em intervalos programados, seja quando o sistema detecta alterações nos dados de origem.

Comparando objetos de banco de dados: visualizações materializadas x visualizações

Neste ponto, vale a pena definir o que são "visualizações" e como elas diferem das visualizações materializadas. Ambas são objetos de banco de dados que apresentam dados em um formato específico ou como resultado de uma query. No entanto, existem diferenças significativas em termos de armazenamento, desempenho e casos de uso, que exploraremos em mais detalhes adiante. 

A principal distinção entre esses dois conceitos está na forma como os dados são armazenados e recuperados. As visualizações são tabelas virtuais baseadas no conjunto de resultados de uma query SQL. Elas não armazenam os dados, mas os recuperam dinamicamente das tabelas subjacentes sempre que são consultadas.

Isso as diferencia fundamentalmente das visualizações materializadas. O termo "materializado" se refere ao armazenamento físico dos dados. As visualizações materializadas armazenam fisicamente os resultados da query, tornando a recuperação de dados mais rápida.

Dessa forma, enquanto uma visualização regular sempre recupera os dados dinamicamente, uma visualização materializada mantém um conjunto de resultados previamente calculado, sendo atualizado periodicamente para refletir as mudanças nas tabelas de origem. Essa abordagem melhora o desempenho das queries e otimiza o uso dos recursos computacionais.

Embora a diferença no armazenamento seja a principal distinção entre os dois tipos de visualizações, a tabela a seguir compara como essa característica impacta seus diferentes aspectos e funcionalidades:

Recurso Ver

Visualização materializada

Armazenamento de dados

Não armazena dados (tabela virtual)

Armazena dados fisicamente (resultados pré-calculados)

Recuperação de dados

Recupera dinamicamente os dados das tabelas base

Recupera dados previamente armazenados

Desempenho

Mais lento para queries complexas

Mais rápido para queries complexas

Atualização dos dados

Sempre atualizado

Pode ficar desatualizado, requer atualização

Espaço de armazenamento

Não requer armazenamento adicional

Requer espaço para armazenamento adicional

Caso de uso

Simplificação de queries complexas, segurança

Melhoria de desempenho, acesso rápido a dados de instantâneo

Quais são as vantagens e desvantagens das visualizações materializadas nos bancos de dados?

As visualizações materializadas trazem diversos benefícios, mas também têm algumas limitações, inclusive na Databricks Platform. Compreender essas vantagens e desvantagens ajuda os usuários a decidir quando e como utilizá-las da melhor forma.

Vantagens da visualização materializada

  1. Desempenho de query aprimorado

    Um dos principais motivos para usar visualizações materializadas é a melhoria no desempenho das queries. Elas aceleram a recuperação de dados e reduzem a carga sobre as tabelas base.

    Como armazenam resultados pré-computados, eliminam a necessidade de recalcular dados ou executar queries repetidamente. Isso acelera significativamente a execução, especialmente para queries complexas, que demandam muitos recursos ou são acessadas com frequência.

    Além disso, ao reduzir o número de acessos diretos às tabelas base, as visualizações materializadas minimizam a sobrecarga no banco de dados, melhorando seu desempenho geral.

     

  2. Uso eficiente dos recursos

    Executar queries complexas toda vez que for necessário acessar um conjunto específico de dados pode ser lento e ineficiente. Com visualizações materializadas, os resultados são pré-computados e armazenados, reduzindo a necessidade de cálculos repetitivos e processamento de dados. Isso otimiza o uso de recursos, economizando tempo e custos computacionais.

     

  3. Fornecimento de snapshots de dados

    As visualizações materializadas capturam um instantâneo dos dados em um momento específico. Isso é útil para rastrear mudanças nos dados ao longo do tempo, gerar relatórios, realizar análises históricas e manter registros para auditoria.

     

  4. Consolidação de dados

    Se for necessário reunir informações de múltiplas fontes, como no processo de ETL, as visualizações materializadas são uma excelente opção. Elas permitem agregar e consolidar dados de diferentes tabelas e bancos de dados, oferecendo uma forma mais eficiente e unificada de acesso a dados integrados.

     

  5. Simplificação de cálculos complexos

    Agregações, joins e cálculos complexos podem ser pré-computados e armazenados em visualizações materializadas. Isso reduz o custo computacional e torna a análise e recuperação dos dados mais rápidas e simples.

Limitações das visualizações materializadas

  1. Sobrecarga de armazenamento

    Uma das principais desvantagens das visualizações materializadas é o espaço adicional necessário para armazenar os dados pré-computados. Dependendo da solução de armazenamento usada, do tamanho da visualização e da frequência de suas atualizações, esse aumento no consumo de espaço pode gerar custos significativos.

     

  2. Sobrecarga de atualização

    Como as visualizações materializadas armazenam um instantâneo estático dos dados, é necessário atualizá-las periodicamente para refletir mudanças nos dados subjacentes. Essas atualizações podem ser programadas em intervalos regulares ou acionadas por eventos específicos. No entanto, é essencial definir uma estratégia clara para determinar a frequência de atualização e alocar recursos para garantir que os dados permaneçam atualizados.

     

  3. Impacto no desempenho

    O processo de atualização de uma visualização materializada pode afetar o desempenho geral do banco de dados, especialmente se a atualização for intensiva em recursos ou competir com outras operações simultâneas.

     

  4. Aplicabilidade limitada

    As visualizações materializadas são extremamente úteis em cenários onde queries são executadas frequentemente e o desempenho de leitura é uma prioridade, como em data warehouses. Entretanto, elas não são ideais para todos os casos de uso. Sistemas que exigem atualizações em tempo real ou lidam com mudanças constantes nos dados podem não se beneficiar tanto do uso de visualizações materializadas.

Quando usar visualizações materializadas?

Agora que entendemos a diferença entre visualizações regulares e visualizações materializadas, além de suas vantagens, surge a pergunta: quando é o momento certo para usá-las? A seguir, apresentamos algumas situações em que as visualizações materializadas podem tornar o acesso a dados mais eficiente.

Processamento em lote regular

Se você executa processamento em lote regularmente, as visualizações materializadas podem ajudar pré-computando e armazenando partes de uma query para processamento independente. Por exemplo, em uma folha de pagamento semanal, você pode armazenar detalhes como salários, impostos e comissões de funcionários. Os dados seriam atualizados automaticamente no final de cada semana.

Distribuindo dados filtrados

As visualizações materializadas facilitam a replicação e o armazenamento em cache de dados de fontes remotas, tornando-os mais acessíveis em diferentes locais. Isso é especialmente útil para bancos de dados somente leitura, permitindo a cópia e distribuição de dados em vários servidores. Como resultado, a carga no banco de dados de origem é reduzida, enquanto usuários podem acessar dados de um local mais próximo, melhorando os tempos de resposta.

Otimização de dashboards de IA/BI

Dashboards de inteligência artificial (IA) e business intelligence (BI) são ferramentas eficazes para visualização de dados e relatórios na Databricks Data Intelligence Platform. O design simplificado facilita o compartilhamento e a distribuição de visualizações, mas é essencial garantir que todos os dados exibidos em um dashboard público estejam sempre atualizados e atendam aos requisitos de atualização.

Com visualizações materializadas, você pode agendar atualizações periódicas, garantindo que os dados exibidos sejam os mais recentes. Além disso, ao pré-computar e armazenar os resultados das queries que alimentam o dashboard, os tempos de resposta para os usuários finais melhoram significativamente.

Analisando dados de séries temporais

Uma das principais vantagens das visualizações materializadas é a capacidade de fornecer snapshots de dados ao longo do tempo. Isso facilita o acompanhamento das mudanças no conjunto de dados subjacente e permite a análise histórica para relatórios.

Elas são particularmente úteis em aplicações de business intelligence, como queries em esquemas estrela e cálculos de agregações de dados brutos. As visualizações materializadas armazenam resumos pré-agregados, como médias mensais, somas semanais e contagens diárias, tornando a análise histórica de tendências mais eficiente.

Prevenindo a desconexão do banco de dados principal

Se há risco de desconexão do banco de dados principal, uma visualização materializada pode garantir que os dados mais importantes continuem acessíveis. Para isso, é essencial definir um cronograma de atualização eficiente, evitando o uso de dados desatualizados. Em alguns casos, armazenar a visualização em cache localmente pode ser uma solução viável.

Quando usar visualizações materializadas?

É importante considerar que, em alguns casos, o uso de visualizações materializadas pode não ser a melhor escolha. Se os dados forem rápidos e fáceis de consultar diretamente nas tabelas base, a materialização pode ser desnecessária. Além disso, quando os dados de origem sofrem mudanças frequentes, o custo de atualização constante pode superar os benefícios de um acesso mais rápido, tornando a abordagem menos eficiente.

Criação de visualizações materializadas no Databricks SQL

No Databricks SQL, as visualizações materializadas são gerenciadas pelo Unity Catalog e armazenam resultados pré-computados com base nos dados mais recentes das tabelas de origem. Diferentemente das visualizações tradicionais, que são atualizadas sempre que consultadas, as visualizações materializadas do Databricks mantêm o estado dos dados no momento da última atualização. Você pode optar por atualizá-las manualmente ou configurar atualizações automáticas programadas.

As visualizações materializadas do Databricks SQL são especialmente úteis em processos ETL (Extrair, Transformar, Carregar), pois oferecem uma abordagem simples e declarativa para garantia de conformidade, correções de dados, agregações e captura de dados de alterações (CDC). Além de reduzir a latência das queries, as visualizações materializadas diminuem os custos computacionais ao evitar a repetição de cálculos pesados. Elas também facilitam transformações contínuas, permitindo a limpeza, enriquecimento e desnormalização das tabelas base. Em alguns casos, podem ser atualizadas incrementalmente com base nas alterações das tabelas de origem, otimizando recursos e proporcionando uma experiência mais eficiente para o usuário.

A Databricks introduziu as visualizações materializadas dentro da sua arquitetura lakehouse, inicialmente com o lançamento do Delta Live Tables (DLT). Ao criar uma visualização materializada em um DB SQL Warehouse, um pipeline DLT é gerado automaticamente para gerenciar suas atualizações. Para acompanhar o status das operações de atualização, você pode usar a interface do usuário, API ou CLI do DLT, garantindo um gerenciamento fácil e eficiente.

Como funciona a criação de visualizações materializadas

O exemplo a seguir cria a visualização materializada customer_orders a partir das tabelas-base orders e customers:

Como funciona a atualização de visualizações materializadas

No Databricks SQL, você tem a opção de configurar refresh automático para uma visualização materializada com base em um agendamento predefinido. Esse agendamento pode ser configurado durante a criação da visão materializada usando a cláusula SCHEDULE ou adicionado posteriormente usando o comando ALTER VIEW. Depois que um agendamento é estabelecido, um job da Databricks é criado automaticamente para lidar com as atualizações.

Para revisar os detalhes do agendamento a qualquer momento, você pode usar o comando DESCRIBE EXTENDED, que fornece visibilidade do agendamento configurado para a visualização materializada. Isso permite que você monitore e gerencie facilmente o agendamento de refresh automático para sua visualização materializada no Databricks SQL.

Para obter mais informações sobre visualizações materializadas, consulte a documentação oficial do Databricks ou leia o blog de introdução.

    Voltar ao glossário