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.
A aceleração de consultas permite que aplicativos e estruturas de análise otimizem drasticamente o processamento de dados, recuperando apenas os dados necessários para executar uma determinada operação. Isso reduz o tempo e o poder de processamento necessários para obter informações críticas sobre os dados armazenados.
Visão geral
A aceleração de consulta aceita predicados de filtragem e projeções de coluna, que permitem que os aplicativos filtrem linhas e colunas no momento em que os dados são lidos do disco. Somente os dados que atendem às condições de um predicado são transferidos pela rede para o aplicativo. Isso reduz a latência da rede e o custo de computação.
Você pode usar SQL para especificar os predicados de filtro de linha e projeções de coluna em uma solicitação de aceleração de consulta. Uma solicitação processa apenas um arquivo. Portanto, recursos relacionais avançados do SQL, como junções e agrupamento por agregações, não são suportados. 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. Isso significa que você pode obter a mesma redução na latência da rede e nos custos de computação ao processar dados que já armazenou 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, em seguida, filtram os dados aplicando os predicados especificados e as projeções de coluna.
A aceleração de consulta combina os fragmentos de resposta para devolver ao aplicativo 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 reduzindo a quantidade de dados que são transferidos e processados pelo seu aplicativo.
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/saída para cargas de trabalho de análise revela que os aplicativos normalmente exigem apenas 20% dos dados que leem para executar qualquer cálculo. Esta estatística é verdadeira mesmo após a aplicação de técnicas como a poda de partições. Isso significa que 80% desses dados são transferidos desnecessariamente pela rede, analisados e filtrados por aplicativos. Esse padrão, projetado para remover dados desnecessários, incorre em um custo de computação significativo.
Embora o Azure apresente uma rede líder do setor, em termos de taxa de transferência e latência, a transferência desnecessária de dados entre essa rede ainda é cara para o desempenho do aplicativo. Ao filtrar os dados indesejados durante a solicitação de armazenamento, a aceleração da consulta elimina esse custo.
Além disso, a carga da CPU necessária para analisar e filtrar dados desnecessários requer que seu aplicativo provisione um número maior e maiores VMs para fazer 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 foi projetada para estruturas de análise distribuídas e aplicativos de processamento de dados.
Estruturas de análise distribuídas, como Apache Spark e Apache Hive, incluem uma camada de abstração de armazenamento dentro da 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. Essas estruturas estão começando a integrar a 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.
A aceleração de consultas também foi projetada para aplicativos de processamento de dados. Esses tipos de aplicativos normalmente executam transformações de dados em grande escala que podem não levar diretamente a insights analíticos, portanto, nem sempre usam estruturas de análise distribuída estabelecidas. Esses aplicativos geralmente têm uma relação mais direta com o serviço de armazenamento subjacente, para que possam se beneficiar diretamente de recursos como a 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 de computação no serviço Armazenamento do Azure Data Lake, o modelo de preços para usar a aceleração de consulta difere do modelo de transação normal do Armazenamento do Azure Data Lake. 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 mudança no modelo de faturamento, o modelo de preços da Aceleração de Consulta foi projetado para reduzir o custo total de propriedade de uma carga de trabalho, dadas as reduções nos custos das VMs, que são muito mais caros.