Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ao utilizar aceleração de consultas, as aplicações e os frameworks de análise podem otimizar o processamento de dados. Eles recuperam apenas os dados de que precisam para realizar uma determinada operação. Esta 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 consultas aceita predicados de filtragem e projeções de coluna. Ao usar estes predicados e projeções, as aplicações podem filtrar linhas e colunas ao ler dados do disco. Apenas os dados que cumprem as condições de um predicado são transferidos pela rede para a aplicação. Esta 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 colunas num pedido de aceleração de consulta. Tenha em mente as seguintes restrições:
- Uma solicitação processa apenas um arquivo.
- A aceleração de consultas não suporta funcionalidades relacionais avançadas do SQL, como joins e agrupar por agregados.
- A aceleração de consulta suporta dados formatados em CSV e JSON como entrada para cada solicitação.
O recurso de aceleração de consulta não está limitado ao Armazenamento Data Lake (contas de armazenamento que têm o namespace hierárquico habilitado nelas). A aceleração de consulta é compatível com os blobs em contas de armazenamento que não têm um namespace hierárquico ativado. Esta compatibilidade significa que pode obter a mesma redução na latência da rede e nos custos de cálculo 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 Armazenamento do Azure Data Lake.
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 consultas combina os fragmentos de resposta para fluir de volta para a aplicação cliente.
O aplicativo cliente recebe e analisa a resposta transmitida. O aplicativo não precisa filtrar nenhum outro dado e pode aplicar o cálculo ou a transformação desejados diretamente.
Melhor desempenho a um custo mais baixo
A aceleração de consultas otimiza o desempenho ao reduzir a quantidade de dados que a sua aplicação transfere e processa.
Para calcular um valor agregado, os aplicativos geralmente recuperam todos os dados de um arquivo e, em seguida, 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. Esta estatística é verdadeira mesmo após a aplicação de técnicas como a poda de partições. Este 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.
Apesar de o Azure apresentar uma rede de alto desempenho, tanto em termos de débito como de latência, transferir dados desnecessariamente por essa rede continua a ser dispendioso para o desempenho das aplicações. Ao filtrar os dados indesejados durante a solicitação de armazenamento, a aceleração da consulta elimina esse custo.
Além disso, a carga de CPU necessária para analisar e filtrar dados desnecessários exige que a sua aplicação prevê VMs maiores e maiores para fazer o seu trabalho. Ao transferir essa carga de computação para a aceleração de consultas, os aplicativos podem obter economias de custos significativas.
Aplicativos que podem se beneficiar da aceleração de consulta
A aceleração de consultas é concebida para frameworks de análise distribuída e aplicações de processamento de dados:
Estruturas de análise distribuída como o Apache Spark e o Apache Hive incluem uma camada de abstração de armazenamento na própria estrutura. Esses mecanismos também incluem otimizadores de consulta que podem incorporar o conhecimento dos recursos do serviço de E/S subjacente ao determinar um plano de consulta ideal para consultas do usuário. Estes frameworks integram aceleração de consultas. Como resultado, os usuários dessas estruturas veem latência de consulta aprimorada e um menor custo total de propriedade sem ter que fazer alterações nas consultas.
As aplicações de processamento de dados normalmente realizam transformações de dados em grande escala que podem não conduzir diretamente a insights analíticos, pelo que nem sempre utilizam frameworks de análise distribuída já estabelecidos. Estas aplicações frequentemente têm uma relação mais direta com o serviço de armazenamento subjacente, pelo que podem beneficiar diretamente de funcionalidades 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 Armazenamento do Azure Data Lake.
Preços
Devido ao aumento da carga computacional no serviço Azure Data Lake Storage, o modelo de preços para aceleração de consultas difere do modelo normal de transações do Azure Data Lake Storage. A aceleração de consultas implica um custo pela quantidade de dados digitalizados, bem como um custo pela quantidade de dados retornados ao utilizador. Para obter mais informações, consulte Preços do Armazenamento do Azure Data Lake.
Apesar da alteração do modelo de faturação, o modelo de preços da aceleração de consultas foi concebido para reduzir o custo total de posse de uma determinada carga de trabalho, tendo em conta a redução dos custos muito mais elevados das máquinas virtuais.