Partilhar via


Cache de consultas

O cache é uma técnica essencial para melhorar o desempenho dos sistemas de data warehouse, evitando a necessidade de recalcular ou buscar os mesmos dados várias vezes. No Databricks SQL, o cache pode acelerar significativamente a execução de consultas e minimizar o uso do armazém, resultando em custos mais baixos e utilização de recursos mais eficiente. Cada camada de cache melhora o desempenho da consulta, minimiza o uso do cluster e otimiza a utilização de recursos para uma experiência perfeita de data warehouse.

O cache oferece inúmeras vantagens em armazéns de dados, incluindo:

  • Velocidade: Ao armazenar resultados de consultas ou dados acessados com frequência na memória ou em outros meios de armazenamento rápidos, o cache pode reduzir drasticamente os tempos de execução da consulta. Esse armazenamento é particularmente benéfico para consultas repetitivas, pois o sistema pode recuperar rapidamente os resultados armazenados em cache em vez de recalculá-los.
  • Uso reduzido de clusters: o cache minimiza a necessidade de recursos de computação adicionais reutilizando resultados computados anteriormente. Isso reduz o tempo de atividade geral do armazém e a demanda por clusters de computação adicionais, levando a economias de custos e melhor alocação de recursos.

Tipos de caches de consulta no Databricks SQL

O Databricks SQL executa vários tipos de cache de consulta.

caches de consulta

  • Cache da interface do usuário do SQL do Databricks: o cache por usuário de todos os resultados de consulta e painel na interface do usuário do SQL do Databricks. Quando os usuários abrem pela primeira vez um painel ou uma consulta SQL, o cache da interface do usuário do Databricks SQL exibe o resultado da consulta mais recente, incluindo os resultados de execuções agendadas.

    O cache da interface do usuário do Databricks SQL tem no máximo um ciclo de vida de 7 dias. O cache está localizado em seu sistema de arquivos do Azure Databricks em sua conta. Você pode excluir os resultados da consulta executando novamente a consulta que não deseja mais armazenar. Depois de executar novamente, os resultados da consulta antiga são removidos do cache. Além disso, o cache é invalidado depois que as tabelas subjacentes são atualizadas.

  • Cache de resultados: por cache de cluster de resultados de consulta para todas as consultas por meio de armazéns SQL. O cache de resultados inclui caches de resultados locais e remotos, que trabalham juntos para melhorar o desempenho da consulta armazenando os resultados da consulta na memória ou em meios de armazenamento remotos.

    • Cache local: o cache local é um cache na memória que armazena os resultados da consulta durante o tempo de vida do cluster ou até que o cache esteja cheio, o que ocorrer primeiro. Esse cache é útil para acelerar consultas repetitivas, eliminando a necessidade de recalcular os mesmos resultados. No entanto, quando o cluster é interrompido ou reiniciado, o cache é limpo e todos os resultados da consulta são removidos.
    • Cache de resultados remoto: O cache de resultados remoto é um sistema de cache somente sem servidor que retém os resultados da consulta persistindo-os como dados do sistema de espaço de trabalho. Como resultado, esse cache não é invalidado pela parada ou reinicialização de um SQL warehouse. O cache de resultados remoto aborda um ponto problemático comum no cache de resultados de consulta na memória, que só permanece disponível enquanto os recursos de computação estiverem em execução. O cache remoto é um cache compartilhado persistente em todos os armazéns em um espaço de trabalho Databricks.

    O acesso ao cache de resultados remoto requer um depósito em execução. Ao processar uma consulta, um cluster primeiro procura em seu cache local e, em seguida, procura no cache de resultados remoto, se necessário. Somente se o resultado da consulta não estiver armazenado em cache em nenhum dos caches é que a consulta será executada. Os caches local e remoto têm um ciclo de vida de 24 horas, que começa na entrada do cache. O cache de resultados remoto persiste através da parada ou reinicialização de um SQL warehouse. Ambos os caches são invalidados quando as tabelas subjacentes são atualizadas.

    O cache de resultados remoto está disponível para consultas usando clientes ODBC/JDBC e API de instrução SQL.

    Para desabilitar o cache de resultados de consulta, você pode executar SET use_cached_result = false no editor SQL.

    Importante

    Você deve usar essa opção apenas em testes ou benchmarking.

  • Cache de disco: cache SSD local para dados lidos do armazenamento de dados para consultas através de armazéns SQL. O cache de disco foi projetado para melhorar o desempenho da consulta armazenando dados no disco, permitindo leituras de dados aceleradas. Os dados são automaticamente armazenados em cache quando os arquivos são buscados, utilizando um formato intermediário rápido. Ao armazenar cópias dos arquivos no armazenamento local anexado aos nós de computação, o cache de disco garante que os dados estejam localizados mais perto dos trabalhadores, resultando em melhor desempenho de consulta. Consulte Otimizar o desempenho com cache no Azure Databricks.

Além de sua função principal, o cache de disco deteta automaticamente alterações nos arquivos de dados subjacentes. Quando deteta alterações, o cache é invalidado. O cache de disco compartilha as mesmas características do ciclo de vida que o cache de resultados local. Isso significa que, quando o cluster é interrompido ou reiniciado, o cache é limpo e precisa ser preenchido novamente.

O cache de resultados da consulta e o cache de disco afetam as consultas na interface do usuárioe BI do Databricks SQL e em outros clientes externos.