Otimizar o desempenho da consulta
O desempenho da sua instância do banco de dados federado é afetado pelos seguintes fatores:
A estrutura de seus dados no S3 e como você a representa em sua instância do banco de dados federado configuração.
O tamanho do seu Data Federation.
O formato e a estrutura do seu Data Federation.
Estrutura de dados em S3
Para facilitar o gerenciamento, certifique-se de que seus dados estejam agrupados de forma lógica em partições. O Atlas Data Federation utiliza partições que você cria com os valores de campo que você especifica em sua sintaxe de partição. Você pode melhorar o desempenho da instância do reconhecimento de data center garantindo que a estrutura de partição seja mapeada para seus padrões de query e que a estrutura de partição esteja definida em seu databases.[n].collections.[n].dataSources.[n].path
. Para a partição, escolha os campo que você query com frequência e ordene-os do campo mais query na primeira posição para o campo menos query na última posição.
A ordem dos campos listados em databases.[n].collections.[n].dataSources.[n].path
é importante da mesma forma que nosÍndices compostos . O caminho especificado corresponde a dados que são particionados primeiro pelo valor do primeiro campo e, em seguida, pelo valor do próximo campo e assim por diante.
Exemplo
Considere uma collection com os campo e partições software
, computer
e OS
no bucket S3 denominada metrics
primeiro para o campo software
, seguido pelo campo computer
e então o OS
campo.
metrics |--software |--computer |--OS
O Atlas Data Federation utiliza as partições para query nestes campo:
o campo
software
,o campo
software
e o campocomputer
,o campo
software
e o campocomputer
e o campoOS
.
O Atlas Data Federation pode usar as partições para suportar uma query no campo software
e OS
. No entanto, nesse caso, o Atlas Data Federation não é tão eficiente para a query quanto seria se a query estivesse apenas nos campos software
e computer
. As partições são analisadas em ordem; se uma query omitir uma partição específica, o Atlas Data Federation será menos eficiente ao utilizar quaisquer partições que seguem a partição. Como uma query no software
e no OS
omite computer
, o Atlas Data Federation usa a partição software
de forma mais eficiente do que a partição OS
para oferecer suporte a essa query.
O Atlas Data Federation não pode usar as partições para suportar query em campo não especificados no databases.[n].collections.[n].dataSources.[n].path
. Além disso, o Atlas Data Federation não pode usar as partições para oferecer suporte a query que incluam os seguintes campo sem o campo software
:
o campo
computer
,o campo
OS
, ouos campos
computer
eOS
.
Você pode usar partições para melhorar o desempenho da Data Federation mapeando-as para atributos de partição em sua configuração. Ao mapear os atributos da partição (as partes do prefixo S3 que parecem uma pasta) para um atributo de query, o Atlas Data Federation pode abrir seletivamente os arquivos que contêm dados relacionados à sua query. Isso reduz o tempo que uma query leva e diminui o custo, pois o Data Federation lê e baixa menos arquivos da Amazon Web Services.
Exemplo
Considere um bucket S3 metrics
com a seguinte estrutura:
metrics |--hardware |--software |--computer |--phone
Você pode definir um atributo de partição para "tipo de métrica" definindo /metrics/{metric_type string}/*
em sua configuração. Se você emitir uma query que contenha {metric_type: software}
, o Data Federation processará somente os arquivos com o prefixo /software
e ignorará os arquivos com o prefixo /hardware
.
Você pode então definir um atributo de partição para "tipo de software" definindo /metrics/{metric_type string}/{software_type string}
em sua configuração. Se você emitir uma query que contenha {metric_type: software, software_type: computer}
, o Data Federation ignorará os arquivos com o prefixo /phone
.
Para obter mais informações sobre como mapear atributos de partição para uma collection databases.[n].collections.[n].dataSources.[n].path
, consulte Definir caminho para dados do S3.
Tamanho do arquivo de dados
Cada arquivo com o Atlas Data Federation exige uma determinada quantidade de recursos de computação. Se o armazenamento de instância do reconhecimento de data center federado contiver muitos Data Federation pequenos, os recursos necessários serão compostos e poderão reduzir o desempenho. Como alternativa, muitos arquivos de dados grandes são problemáticos, pois o Data Federation baixa e processa dados desnecessários.
Para a maioria dos casos de uso, um tamanho de arquivo de alto desempenho é de 100 a 200 MB.
Formato de Data Federation
A instância do banco de dados federado suporta vários Data Federation. Você pode melhorar o desempenho compactando determinados formatos de arquivo ou otimizando o conteúdo do arquivo para sua query.
Compressão
Quando você compacta Data Federation, eles levam menos tempo para serem baixados. A redução do tempo de download tem um benefício de desempenho maior do que a análise de dados descompactados.
Você pode compactar os seguintes formatos de arquivo usando o gzip:
Estrutura do arquivo
Parquet, Avro, e ORC Os arquivos contêm metadados sobre o próprio arquivo para que um aplicação possa percorrer o conteúdo do arquivo de diferentes maneiras. Se você estruturar seu arquivo de dados para se alinhar com as queries que deseja executar, o Atlas Data Federation poderá aproveitar esses metadados para pular rapidamente para os dados certos.
Desses formatos, oParquet os arquivos fornecem o melhor desempenho e eficiência de espaço para a instância do banco de dados federado, pois é otimizado para analisar grupos de linhas e colunas para o Parquet.