Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao usar aceleração de consultas, aplicações e frameworks de análise podem otimizar o processamento de dados. Eles recuperam apenas os dados necessários para realizar uma determinada operação. Essa abordagem reduz o tempo e o poder de processamento necessários para obter insights sobre os dados armazenados.
Visão geral
A aceleração de consulta aceita predicados de filtro e projeções de colunas. Ao usar esses predicados e projeções, as aplicações podem filtrar linhas e colunas ao ler dados do disco. Somente os dados que atendem às condições de um predicado são transferidos pela rede para a aplicação. Essa abordagem reduz a latência da rede e o custo de computação.
Use SQL para especificar os predicados do filtro de linha e as projeções de coluna em uma solicitação de aceleração de consulta. Tenha as seguintes restrições em mente:
- Uma solicitação processa apenas um arquivo.
- A aceleração de consultas não suporta recursos relacionais avançados do SQL, como joins e agrupamento por agregados.
- A aceleração de consulta dá suporte a dados formatados em CSV e JSON como entrada para cada solicitação.
O recurso de aceleração de consulta não se limita ao Data Lake Storage (contas de armazenamento que têm o namespace hierárquico habilitado). A aceleração de consulta é compatível com os blobs em contas de armazenamento que não têm um namespace hierárquico habilitado neles. Essa compatibilidade significa que você pode alcançar a mesma redução na latência da rede e nos custos de computação ao processar dados que já tem armazenados como blobs em contas de armazenamento.
Para obter um exemplo de como usar a aceleração de consulta em um aplicativo cliente, consulte Filtrar dados usando a aceleração de consulta do Azure Data Lake Storage.
Fluxo de dados
O diagrama a seguir ilustra como um aplicativo típico usa a aceleração de consulta para processar dados.
O aplicativo cliente solicita dados de arquivo especificando predicados e projeções de coluna.
A aceleração de consulta analisa a consulta SQL especificada e distribui o trabalho para analisar e filtrar dados.
Os processadores leem os dados do disco, analisam os dados usando o formato apropriado e depois filtram os dados aplicando os predicados e projeções de coluna especificados.
A aceleração de consulta combina os fragmentos de resposta para transmitir de volta ao aplicativo cliente.
O aplicativo cliente recebe e analisa a resposta transmitida. O aplicativo não precisa filtrar outros dados e pode aplicar o cálculo ou a transformação desejado diretamente.
Melhor desempenho a um custo menor
A aceleração de consultas otimiza o desempenho ao reduzir a quantidade de dados que sua aplicação transfere e processa.
Para calcular um valor agregado, os aplicativos geralmente recuperam todos os dados de um arquivo e processam e filtram os dados localmente. Uma análise dos padrões de entrada e saída (I/O) para cargas de trabalho analíticas revela que as aplicações normalmente requerem apenas 20% dos dados que leem para realizar qualquer cálculo. Essa estatística é verdadeira mesmo após a aplicação de técnicas como remoção de partição. Esse resultado significa que as aplicações transferem, analisam e filtram desnecessariamente 80% dos dados. Esse padrão, projetado para remover dados desnecessários, incorre em um custo de computação significativo.
Embora o Azure tenha uma rede de alto desempenho, tanto em termos de throughput quanto de latência, transferir dados desnecessariamente por essa rede ainda é custoso para o desempenho da aplicação. Ao filtrar os dados indesejados durante a solicitação de armazenamento, a aceleração de consulta elimina esse custo.
Além disso, a carga da CPU necessária para analisar e filtrar dados desnecessários exige que sua aplicação faça o fornecimento de VMs maiores e mais para realizar seu trabalho. Ao transferir essa carga de computação para aceleração de consulta, os aplicativos podem realizar uma economia significativa de custos.
Aplicativos que podem se beneficiar da aceleração de consulta
A aceleração de consultas é projetada para frameworks de análise distribuída e aplicações de processamento de dados:
Frameworks de análise distribuída como Apache Spark e Apache Hive incluem uma camada de abstração de armazenamento dentro do framework. Esses mecanismos também incluem otimizadores de consulta que podem incorporar conhecimento dos recursos do serviço de E/S subjacente ao determinar um plano de consulta ideal para consultas de usuário. Esses frameworks integram aceleração de consultas. Como resultado, os usuários dessas estruturas veem uma latência de consulta aprimorada e um menor custo total de propriedade sem precisar fazer nenhuma alteração nas consultas.
Aplicações de processamento de dados normalmente realizam transformações de dados em grande escala que podem não levar diretamente a insights analíticos, por isso nem sempre utilizam frameworks de análise distribuída já estabelecidos. Essas aplicações frequentemente têm uma relação mais direta com o serviço de armazenamento subjacente, podendo se beneficiar diretamente de recursos como aceleração de consultas.
Para obter um exemplo de como um aplicativo pode integrar a aceleração de consulta, consulte Filtrar dados usando a aceleração de consulta do Azure Data Lake Storage.
Preços
Devido ao aumento da carga de processamento dentro do serviço Azure Data Lake Storage, o modelo de precificação para aceleração de consultas difere do modelo normal de transações do Azure Data Lake Storage. A aceleração de consulta cobra pela quantidade de dados analisados, bem como pela quantidade de dados retornados ao solicitante. Para obter mais informações, consulte os preços do Azure Data Lake Storage.
Apesar da mudança no modelo de faturamento, o modelo de preços da aceleração de consultas foi projetado para reduzir o custo total de propriedade de uma carga de trabalho, considerando a redução dos custos muito mais elevados de VMs.